#pypy IRC log for Friday, 2008-06-27

fiddlerwoaroofhow difficult would it be to implement?00:03
cfbolzfirst you would need to figure out sane semantics00:03
fiddlerwoaroofassuming that00:04
cfbolzPyPy's parser is a mess, so probably not very easy00:04
antocunixorAxAx: bah, I prefer my music :-)00:09
cfbolzantocuni: feel like making a blog post about this?00:11
antocunicfbolz: sure, but I want to post the one with my music, if I manage to upload it :-)00:11
cfbolzantocuni: your music isn't under a creative-commons license though :-)00:13
antocuniah00:13
antocuninot sure it's a problem00:14
antocunibut maybe yes00:14
Action: antocuni --> bed00:15
antocunign00:15
antocuni (n=antocuni@host252-123-dynamic.6-79-r.retail.telecomitalia.it) left irc: "Leaving"00:15
mgod (n=mgod@c-68-40-196-78.hsd1.mi.comcast.net) joined #pypy.00:19
mgod (n=mgod@c-68-40-196-78.hsd1.mi.comcast.net) left irc: Client Quit00:24
fiddlerwoaroof (i=80f960fd@gateway/web/ajax/mibbit.com/x-224a317d7065e428) left irc: "http://www.mibbit.com ajax IRC Client"00:27
radixis pypy a music generation application now? is there a MIDI backend?00:35
exarkundoes it use alsa, or pulseaudio?00:38
exarkunbecause pulseaudio is better, you guys should switch.00:38
mwhudsonexarkun: is that even a valid disjunction?00:38
exarkunmwhudson: Since when did logic and reality bear any resemblance to each other00:39
mgod (n=mgod@c-68-40-196-78.hsd1.mi.comcast.net) joined #pypy.00:42
arianepaola (n=ariane@unaffiliated/arianepaola) joined #pypy.00:45
mgod (n=mgod@c-68-40-196-78.hsd1.mi.comcast.net) left irc: 00:58
mwhudson (n=mwh@203-114-189-104.cafenet.dyn.inspire.net.nz) left irc: Read error: 110 (Connection timed out)00:58
fzzzy (n=donovan@office.mochimedia.net) left irc: 01:08
headius (n=headius@218.45.193.1) left irc: 01:14
derfel (n=derfel@host123-73-dynamic.11-79-r.retail.telecomitalia.it) joined #pypy.01:18
grubber (n=grubber@64.149.120.234) joined #pypy.01:25
cfbolz (n=cfbolz@p4FDA92A9.dip0.t-ipconnect.de) left irc: "Leaving"01:26
mwhudson (n=mwh@203-114-189-104.cafenet.dyn.inspire.net.nz) joined #pypy.01:41
joe_mp__ (n=joe@p549C5E14.dip.t-dialin.net) left irc: Read error: 110 (Connection timed out)01:57
dialtone (n=dialtone@adsl-99-136-101-166.dsl.pltn13.sbcglobal.net) left irc: Read error: 110 (Connection timed out)02:38
pjenvey_ (n=pjenvey@70.141.217.36) left irc: 02:48
pjenvey_ (n=pjenvey@astound-69-42-4-166.ca.astound.net) joined #pypy.03:09
headius (n=headius@192.18.200.212) joined #pypy.03:26
zx225 (i=joel@eschatolo.gy) joined #pypy.03:44
headius (n=headius@192.18.200.212) left irc: 03:49
grubber (n=grubber@64.149.120.234) left irc: 03:56
fzzzy (n=donovan@c-71-198-81-84.hsd1.ca.comcast.net) joined #pypy.03:59
zx225 (i=joel@eschatolo.gy) left irc: "leaving"03:59
tav (n=tav@82.152.200.55) left irc: 04:01
s4msung (n=s4msung@p4FDDB9E7.dip0.t-ipconnect.de) joined #pypy.04:08
smokey_ (n=smokey@p549A1697.dip0.t-ipconnect.de) joined #pypy.04:15
fzzzy (n=donovan@c-71-198-81-84.hsd1.ca.comcast.net) left irc: 04:26
grubber (n=grubber@64.149.120.234) joined #pypy.04:26
smokey__ (n=smokey@p549A169E.dip0.t-ipconnect.de) left irc: Read error: 110 (Connection timed out)04:31
carrus85 (n=carrus85@216.83.145.38) left irc: "Leaving"04:37
carrus85 (n=carrus85@216.83.145.38) joined #pypy.04:42
s4msung (n=s4msung@p4FDDB9E7.dip0.t-ipconnect.de) left irc: Read error: 110 (Connection timed out)04:43
fzzzy (n=donovan@c-71-198-81-84.hsd1.ca.comcast.net) joined #pypy.04:43
s4msung (n=s4msung@p4FDDB9E7.dip0.t-ipconnect.de) joined #pypy.04:46
grubber (n=grubber@64.149.120.234) left irc: 04:52
dialtone (n=dialtone@adsl-75-6-226-104.dsl.pltn13.sbcglobal.net) joined #pypy.05:01
headius (n=headius@218.45.193.1) joined #pypy.05:24
Rhamphoryncus_ (n=rhamph@S010600146c3c91a1.ed.shawcable.net) joined #pypy.05:25
Rhamphoryncus (n=rhamph@unaffiliated/rhamphoryncus) left irc: Read error: 104 (Connection reset by peer)05:26
Nick change: Rhamphoryncus_ -> Rhamphoryncus05:27
fijal (n=fijal@c-76-25-206-12.hsd1.co.comcast.net) left irc: Remote closed the connection05:36
fijal (n=fijal@c-76-25-206-12.hsd1.co.comcast.net) joined #pypy.05:37
CIA-303fijal * r56106 10pypy/pypy/interpreter/module.py: Don't explode when __file__ is missing or bogus05:48
headius (n=headius@218.45.193.1) left irc: 06:03
fdr- (n=fdr@76-191-216-242.dsl.dynamic.sonic.net) joined #pypy.06:13
panni_ (i=hannes@ip-88-152-22-213.hsi.ish.de) left irc: "( www.nnscript.de :: NoNameScript 3.81 :: www.XLhost.de )"06:39
hpk (n=chatzill@p549F4CFE.dip.t-dialin.net) joined #pypy.06:40
mwhudson (n=mwh@203-114-189-104.cafenet.dyn.inspire.net.nz) left irc: "Leaving"06:53
fdr- (n=fdr@76-191-216-242.dsl.dynamic.sonic.net) left irc: Remote closed the connection07:11
carrus85 (n=carrus85@216.83.145.38) left irc: Success07:17
fijal (n=fijal@c-76-25-206-12.hsd1.co.comcast.net) left irc: "off"07:29
Rhamphoryncus (n=rhamph@unaffiliated/rhamphoryncus) left irc: 07:31
fzzzy (n=donovan@c-71-198-81-84.hsd1.ca.comcast.net) left irc: 07:59
joe_mp (n=joe@p549C6802.dip.t-dialin.net) joined #pypy.08:02
xorAxAxyes, the license issue is one aspect :)08:24
antocuni (n=antocuni@host88-126-dynamic.25-79-r.retail.telecomitalia.it) joined #pypy.08:25
dialtone (n=dialtone@adsl-75-6-226-104.dsl.pltn13.sbcglobal.net) left irc: Remote closed the connection08:37
dialtone (n=dialtone@adsl-75-6-226-104.dsl.pltn13.sbcglobal.net) joined #pypy.08:38
mq (n=mq@quittenbrod.de) left irc: Remote closed the connection08:38
stargaming (n=starGami@unaffiliated/stargaming) left irc: Read error: 110 (Connection timed out)08:50
stargaming (i=starGami@ircmafia.de) joined #pypy.08:51
mq (n=mq@quittenbrod.de) joined #pypy.09:02
mq (n=mq@quittenbrod.de) left irc: Remote closed the connection09:10
mq (n=mq@quittenbrod.de) joined #pypy.09:11
AntonK (n=asl@asl.dorms.spbu.ru) joined #pypy.09:28
pjenvey_ (n=pjenvey@astound-69-42-4-166.ca.astound.net) left irc: 09:33
verte (n=verte@121.219.103.81) joined #pypy.09:44
headius (n=headius@p4090-ipbf1302marunouchi.tokyo.ocn.ne.jp) joined #pypy.10:15
headius_ (n=headius@p4090-ipbf1302marunouchi.tokyo.ocn.ne.jp) joined #pypy.10:18
headius (n=headius@p4090-ipbf1302marunouchi.tokyo.ocn.ne.jp) left irc: Connection reset by peer10:19
hpkantocuni: somehow, i think that using the realnames instead of the nicknames would make more sense for a general audience :)10:23
antocunihpk: uh?10:23
hpkhum? 10:24
hpklast time i checked the account names were used 10:24
hpkwith tthe codeswarm video 10:24
antocuniah!10:24
antocuniI missed that piece :-)10:24
hpksorry ;)10:24
antocuniyes, it uses nicknames10:25
xorAxAxhmm, would be pretty garbled given the usual length10:25
hpktrue as well10:25
antocuniI think it would be possible to modify it, but I'm sure I don't feel like :-)10:25
xorAxAxantocuni: in which language was it written?10:25
hpkantocuni: don't bother. 10:25
elmom (n=elmom@hoasnet-fe10dd00-97.dhcp.inet.fi) joined #pypy.10:25
Action: hpk continues clearing his flat10:25
antocuniit looks like java, I'm not sure if it's java or just similar; it needs the processing.org IDE to execute10:26
cfbolz (n=cfbolz@p4FDA9A9E.dip0.t-ipconnect.de) joined #pypy.10:30
cfbolzhi!10:30
hpkhi cf!10:30
antocunihi carl10:31
stakkars (n=tismer@i577B7EBF.versanet.de) joined #pypy.10:36
headius_ (n=headius@p4090-ipbf1302marunouchi.tokyo.ocn.ne.jp) left irc: Read error: 110 (Connection timed out)10:42
headius (n=headius@ci-dhcp-35.ci.i.u-tokyo.ac.jp) joined #pypy.10:56
jewel_ (n=jewel@dsl-242-165-12.telkomadsl.co.za) joined #pypy.11:03
pete__c_ (n=pete@petec-pt.tunnel.tserv3.fmt2.ipv6.he.net) joined #pypy.11:04
antocunicfbolz, xorAxAx: feel like reviewing the blog post about codeswarm? It's in my user dir11:08
cfbolzantocuni: I am still unsure about copyright notices11:13
cfbolzI guess we should at least attribute the second one, and I am unsure whether the first one is ok11:13
antocuniI think that in italy it's allowed to use parts of songs I bougth for such uses11:14
cfbolzbut it is the full song, no?11:14
antocunisorry, I meant parts of CDs11:15
antocunibut indeed, I don't know if it plays well with distributing on the internet11:15
antocuniwell, I guess I can simply remove it, it's not that I care too much11:15
cfbolzI am just a bit scared, I guess :-)11:16
pete__c (n=pete@2001:470:1f04:2ed:0:0:0:2) left irc: Read error: 110 (Connection timed out)11:17
antocuniscared that dire straits might sue pypy? :-)11:17
cfbolzor something, yes11:18
Action: antocuni posts11:20
arianepaola (n=ariane@unaffiliated/arianepaola) left irc: Remote closed the connection11:52
headius (n=headius@ci-dhcp-35.ci.i.u-tokyo.ac.jp) left irc: 12:08
bigdo1dire straits, hmm ... curious minds want to now:   "Money for Nothing"..(Yea grant). ...  "So Far Away".(but getting closer)....   or "The Bug"...(your current thorn in your side)...  or maybe ยท "Your Latest Trick"....(JIT  work)12:19
cfbolzhehehe12:19
cfbolzThe Official PyPy Soundtrack12:20
bigdo1cfbolz: The PyPy soundtrack would be a good playlist...12:20
bigdo1cfbolz: when you guys come up with a play list, you should blog it :-)12:21
bigdo1back to VPN land happy coding everyone12:22
cfbolz:-)12:23
s4msung (n=s4msung@p4FDDB9E7.dip0.t-ipconnect.de) left irc: "Verlassend"12:39
antocunibigdo1: "Sultans of JIT" :-)12:43
tuxella (n=tuxella@ivr94-8-88-162-25-29.fbx.proxad.net) joined #pypy.12:43
xorAxAx:12:44
xorAxAx-)12:44
jewel_ (n=jewel@dsl-242-165-12.telkomadsl.co.za) left irc: Read error: 113 (No route to host)12:44
xorAxAxhmm, there is a nice dire straits track that would fit to the video12:44
xorAxAxwith this long intro12:45
xorAxAxbrothers in arms album version probably12:45
xorAxAxIIRC12:45
xorAxAxor money for nothing :)12:45
antocunibrothers in arms is too slow IMHO12:46
xorAxAxyeah, money for nothing in the album version then12:46
xorAxAxbut your choices lack any kind of dynamic :-)12:46
antocunixorAxAx: I inserted an audio delay to make the drum of "walk of life" starting together with the first sprint12:49
antocunithe visual effect is nice, but vimeo apparently lost the delay when transcoding, so they are not in sync anymore12:49
xorAxAxantocuni: did i miss it in the last version or is that a new one? :)12:49
xorAxAxdid you use mp3 vbr maybe?12:49
xorAxAxcbr helps a lot to fight these sync issues12:50
antocunixorAxAx: it was there from the beginning, but now I notice that only mplayer plays it correctly12:50
antocuniffplay doesn't, for example12:50
antocunineither vlc :-/12:52
AntonK (n=asl@asl.dorms.spbu.ru) left irc: Remote closed the connection12:52
antocuniany clue where armin is?12:58
AntonK (n=asl@asl.dorms.spbu.ru) joined #pypy.12:58
cfbolzantocuni: relaxing?12:59
antocunicould be, I guess13:00
cfbolzantocuni: why|?13:05
antocunibecause I wanted to discuss with him about of to handle hint(obj.__class__, promote=True) for ootype13:05
cfbolzah13:07
CIA-303exarkun * r56116 10pypy/pypy/interpreter/ (module.py test/test_module.py): test and fix for r5610613:17
cfbolzexarkun: cool, thanks13:21
bigdo1 (n=scmikes@72-197-8-8-arpa.cust.cinci.current.net) left irc: Read error: 110 (Connection timed out)13:33
exarkunif I want to print a W_StringObject from rpython in a readable way, what should I do?13:41
exarkunspace.unwrap()?13:42
exarkunseems so :)13:46
cfbolzexarkun: just for testing or in a translatable way?13:52
exarkuntranslatable13:52
cfbolzspace.unwrap isn't :-)13:52
exarkun:(13:52
cfbolzyou can get an rpython string using space.str_w(w_string)13:53
cfbolzexarkun: why do you want to print something?13:53
exarkuntrying to debug something13:53
cfbolzok13:53
cfbolzthen print space.str_w(w_obj) works13:54
exarkunI want to see what gets popped from sys.modules in try_import_mod13:54
exarkuncool, thanks13:54
bigdo1 (n=scmikes@72-197-8-8-arpa.cust.cinci.current.net) joined #pypy.14:05
mgod (n=mgod@fw.arb.zattoo.com) joined #pypy.14:12
nikomatsakis (n=niko@niko-duo.inf.ethz.ch) joined #pypy.14:29
nikomatsakishello all :)14:30
antocunihi niko!14:31
antocunihow's going?14:31
cfbolzhi niko!14:31
cfbolznikomatsakis: what are you doing these days?14:32
nikomatsakisit's going well14:32
nikomatsakisI've been busy preparing various paper submissions14:32
nikomatsakistwo workshops recently, and now I'm trying to get a POPL '09 paper ready...14:32
nikomatsakiswe'll see though, the deadline is looking closer and closer...14:33
cfbolzsounds good14:33
cfbolzwhat's it about?14:33
nikomatsakiscfbolz: one sec, just got a call14:34
exarkunhumph.  so much for that hypothesis.14:40
exarkunanyone know how a module might disappear from sys.modules?  or a good way to figure out how it is happening?14:43
cfbolzexarkun: you only see it on pypy-c, not on py.py, I guess?14:45
exarkuncfbolz: I haven't tried on py.py, I suspect it would take 10 or 15 hours to reproduce there14:45
exarkunokay, maybe only 2 or 3, but still14:45
exarkunlonger than it takes to instrument the interpreter and do a new translation14:46
antocuniexarkun: write a subclass of dict which starts a pdb when you call __delitem__() or clear() on it, then assign an instance of that to sys.modules14:46
Odd_Bloke (n=oddbloke@compsoc.sunion.warwick.ac.uk) left irc: Remote closed the connection14:46
cfbolzantocuni: doesn't work when translated though14:47
exarkunI wouldn't assume that replacing sys.modules with a new object would actually work meaningfully.  Do you think it would?14:47
antocunicfbolz: why?14:47
Action: antocuni tries14:47
cfbolzantocuni: pdb?14:47
antocunicfbolz: app-level pdb14:47
cfbolzah14:47
cfbolzexarkun: you can put something there that looks exactly like a dict :-)14:47
exarkuncfbolz: so anything in pypy that needs to use sys.modules always looks it up on the sys module, nothing caches it?14:48
cfbolzthink so14:48
exarkunokay, that sounds worth a try14:49
cfbolzexarkun: even if that is not the case, you can work around that by using multidicts14:49
cfbolza bit more work though14:49
Action: cfbolz needs to leave14:49
cfbolz (n=cfbolz@p4FDA9A9E.dip0.t-ipconnect.de) left irc: "Leaving"14:49
exarkunouch14:50
exarkunI broke pypy :(14:50
antocuniexarkun: cpython caches sys.modules: http://paste.pocoo.org/show/77954/14:51
antocuniwhile pypy-c crashes with that code14:53
Action: exarkun notices some clear calls14:55
bigdo2 (n=scmikes@72-197-8-8-arpa.cust.cinci.current.net) joined #pypy.14:56
antocuniexarkun: this works with pypy-c, might be useful http://paste.pocoo.org/show/77955/14:57
exarkunantocuni: thanks14:58
exarkunI think I found my bug :/14:58
antocuniwell, that's good, no?14:58
CarlosEDP (n=Carlos@189.65.142.243) joined #pypy.14:59
exarkunI guess so14:59
mgod (n=mgod@fw.arb.zattoo.com) left irc: 15:00
headius (n=headius@218.45.193.1) joined #pypy.15:00
bigdo2exarkun: congratulations, does that mean twisted runs under pypy :-)15:02
exarkunfound and fixed are still different things :o15:02
jewel_ (n=jewel@dsl-242-165-12.telkomadsl.co.za) joined #pypy.15:03
mgod (n=mgod@fw.arb.zattoo.com) joined #pypy.15:04
bigdo2exarkun: at least you have reduced your search space :-)15:04
bigdo1 (n=scmikes@72-197-8-8-arpa.cust.cinci.current.net) left irc: Read error: 110 (Connection timed out)15:11
DanielHolth (n=chatzill@209.251.142.125) left irc: "ChatZilla 0.9.83 [Firefox 3.0/2008052912]"15:14
stakkars (n=tismer@i577B7EBF.versanet.de) left irc: Read error: 110 (Connection timed out)15:21
joe_mp_ (n=joe@p549C6802.dip.t-dialin.net) joined #pypy.15:22
MrMeanie (n=Geoff@82.153.197.73) joined #pypy.15:22
jewel_ (n=jewel@dsl-242-165-12.telkomadsl.co.za) left irc: No route to host15:25
joe_mp (n=joe@p549C6802.dip.t-dialin.net) left irc: Read error: 110 (Connection timed out)15:30
MrMeanie (n=Geoff@82.153.197.73) left irc: " HydraIRC -> http://www.hydrairc.com <- \o/"15:38
nikomatsakiscfbolz: sorry disappeared for a while!  if you're still curious, the paper is about this system I developed for detecting race conditions using an effect system15:42
nikomatsakisthough recently I found a paper published in Jan of this year that has a very similar approach, which is a bit frustrating. :( That's partly why I'm working double time, cause I have to try to invent some new stuff on top of what I already had :)15:43
nikomatsakisantocuni: can I ask you a question about the less-meta-instances branch15:43
antocunisure15:43
nikomatsakiswhat exactly changed, in the end15:44
nikomatsakis:)15:44
antocuni:-)15:44
antocunithe major change is that ootypesystem.class.OBJECT is now aliased to ootype.ROOT15:45
nikomatsakisand how do we fetch the meta class15:45
nikomatsakisif i recall, there was some effort to avoid generating a meta class except when needed?15:46
antocuniexactly15:46
nikomatsakisbut when it is needed, it's added as a field at the upper-most class in the class hierarchy15:46
nikomatsakis?15:46
panni_ (i=hannes@ip-88-152-22-213.hsi.ish.de) joined #pypy.15:47
antocuninikomatsakis: look at rclass.py:4615:47
nikomatsakisok15:47
antocuniif the class needs a metaclass, it inherits from rclass.META, which has a class_ field15:48
nikomatsakisand rclass.META inherits from ROOT?15:48
nikomatsakisor am I confused :)15:48
antocuniyes15:49
Dekcarki (i=rico@port-ip-213-211-248-216.sta.reverse.mdcc-fun.de) joined #pypy.15:49
nikomatsakisok.  and Exception does not (should not) require the metaclass15:50
antocuniexactly15:50
nikomatsakishence it should derive from ROOT, not META15:50
nikomatsakisso, if you have some classes A, B, and C which all inherit from one another, and C requires a meta-class, then this fact propagates all the way up to A, which then inherits from Meta, not Object?15:51
nikomatsakiser, not ROOT15:51
antocuniuhm, that's a good question15:52
antocunibut I don't think that the jvm backend should care about this15:52
antocunibasically, things are simpler than before now15:52
nikomatsakisno, it doesn't affect the backend I guess, I'm just trying to make sure I understand the model15:52
antocuniah ok. The problem is that I'm not sure to understand it at 100% :-)15:53
nikomatsakisok, well I guess I have enough to start hacking around a bit :)15:54
nikomatsakisthanks for the help15:55
antocuninikomatsakis: ah, I think I said a wrong thing before15:55
nikomatsakisok15:55
antocuniif class A needs a metaclass, A still inherits from ROOT and A_Meta inherits from META15:56
nikomatsakisah, ok15:56
antocuniyes, I think it makes much more sense now :-)15:56
nikomatsakisbut where does the _meta field come from15:56
nikomatsakiser, _class15:56
nikomatsakiswhat I mean by that15:57
nikomatsakisis how does the system link an object to it's meta class15:57
nikomatsakisand if I recall correctly, in the case where a custom meta class is not needed, then an object's meta class is just its java.lang.Class object 15:57
antocuniwait, there is a bit of confusion15:58
antocunithere is the type ootype.Class, which is basically the equivalent of java.lang.Class and .NET System.Type15:58
nikomatsakisright15:58
antocunithen there is this "meta class", which is used only to contain class attributes15:59
nikomatsakisright15:59
antocunito get the ootype.Class relative to an instance, we have two possibilities16:00
antocuni1) if the instance has no metaclasses, call ootype.classof(obj)16:00
antocuni2) is the instance has metaclasses, do obj.getmeta().class_16:00
jewel_ (n=jewel@dsl-242-165-12.telkomadsl.co.za) joined #pypy.16:00
antocuni(though maybe (1) could work as well, I don't know)16:00
nikomatsakisand how do you know if the instance has metaclasses...?  I mean, if you have an instance of ROOT, it could be anything, right?16:02
nikomatsakisthough if (1) works as well that would make sense16:02
antocuniwhen you cast it to ROOT, you loose this knowledge16:02
fijal (n=fijal@c-76-25-206-12.hsd1.co.comcast.net) joined #pypy.16:03
nikomatsakisok16:04
antocuninikomatsakis: ah, the backend needs to implement the new operation "classof"; I already did that, let me commit16:04
nikomatsakisok16:04
nikomatsakisI assume that just invokes Object::getClass(()16:05
antocuniyes16:05
CIA-303antocuni 07less-meta-instances * r56124 10pypy/pypy/translator/jvm/opcodes.py: implement classof16:05
antocuniyes, it's not that it was too hard to do that :-)16:05
fijalhello16:09
antocunihi maciek!16:10
nikomatsakisfijal: Hi!16:10
fijalhi anto, hi niko16:11
CarlosEDP (n=Carlos@189.65.142.243) left irc: "ChatZilla 0.9.83 [Firefox 3.0/2008052906]"16:14
verte (n=verte@121.219.103.81) left irc: "http://coyotos.org/"16:15
nikomatsakisantocuni: it seems I have it basically working16:17
nikomatsakisbut I have to work through all the tests now :)16:17
antocuninikomatsakis: cool16:17
nikomatsakisantocuni: is there an easy way to get the ootype.Instance corresponding to exception.Exception?"16:18
antocuniyes, I think there is some method inside exceptiondata or so16:18
Action: antocuni checks16:18
antocuninikomatsakis: it should be exceptiondata.lltype_of_exception_value16:19
antocuniI don't remember how to get exceptiondata though :-)16:19
antocunimaybe it's attached to the rtyper16:19
nikomatsakisthat was my next question :)16:19
Odd_Bloke (n=oddbloke@compsoc.sunion.warwick.ac.uk) joined #pypy.16:21
nikomatsakisyeah, the rtyper seems to16:21
stakkars (n=tismer@16.106.113.82.net.de.o2.com) joined #pypy.16:21
arigato (n=arigo@d83-181-110-154.cust.tele2.ch) joined #pypy.16:22
fijalarigato: hi!16:22
arigatohi!16:23
antocunihi armin!16:23
nikomatsakisantocuni: except that the data in exceptiondata doesn't quite seem to be right...16:25
antocuniuh?16:25
antocuniwhy?16:25
nikomatsakislltype_of_exception_type is Class, and _value is Instance(Root)16:25
nikomatsakisat least when I print it out16:25
antocunistrange16:25
Action: antocuni checks16:26
antocuninikomatsakis: indeed, it seems buggy16:27
antocuninikomatsakis: I think you can try to use get_standard_ll_exc_instance16:28
nikomatsakisok16:28
nikomatsakisif not, there is another way I can solve my problem16:28
antocuninikomatsakis: I think this could work, but it's a hack http://paste.pocoo.org/show/77970/16:29
Action: antocuni wonders why lltype_of_exception_type is buggy16:30
nikomatsakisantocuni: ok, thanks :) I think my other option is more elegant for the moment16:30
antocuniwhat's the other option?16:30
nikomatsakisI need a base class for all PyPy generated exception16:30
nikomatsakisexceptions16:30
nikomatsakisso instead of having Exception extend Throwable16:31
nikomatsakisI will just have it extend a class "PyPyThrowable" which itself extends Throwable16:31
nikomatsakisI only want this for testing, so I can print out pypy-generated exceptions but let other ones through...16:31
nikomatsakis(such as the dreaded VerifyError :)16:32
antocuninikomatsakis: what do you need to put inside PyPyThrowable?16:32
nikomatsakisantocuni: nothing at all, I just want a class name to use in a catch statement which catches only pypy-generated exceptions16:32
antocuniah, makes sense I guess16:33
nikomatsakisactually it might not, as I'd eventually like to move unify pypy-generated exceptions for things like "divide by zero" with their Java equivalents16:33
nikomatsakisbut for now it's ok :)16:33
antocuninikomatsakis: what's the difference between extending Throwable and extending Exception?16:33
nikomatsakisException must be declared in your throws clauses16:33
nikomatsakiswhich I think the bytecode verifier checks16:33
nikomatsakisbut I'm not sure16:33
nikomatsakisthat might be a Java-only thing16:34
exarkunHumm16:34
fijalnikomatsakis: can you stop using this strange font?16:34
exarkunI thought even Java had unchecked exceptions now16:34
nikomatsakisI don't know how I switched fonts16:34
fijalI tend to try to unselect it with mouse16:34
nikomatsakis(also, the font looks normal on my screen)16:34
exarkunnikomatsakis: you have some reverse video going on16:34
nikomatsakis (n=niko@niko-duo.inf.ethz.ch) left #pypy.16:34
nikomatsakis (n=niko@niko-duo.inf.ethz.ch) joined #pypy.16:35
nikomatsakisis that better?16:35
antocuninikomatsakis: it's not possible to have 1-1 mapping right now, because Python hierarchy is richer (e.g. there is no equivalent to LookupError)16:35
fijalI don't know16:35
fijalyou have just "think" and "s" in exceptions in reverse video16:35
nikomatsakisexarkun: regarding checked vs unchecked: java has always had both16:35
exarkunnikomatsakis: < nikomatsakis> which I think the bytecode verifier checks16:35
exarkunnikomatsakis: you did something special to "think" in that message16:35
nikomatsakisI think I hit the italics รšey16:35
nikomatsakiskey16:35
nikomatsakiswithout thinking about it :)16:35
fijalsince when they ship keyboards with italics key?16:36
exarkunfijal: it's right above the internet key16:36
nikomatsakisantocuni: yeah, I know it's not possible to have 1-to-1, that's why I didn't change it.  I've had thoughts about various hacks to make it work but I don't know if it's really possible...16:36
nikomatsakisat least not elegantly16:37
antocuninikomatsakis: I think it's possible; since it's about RPython, we could just forbid classes which don't fit into .net/jvm hierarchy 16:37
antocunilast time I checked there were few of them16:37
nikomatsakisantocuni: yeah, that would be one way16:38
fijalexarkun: sad discussion about community buildbots16:38
antocuninikomatsakis: also, if we go for "native" exceptions, we loose the possibility to use the exception transformer16:39
nikomatsakisantocuni: look at function.py line 133 16:39
nikomatsakis(on the branch)16:39
nikomatsakisI guess we could get rid of the if, no?16:40
antocuninikomatsakis: which directory?16:40
nikomatsakis(sorry, in the CLI directory)16:40
nikomatsakisI've never understood what that if was testing for anyhow :)16:40
antocuniuhm :-)16:40
antocuniI remember that there were some weird failure that I fixed that way, but don't ask me which :-)16:41
antocuniI think we can throw it away, yes16:41
stakkars (n=tismer@16.106.113.82.net.de.o2.com) left irc: Read error: 110 (Connection timed out)16:43
fijalarigato: you there?16:43
arigatomostly, yes16:46
fijalarigato: do you remember chatting with nokia guy last EP?16:47
arigatonot right now, what was it about?16:47
fijalok, doesn't matter :)16:47
fijalwe went to this nice place for lunch with him16:47
fijalabout pypy and mobile devices16:47
antocunifijal: it seems you are the only one that remember of it :-)16:48
fijalyeah, that might be just in my mind16:49
mgod (n=mgod@fw.arb.zattoo.com) left irc: Remote closed the connection16:51
mgod (n=mgod@fw.arb.zattoo.com) joined #pypy.16:51
dialtone (n=dialtone@adsl-75-6-226-104.dsl.pltn13.sbcglobal.net) left irc: Connection timed out16:54
nikomatsakisantocuni: I figured out what that if was for16:56
nikomatsakisbecause taking it out broke one of my tests :)16:56
antocunihurray TDD :-)16:57
hpk (n=chatzill@p549F4CFE.dip.t-dialin.net) left irc: Read error: 110 (Connection timed out)16:57
nikomatsakissometimes the code that follows wants to know the class of the exception16:57
nikomatsakisso I think the cli code there is broken16:57
nikomatsakis(i.e., it shouldn't just be commented out, but should be converted to use getClass() [or whatever the cli equiv is] instead of fetching meta)16:58
nikomatsakisI can move the test on the JVM that breaks into oosupport16:58
antocuninikomatsakis: no, because now to query the class they call classof(), which is translated to GetType()16:58
nikomatsakishmm, except they don't16:58
nikomatsakisnot in all cases :)16:59
antocunibut sure, if you have an additional test, please move it16:59
nikomatsakismaybe the real bug lies elsewhere then16:59
nikomatsakisi.e., the code SHOULD be generating a call to classof16:59
nikomatsakishmm, it seems the test *was* already in the cli, so maybe I am wrong... will keep investigating and let you know17:03
nikomatsakisregardless I am refactoring the common tests into oosupport17:03
antocuniok17:03
antocuninikomatsakis: maybe commit what you have done so far, if you want me to have a look17:04
nikomatsakisantocuni: ok, 1 sec17:05
CIA-303niko 07less-meta-instances * r56125 10pypy/pypy/translator/ (7 files in 5 dirs): start fixing jvm: test try_nested in test/test_exceptions still doesn't work17:10
nikomatsakisantocuni: if you want to take a look, try running the jvm test/test_exceptions with -k nested17:10
antocuniok17:11
nikomatsakisif you run it with --view17:11
nikomatsakisthe problem, I think, is due to the code in fn_717:11
nikomatsakisalthough I see that same code in the CLI and it seems to work17:11
nikomatsakisbasically the value from the inputargs never gets stored17:11
nikomatsakisand the verifier is unhappy about it17:11
Action: antocuni confused17:15
tav (n=tav@82.152.221.255) joined #pypy.17:15
nikomatsakis(if I add those lines from the if back in, however, all the tests in test_exception pass)17:16
nikomatsakisI am a bit confused too17:16
antocuninikomatsakis: the problem is not of that code, because if you put a pdb there you see it's not reached17:16
xorAxAxwormholes in geneva -- http://arxiv.org/abs/0710.269617:16
nikomatsakisantocuni: not so17:17
nikomatsakisit is reached17:17
nikomatsakisare we talking about different code?17:17
antocuniprobably :-)17:17
antocuniah!17:17
nikomatsakisok, I mean jvm/node.py, line 389 or so17:17
antocuniI was modifying the cli one :-)17:17
nikomatsakisI thought that might be the case :)17:18
antocuniok, better now17:18
fzzzy (n=donovan@office.mochimedia.net) joined #pypy.17:18
xorAxAxhmm, i did a mistake. its 18 and not 34.17:19
fijalxorAxAx: ?17:20
xorAxAxlets see how many NIN fans read the pypy blog (i am not a nin fan but somebody recommended this track :))17:20
nikomatsakisantocuni: one thing I don't quite get is why the cli code looks so different in --view from the jvm code?17:20
xorAxAxfijal: the track name17:20
nikomatsakisperhaps it has to do with optimizations that are applied?17:20
xorAxAxssi2ssa?17:20
antocuninikomatsakis: indeed, the jvm code has one more block17:21
antocuniah no, never mind17:21
antocuninikomatsakis: I bet that's because the cli backend calls backendopt17:22
nikomatsakiswould make sense17:22
nikomatsakismaybe we can disable that and see if the cli breaks too?17:22
antocunibut that probably means that it's not testing anything17:22
antocunisure17:22
pjenvey_ (n=pjenvey@astound-69-42-4-166.ca.astound.net) joined #pypy.17:22
nikomatsakisindeed it does17:23
headius (n=headius@218.45.193.1) left irc: Read error: 104 (Connection reset by peer)17:23
nikomatsakisbreak I mean17:23
antocuniyes17:23
antocuniso it probably just means that I should have not commented out that code17:23
nikomatsakisit looks like it17:24
headius (n=headius@218.45.193.1) joined #pypy.17:24
nikomatsakisand based on how I read the graph, the code still makes sense17:24
nikomatsakisi.e., there are two arguments on the edge and we only store 117:24
nikomatsakiswhich seems intuitively wrong17:24
Rhamphoryncus (n=rhamph@unaffiliated/rhamphoryncus) joined #pypy.17:24
nikomatsakis(with the code commented out that is)17:24
antocuniyes17:24
antocunino clue why I did that17:24
nikomatsakisprobably you just weren't sure what it should do, and then it never broke any tests17:24
stakkars (n=tismer@16.121.113.82.net.de.o2.com) joined #pypy.17:25
CIA-303niko 07less-meta-instances * r56126 10pypy/pypy/translator/jvm/node.py: 17:25
CIA-3uncomment the code in the if which stores both the exception class17:25
CIA-3and value. this fixes various tests in test_exception.17:25
nikomatsakisantocuni: I leave it to you to decide how to deal with the fact that backendopt=True hid the problem ... :)17:25
antocuninikomatsakis: sure, I tackle it now17:26
nikomatsakisantocuni: no, I mean, should we run the test in the future with backendopt=False, or both ways, or not worry about it...17:26
nikomatsakisanyway, cool, jvm seems to be working17:26
nikomatsakisI just started running all the tests, but that will take a while...17:27
fijalnikomatsakis: what are you doing?17:27
antocuniI'm going to add a backendopt attribute to the test class, and when it's set it takes precedence over the default value of interpret17:27
nikomatsakisantocuni: makes sense17:28
nikomatsakisfijal: I was making the jvm backend work on the less-meta-instances branch17:28
fijalah, cool17:28
fijaldo you plan to have jvm jit any time?17:28
fijal:)17:28
nikomatsakisfijal: which basically seems to have involved deleting a lot of code17:28
nikomatsakisI'd love to... soon as I get this damn PhD thing out of the way... :)17:28
fijalhow far are you?17:29
nikomatsakishard to say... I'm not far enough to start writing my thesis yet, but I'm close enough that I can see how it will look, I guess 17:29
nikomatsakisbut I have a hard time turning that into an estimate of how long it will take to finish17:30
fijalright17:30
CIA-303arigo 07async-del * r56127 10pypy/pypy/ (5 files in 4 dirs): 17:34
CIA-3Not completely nice, but this should make signals and threads17:34
CIA-3work again.17:34
CIA-303antocuni 07less-meta-instances * r56128 10pypy/pypy/translator/cli/ (function.py test/runtest.py test/test_exception.py): 17:34
CIA-3because of backendopts, the various try/finally/except clauses were17:34
CIA-3inlined, so the tests were not testing anything. Disable backendopts17:34
CIA-3for them, and fix a bug17:34
antocuninikomatsakis: I try to translate pypy-jvm17:35
nikomatsakisantocuni: ok, cool17:35
antocuniat some point, we should investigate how to improve pypy-jvm speed17:35
antocunido you plan to come to any sprint soon?17:36
Action: antocuni afk17:38
fijalSyntaxError: 'yield' not allowed in a 'try' block with a 'finally' clause (test_undocumented.py, line 51)17:39
idnarhaha17:40
xorAxAxhttp://programmersatwork.files.wordpress.com/2008/05/m1105b1.gif -- a program by bill gates17:41
exarkunhe needs to work on his handwriting17:42
arigatofijal: supporting this is new in 2.517:42
stakkars (n=tismer@16.121.113.82.net.de.o2.com) left irc: Connection timed out17:42
fijalarigato: I know17:43
fijaljust fixing tests to work on wyvern17:43
fijalthat wasn't me, just stolen this test from Brett17:43
CIA-303fijal * r56129 10pypy/pypy/module/zipimport/test/test_undocumented.py: port this to python2.417:51
fijalhttp://wyvern.cs.uni-duesseldorf.de/pypytest/56102/failed/module._lsprof.test.test_cprofile.py.AppTestCProfiletest_cprofile.html17:51
fijalI don't understand this one17:51
fijalarigato: any idea?17:51
arigatono17:52
antocuniuh, translate -b jvm fails during rtyping on the less-meta-instances branch :-(17:58
antocunistrange, because I'm sure I translated pypy-cli sometime ago17:58
antocuniany clue? http://paste.pocoo.org/show/77976/17:58
fradiavalo (n=fradiava@outside30.mlp.com) joined #pypy.17:59
fijalhint is broken?18:00
xorAxAxantocuni: local hint related modifictions?18:00
fijalannotation of it?18:00
fijalyes, it's fixed vs variable size18:00
antocuniyes, and it's probably due to the fixed-list-ootype branch18:00
antocuniI also think I've already encountered this error, and also fixed it18:00
antocunibut I don't remember :-/18:01
antocuniah, indeed; the less-meta-instances branch was created on 2008-04-04, while I had this discussion with armin on 2008-04-07: http://www.tismer.com/pypy/irc-logs/pypy/%23pypy.log.2008040718:04
jewel_ (n=jewel@dsl-242-165-12.telkomadsl.co.za) left irc: Read error: 113 (No route to host)18:04
antocuniah, I even saved the discussion in pypy/doc :-)18:07
fijalwuaaa18:07
CIA-303antocuni 07less-meta-instances * r56130 10pypy/pypy/config/translationoption.py: backport this constraint from dist/, as without it translation is broken18:10
arigatooups18:12
Action: arigato traces a test failure to an obscure race condition in the thread code18:12
antocuniarigato: btw, I've been playing with hint(..., promote_class=True) in the last days18:13
antocuniI even got the test passing more or less18:13
arigatonice18:13
antocuniarigato: what I'm not sure about, is how to store the "I know your class" information on the InstanceRedBox18:14
antocuniright now, I'm using a fake fielddesc with name=="__class__" and index=-1, and I call remember_field18:14
antocunibut maybe there are better ways to do it18:14
arigatomakes kind of sense (although index=0 sounds better)18:14
arigatoI fear that nicer solutions will have to wait for some refactoring18:15
antocuniarigato: indices starts from 1?18:15
arigatonot so far, but for ootype you can count from 118:15
arigatousing -1 is a bit bogus18:15
arigatoit will map to "the last element of the list"18:15
arigatobut I'm not sure how well that plays with subclassing18:16
antocuninot well, I fear18:16
Action: antocuni checks18:16
arigatoso it's probably easier to have fielddesc indices starting from 1, and use 0 for __class__18:16
stakkars (n=tismer@16.121.113.82.net.de.o2.com) joined #pypy.18:16
CIA-303arigo * r56131 10pypy/pypy/module/thread/threadlocals.py: 18:17
CIA-3Oups! A race condition in the thread "minicache" code. Mea culpa.18:17
CIA-3Hard to write a failing test, but at least test_perthread_excinfo18:17
CIA-3fails because of this issue in the async-del branch.18:17
antocuniarigato: ah good, it's should be even easy to add __class__ in position 018:17
arigatoyes18:18
CIA-303arigo 07async-del * r56132 10pypy/pypy/module/thread/ (__init__.py gil.py test/test_gil.py threadlocals.py): Some progress in the thread module.18:18
nikomatsakisgood bye everyone18:24
nikomatsakis (n=niko@niko-duo.inf.ethz.ch) left #pypy.18:24
CIA-303fijal * r56133 10pypy/pypy/lib/ (app_test/test_functools.py functools.py): Lousy implementation of functools with some tests. Not as compliant, but working18:24
fijalcool18:25
fijalhttp://code.google.com/p/sole-scion/18:25
fijalthis stuff works almost out of the box on pypy18:26
antocuninice18:27
antocuniblog post!18:27
antocuni"pypy plays games!" :-)18:28
fijalthat's good18:28
fijalsince it takes another library from C and just runs it on top of our ctypes18:29
fijalbesides, it's a good performance issue for ctypes18:29
antocunihow can I tell java to use only one of my cores?18:30
xorAxAxantocuni: taskset? :)18:31
antocunixorAxAx: I'm reading the man page :-)18:31
antocuniah, but I don't think it fits18:32
antocunisince genjvm launches many instances of jasmin to assemble sources18:32
antocuniso I would have to call taskset for all of those18:32
xorAxAxisnt it inherited?18:33
antocunino clue18:33
antocuniit's worh trying I guess18:33
stakkars_ (n=tismer@16.106.113.82.net.de.o2.com) joined #pypy.18:33
antocunicool, it works :-)18:34
CIA-303fijal * r56134 10extradoc/talk/ep2008/status.txt: Draft of my slides18:46
fijalantocuni: can you look at slides?18:46
fijalantocuni: especially topic-wise18:48
CIA-303arigo 07async-del * r56135 10pypy/pypy/ (3 files in 2 dirs): Translation fix.18:48
fijalantocuni: how's rst2beamer working?18:49
stakkars (n=tismer@16.121.113.82.net.de.o2.com) left irc: Connection timed out18:51
stakkars_ (n=tismer@16.106.113.82.net.de.o2.com) left irc: Read error: 60 (Operation timed out)18:55
antocunifijal: sure19:06
antocunicool, pypy-jvm-less-meta-instances translates and runs19:07
fijalantocuni: wait a sec19:08
fijalnow19:08
CIA-303fijal * r56136 10extradoc/talk/ep2008/status.txt: Update19:08
antocunifijal: for rst2beamer, have a loot to extradoc/talk/pycon-italy-2008/makepdf19:09
arigatoantocuni: nice19:10
CIA-303fijal * r56137 10pypy/pypy/module/gc/app_gc.py: 19:10
CIA-3Potentialy questionable commit. Implement gc.enable and gc.disable as19:10
CIA-3enable/disable finalizers. It fits in one of two use cases, the other19:10
CIA-3one is for performance reasons, where it does not harm.19:10
arigatofijal: gc.enable: yes, I was also thinking about something similar19:11
antocuniit's even 46% faster than an older pypy-jvm I've found around19:11
arigatouh19:11
antocuninot sure if it was supposed to be the fastest19:11
Action: antocuni looks at pypy-jvm --info19:11
fijalarigato: good :)19:11
fijalarigato: two things19:12
fijal1. our traceback handling explodes if __name__ is bogus or missing19:12
Nick change: eartone -> chintone19:12
fijal2. our pickle is broken19:12
antocuniah no, the options are not the same, the slower pypy-jvm was compiled with inline-threshold=32.4, which is known to produce slower pypy-jvms19:12
xorAxAxchintone: rename pickle19:12
Nick change: chintone -> pickletone19:12
antocuniuh no, the options are really the same19:14
antocuni46% looks a bit too much as a speedup, though19:14
xorAxAxwhy?19:15
fijalarigato: can you look at app_gc.py?19:15
fijalI think it would not work with geninterp19:15
antocunixorAxAx: becase less-meta-instances removes a lot of classes, but they are not really used19:16
fijalwhat about "it enabled some optimizations in hotspot"?19:16
antocuniprobably19:16
xorAxAxprobably hotspot will more likely unwrap classes now?19:16
antocunianyway, it's nice :-)19:16
arigatofijal: just disable geninterp for app_gc.py and use a normal "global" statement19:18
fijalok19:18
fijalit should be # NOT_RPYTHON is first or second line?19:18
arigatosomething like that19:18
arigatoor maybe NOT_RPYTHON should appear in the module docstring19:19
xorAxAxi think there are multiple NOT_RPYTHON detector sites with different syntax :)19:19
fijalyes19:20
fijalcopied from rctime19:20
antocuni"there should be only one way etc. etc."19:20
CIA-303fijal * r56138 10pypy/pypy/module/gc/app_gc.py: Make non-rpython version of it, with global statement19:21
CIA-303fijal * r56139 10pypy/pypy/module/gc/test/test_gc.py: And while we're at it, a test19:22
stakkars (n=tismer@16.106.113.82.net.de.o2.com) joined #pypy.19:23
fijaldo we have interp-level cpickle module?19:25
fijalor not really?19:26
fijalstakkars: hey19:26
stakkarsjo mei19:26
fijalstakkars: how's everything?19:26
stakkarsfijal: something is good19:27
Dekcarki (i=rico@port-ip-213-211-248-216.sta.reverse.mdcc-fun.de) left irc: Read error: 60 (Operation timed out)19:27
stakkarsfijal: bad that we lost EuroStar19:28
gr00ber (i=50cab54c@gateway/web/ajax/mibbit.com/x-7f832c1350c03e29) joined #pypy.19:30
gr00berdoes the LLVM dudes hang out on some irc channel?19:30
xorAxAxgr00ber: ask AntonK 19:30
gr00berAntonK19:31
gr00beryou are hereby asked19:31
xorAxAx:)19:31
gr00berhey, ronny is here19:31
gr00berso, on a scale from 1 to 10, how finished is pypy?19:32
xorAxAxis it a linear or a logarithmic scale?19:32
dialtone (n=dialtone@adsl-99-136-101-166.dsl.pltn13.sbcglobal.net) joined #pypy.19:33
fijal8.519:33
gr00berxorAxAx: linear19:35
antocunifijal: the "status" talk is meant to show differences between now and last year?19:57
fijalyes19:58
fijalI think that's the nice idea19:58
antocuniI think we are missing a lot of things that happened long ago but still after last july19:59
antocunie.g., pypy-jvm translated in september-october19:59
fijalsure, feel free to add19:59
antocunifijal: have you looked through the blog posts?19:59
antocunifijal: I've also added a new slide about comparing cpython and pypy speed20:00
antocuniwell, only the title so far :-)20:00
fijalantocuni: no, I didn't20:02
antocuniI'm doing it20:03
CIA-303antocuni * r56140 10extradoc/talk/ep2008/status.txt: some language tweaks, some new points/paragraphs20:04
AntonKgr00ber: yes20:13
AntonK#llvm at OFTC20:13
AntonKevening all, btw20:13
AntonK:)20:13
CIA-303arigo 07async-del * r56141 10pypy/pypy/interpreter/executioncontext.py: Translation fix.20:14
fijalarigato: still there?20:29
arigatoyes20:29
fijaltell me20:29
fijalif I have A20:29
fijaland B, being subclass of A20:29
fijalif I call A() == B()20:29
fijalshould B.__eq__ be called first?20:29
arigatosometimes20:29
arigato:-)20:30
fijalis there a PEP or this is just because?20:30
arigatoit's specified in the lang reference, very roughly20:30
arigatoI *think* that for __eq__, yes, B.__eq__ is always called before A.__eq__, but I may be missing a case20:31
fijaldoesn't work for pypy-c20:31
arigatoah? strange20:31
CIA-303antocuni 07oo-jit * r56142 10pypy/pypy/ (10 files in 7 dirs): 20:32
CIA-3tentative checkin; introduce a new hint "promote_class=True"; the20:32
CIA-3promotion is done on the class of the argument, and the resulting var20:32
CIA-3is red.20:32
CIA-3On lltype, this has the same effect as hint(obj.__class__,20:32
CIA-3promote=True), but the latter has no chance to work on ootype.20:32
arigatoah, __eq__ is not tested in pypy/objspace/test/test_descroperation.py20:32
arigatovarious other special methods are20:32
antocuniarigato: a review of r56142 would be very welcome at some point :-)20:32
fijalhttp://paste.pocoo.org/show/78007/20:32
arigatoantocuni: ok, at some point :-)  (I'm enjoying some days mostly off)20:33
arigatofijal: ah, no, not like that20:33
antocuniarigato: sure, no hurry :-)20:33
arigatothe relevant issue is what occurs if you override __eq__ in the class B20:33
arigatofijal: in other words, pypy-c and cpython both give the same result as your paste20:35
exarkunwhat about pypy-c --oldstyle20:35
exarkun(without the object base)20:35
arigatoexarkun: I don't really want to know :-)20:35
exarkun:)20:36
fijalfijal@zygfryd:/tmp$ python x.py 20:36
fijal<class '__main__.B'> <class '__main__.A'>20:36
fijalfijal@zygfryd:/tmp$ pypy-c x.py 20:36
fijal<class '__main__.A'> <class '__main__.B'>20:36
fijalfijal@zygfryd:/tmp$ 20:36
fijalno20:36
fijalthey give different answers20:36
arigatobah20:36
fijalit's fairly good20:37
fijalthat's the only bug that we discovered in pypy while trying to run twisted20:37
arigatoprobably an unexpected side effect of the rich-versus-cmp comparison20:37
fijaland tons of stuff in twisted20:37
arigato(insert "mess" in my previous sentence wherever you feel like)20:37
xorAxAxfijal: so pypy was useful while debugging twisted20:38
fijalprobably an unexpected mess side effect of mess and the rich-versus-cmp-versus-mess comparison mess20:40
fijal?20:40
sanxiyn (n=tinuviel@sublibdhcp15.kaist.ac.kr) joined #pypy.20:41
fijalsanxiyn: hi!20:42
sanxiynHi, long time no see :)20:42
antocunisanxiyn: hi!20:42
sanxiynI just wanted to say that I appreciated PyPy code swarm movie, especially moments with my name :)20:42
arigatohttp://paste.pocoo.org/show/78009/20:45
arigatothis also gives different results20:45
fijalarigato: so you consider it wrong?20:46
arigatowell, it's irregular because the same thing with, say, __add__ and __radd__20:46
arigatobehave differently20:46
antocuniI would say that pypy's behaviour is saner...20:46
arigatobut I suppose we all know that cpython is irregular20:46
gr00bersanxiyn: video link?20:46
sanxiyngr00ber: http://morepypy.blogspot.com/2008/06/pypy-code-swarm.html20:46
sanxiynI guess I am now "retired" member or so...20:47
arigatoin this case, it seems that to get the same behavior as CPython we could kill the condition in line 504 in descroperation.py20:47
arigato(keeping line 505)20:47
fijalhm20:49
stakkars (n=tismer@16.106.113.82.net.de.o2.com) left irc: Read error: 110 (Connection timed out)20:52
Dekcarki (i=rico@port-ip-213-211-248-216.sta.reverse.mdcc-fun.de) joined #pypy.21:09
joe_mp_ (n=joe@p549C6802.dip.t-dialin.net) left irc: Read error: 104 (Connection reset by peer)21:13
fijalsanxiyn: what are you working on these days?21:31
sanxiynfijal: Nothing in particular...21:32
sanxiynAh, ok, my most recent working project is:21:32
sanxiynhttp://savannah.nongnu.org/project/memberlist.php?group=isarmathlib21:32
sanxiynLibrary of Formalized Mathematics! :)21:32
fijalsanxiyn: do you work on IronMonkey any more?21:33
sanxiynNo.21:33
fijaldo you know the official status of this project?21:33
sanxiynNo.21:33
fijalok21:33
sanxiynI do read all mails to tamarin-devel list. It seems to be stagnated, at least from "outside".21:33
xorAxAxsanxiyn: do you know verifun? :)21:34
sanxiynxorAxAx: No.21:34
fijalsanxiyn: tamarin or IronMonkey?21:34
xorAxAxits an automated theorem prover21:34
sanxiynfijal: IronMonkey. Tamarin is, well, progressing irregularly.21:34
sanxiynxorAxAx: I am not interested in automated theorem proving. I am interested in proof assistants.21:34
sanxiynxorAxAx: Most math are too difficult for automation.21:34
xorAxAxsanxiyn: hehe, yes21:35
sanxiynxorAxAx: When any automatic theorem prover constructs a real number, notify me :)21:35
xorAxAxsanxiyn: probably possible on quantum computers :)21:35
sanxiynNot a chance I'd say.21:36
sanxiynI do know that some automatic theorem provers succeed in proving Cantor's theorem (x < 2^x) just searching from axioms.21:36
sanxiynThat's a great achievement, but... far from most mathematics.21:36
xorAxAxdid anybody show that it is undecidable?21:37
sanxiynxorAxAx: ?21:37
sanxiynxorAxAx: Some Godel-Cohen undecidable results are already formalized, I think. But x < 2^x is simple diagnoal arugment.21:37
sanxiynMy point is that some programs succeed finding diagonal argument without any manual hinting. (Using best first search)21:37
xorAxAxno, i mean whether the process of automated theorem proving on reals is undecidable21:38
sanxiynxorAxAx: Real number with addition is decidable, I think. Multiplication is not.21:38
sanxiynEh, no. Strike that.21:38
sanxiynWait a min.21:38
sanxiynxorAxAx: I think Tarski proved it to be decidable. So no.21:39
sanxiynFrom Wikipedia: "Tarski (1951) proved that the theory of real closed fields, including the binary predicate symbols "=", "`", and "<", and the operations of addition and multiplication, admits elimination of quantifiers, which implies that it is a complete and decidable theory."21:39
sanxiynSo, you can algorithmically decide any basic equalities and inequalities on real number field.21:40
sanxiynThat was 50 years ago!21:40
sanxiynxorAxAx: I bet many ATP have it implemented already.21:40
xorAxAxso people have just to come up with fast heuristics :)21:40
antocuni (n=antocuni@host88-126-dynamic.25-79-r.retail.telecomitalia.it) left irc: "Leaving"21:40
Action: xorAxAx queries a guy working on verifun :)21:41
sanxiynxorAxAx: I recall that initial proof of Tarski gave rise to an algorithm which is order of 2^2^n (double exponential) or something.21:41
sanxiynxorAxAx: So there definitely needs to be heuristics. But it is decidable.21:41
sanxiynxorAxAx: That guy should know better :)21:42
xorAxAxprobably you can even find a fast algorithm in BQP :)21:42
sanxiynxorAxAx: I also think that theory of integrating elementary functions is decidable.21:42
sanxiynxorAxAx: So you can fully automate whatever is in Calculus 101 textbook.21:42
Action: xorAxAx had a lecture about grover's algo today21:43
sanxiynxorAxAx: BQP database search?21:43
xorAxAxyes21:44
sanxiynThat doesn't help with exponentials.21:44
xorAxAxwell, i dont suggest using this algo for this problem :)21:44
sanxiynAh, I found the reference. Indefinite integration decision procedure is due to Risch (1968).21:45
CIA-303fijal * r56143 10pypy/pypy/objspace/ (descroperation.py test/test_descroperation.py): A test and a fix21:45
sanxiynI think this (or its derivative) is what most Computer Algebra systems implement.21:45
arigato (n=arigo@d83-181-110-154.cust.tele2.ch) left irc: "See you"21:45
sanxiynxorAxAx: One curious thing is that first order theory on (real, addition, multiplication) is decidable (Tarski), but (integer, addition, multiplication) is not (Godel).21:46
sanxiynBut (integer, addition) is. I think that is due to Presburger.21:46
sanxiynxorAxAx: Is VeriFun like ACL2?21:49
sanxiynI have used ACL2...21:50
xorAxAxsanxiyn: i dont know ACL221:50
sanxiynxorAxAx: It's an automated theorem prover and program verification for Common Lisp.21:50
sanxiynhttp://en.wikipedia.org/wiki/ACL221:50
sanxiynYou can prove things like correctness of quicksort relatively easily.21:51
sanxiynNot sure what effort it would take to verify (say) timsort. :)21:51
xorAxAxsanxiyn: not sure how they compare internally, but at least for the user they work very differnetly -- http://www.inferenzsysteme.informatik.tu-darmstadt.de/verifun/21:52
xorAxAxi think its language consists of characters that arent even in unicode or something like that :-)21:52
sanxiynWhy doesn't VeriFun use a "real" programming language?21:53
xorAxAxno idea21:53
xorAxAxbut the code i saw and posted here didnt let me believe that these people are great software technicians :)21:54
sanxiynNow... program verification is the ultimate static typing, isn't it? Strange how I like it, while loving Python too.21:59
exarkunwhy is it the ultimate static typing?22:00
sanxiynexarkun: Static typing is supposed to help you catch bugs? :)22:00
sanxiynAnd verified program has no bugs.22:00
sanxiyn(By definition)22:00
exarkunheh :p22:00
exarkunmaybe program verification is the ultimate automated test, then22:00
xorAxAx"""Knuth once warned users of his software, "Beware of bugs in the above code; I have only proved it correct, not tried it.""""22:01
sanxiynxorAxAx: Yeah.22:01
xorAxAxhttp://dev.eclipse.org/viewcvs/index.cgi/org.aspectj/modules/weaver/src/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java?revision=1.1&root=Tools_Project22:02
sanxiynRecently, Xavier Leroy (OCaml BDFL) finished an interesting project, verified C to PowerPC compiler. (with caveats...)22:02
sanxiynhttp://compcert.inria.fr/22:02
sanxiyn(Parser is not verified.)22:02
sanxiynBut all optimization passes are.22:02
xorAxAxhmm, that class name is a bit longer than pypy's22:03
xorAxAxhmm, they generate LTL but check on another IR level22:04
sanxiynStatic typing can be considered a weak form of formal verification, where verifier (usually called compiler) automatically proves its program to be free of type error using hints provided by programmers.22:05
sanxiynOr using less hints or no hints by doing type inference. Whatever.22:05
sanxiynexarkun: By the way, recently I saw some blog posts from Divmod people? discussing ULS(Ultra Large Systems).22:09
exarkunyes22:09
exarkunuls is super fun22:09
sanxiynI am not sure why Richard Gabriel? dismisses possibility of using formal verification for such projects.22:10
sanxiynMathematics is ULS. Design of mathematics is beyond any human reach.22:10
sanxiynModern papares routinely call early 20th century papers, even 19th century papers.22:10
sanxiynEh, quote.22:10
sanxiynLegacy components. :)22:10
sanxiynFor a good example, consider the Classification. :)22:11
sanxiynIs it because math does not interact with real world? If then, I think math should be used for all non-IO parts of ULS, or something like that.22:12
stakkars (n=tismer@16.121.113.82.net.de.o2.com) joined #pypy.22:14
sanxiynRichard Gabriel's essay says: "This seems to be a weak retreat in the face of the overwhelming differences between the image of the clarity of mathematics and the messiness of the ULS system as analog to New York." I found it unfair.22:15
sanxiynMathematics is as messy as New York.22:15
sanxiynhttp://plus.maths.org/issue41/features/elwes/ has a good image agreeing with my image of mathematics.22:16
ronnymath is not messy, but stuff like sas or mathlab is22:16
sanxiynronny: Math is messy.22:17
sanxiynronny: Think of four color theorem or Kepler's conjecture. It's ad hoc hack-ridden program at its best.22:17
sanxiynConsisting of endless chains of if-then-else.22:18
mgod (n=mgod@fw.arb.zattoo.com) left irc: Read error: 110 (Connection timed out)22:18
sanxiynWikipedia: Appel and Haken's proof reduced the infinitude of possible map colorings to 1936 reducible configurations, which had to be checked one by one by computer. This reducibility part of the work was independently double checked with different programs and computers. However, the unavoidability part of the proof was over 500 pages of hand written counter-counter-examples, much of which was done by Haken's teenage son Lippold verifying grap22:20
sanxiynh colorings.22:20
sanxiynSeriously.22:20
sanxiynTeenage son. Heh.22:20
stakkarssanxiyn: Math is not messy. Whatever the context is, I reject this.22:32
sanxiynstakkars: Most first proof of theorems are complex, and then if theorem is important, its proof is simplified and made more elegant for pedagogical and aesthetic purposes.22:33
sanxiynstakkars: Then why is it wrong to criticise those "first proofs" to be messy?22:34
sanxiynAnd most mathematical theorems have only first proofs. Because they aren't considered important to put effort into writing better proofs.22:34
stakkarssanxiyn: it is not wrong to criticize those first proofs.22:35
ronnywell, nobody is gain if people just whine about complex profs, write simple ones if you care22:35
fijalstakkars: how's psyco work going? do you still work on it?22:35
stakkarssanxiyn: it is just wrong to accuse math for those idiots. Math is innocent.22:35
sanxiynHeh.22:35
ronnyits like whining about broken apis by bad programmers22:36
sanxiynThen math-as-in-development is messy. It is to be cleaned up, but work queue is indefinitely growing. :)22:36
ronnythe only way to fix it is to step in22:36
ronnywell, the best work ques are a never ending source of intresting problems22:36
stakkarsfijal: yeahh! Sorry to tell this. I have/am written/writing my own debugger, just for this sh**t.22:36
fijalwhat's superficial in it to say gdb?22:37
ronnybbl, i still need to fix some messy c++ and make simpleconfig mass-suitable22:38
stakkarssanxiyn: don't be mad with math. Be mad on your professors, this is probably more appropriate. But math is amoung the good forces.22:38
sanxiynHeh, I agree.22:38
stakkarssanxiyn: see? Math is love.22:38
fradiavalo (n=fradiava@outside30.mlp.com) left irc: "Leaving"22:39
sanxiynI welcome our mathematical overlords.22:39
stakkarssanxiyn: teach this to the advisors.22:39
stakkarssanxiyn: *THEY* are wrong.22:39
ronnymath is not love, havent you guys seen the xkcd about the usual approaches not working on it22:40
sanxiyn(Giving the context... in software systems, legacy components are trouble, but in math, legacy math may not be beautiful, but they are true, so it's no trouble)22:40
Action: idnar takes an definite integral out to dinner22:40
sanxiynI think that was the context22:40
gr00ber (i=50cab54c@gateway/web/ajax/mibbit.com/x-7f832c1350c03e29) left #pypy.22:40
sanxiynronny: http://xkcd.com/435/ ?22:41
sanxiynHm maybe not.22:41
stakkarsronny: my name is Eliza, please tell me your problem. :-)22:41
idnarhahaha22:42
fijalstakkars: ?22:42
stakkarsidnar: correct reaction22:42
fijalstakkars: why you're doing that? (writing a debugger)22:42
sanxiynI guess, to debug.22:43
ronnysanxiyn: http://xkcd.com/55/22:43
stakkarsfijal: because I was too dumb to use GDB's extensions (just learned that from M.v.Loewis)22:43
stakkarsI needed a debugger that understood my needs. Maybe I could reverse the problem. But this way, it worked 4 me.22:44
sanxiyn(I may be talking nonsense) Can Psyco emit debug symbols understood by standard debuggers?22:44
stakkarsI needed to do pattern matching on unexpected results. Mine can do that, in plain Python.22:45
sanxiynThat's great.22:46
stakkarssanxiyn: not natively, but now it can.22:46
sanxiyngdb's problem is that all great programs need great scripting, but gdb script is pathetic.22:46
sanxiynI do have bunch of gdb scripts though. It's better than nothing...22:46
djcstakkars: will Psyco work on amd64 soon? ;)22:46
stakkarsI did not bother. I just used what I understood.22:47
sanxiynI think someone is developing (this year) Python plugin for gdb.22:47
sanxiynWhere did I see it... (searching)22:47
stakkarsAnd that is the debughlp API, through C and MS crap.22:47
stakkarsdjc: it probably never will, unless you convince me to do the impossible (, again)22:48
djcstakkars: how much would I have to pay you? (this is a half-serious question)22:49
stakkars64 bit is not possible with psyco, unless you do an almost complete re-write22:49
djcI have some Python code at work that's quite small but does the same thing over and over again22:49
sanxiynYeah, it is this one.22:49
sanxiynhttp://sourceware.org/ml/gdb-patches/2008-04/msg00653.html22:49
sanxiyn[RFC][patch 0/9] Python support in GDB22:49
sanxiynIt is still being actively reviewed.22:49
fijaldjc: there is assumption that everything is into all over the place in psyco22:50
sanxiynSo I think we will be able to do complex stop condition matching with gdb+Python soon. I think I could use that sometimes...22:50
stakkarsdjc: I would of course do it, if you would take a vague estimate.22:50
djcstakkars: what do you mean by a vague estimate?22:51
stakkarsbetween 4 months and a full year, at $1000 per day. Then I would do it.22:51
djchmm22:51
stakkarsThe uncertaincy is even worse than my worse estimates.22:52
djcI wonder if I had that kind of money, if I should put it towards Psyco or PyPy-JIT stuff22:52
fijaldjc: if you don't that doesn't matter, right?22:52
stakkarsI would put it towards PyPy, in any case.22:52
stakkarsThe reason why I'm arguing is just the fat that I am meant to finish psyco, although I tried to talk this22:53
stakkarsout of them, after I realized the risk.22:53
stakkarswhich is huge, and stays huge.22:54
sanxiynBy the way... I am thinking of helping Debian PyPy packaging.22:54
stakkarsgood!22:54
fijalsanxiyn: I don't think there is a big usecase for that honestly22:54
sanxiynI saw that you advised Debian PyPy maintainer to enable tests in build daemon.22:54
sanxiynDo you review test failures from build?22:54
sanxiynfijal: Why?22:54
fijalbecause it's hard yo use pypy for anything22:55
fijalno, I didn't review anything22:55
sanxiynfijal: That is supposed to change by the end of the year, right? :)22:55
fijalso by the end of the year we can think about it22:56
fijalhum22:56
fijalI don't know, it might make some sense22:56
stakkarsdjc: I am anyway pretty close to the final solution, and looking forward to publish it, soon22:56
stakkarsg'nite22:57
sanxiynAnd about Debian matter... One Debian developer ported greenlet to MIPS. Perhaps no one is familiar with that, but can't PyPy just include this file?22:57
sanxiynhttp://bugs.debian.org/45952022:57
sanxiynHe assert that it passes all tests in py/c-extension/greenlet.22:58
fijalit has nothing to do with pypy I think22:58
sanxiynWhere should I bring this?22:58
fijalpy-dev mailing list22:59
sanxiynOk.22:59
stakkarssanxiyn: verdammter Mist, this looks pretty similar to my? code?23:00
sanxiynstakkars: ?23:00
sanxiynstakkars: I think all switch codes in greenlet is ultimately derivative of your stackless transfer code?23:01
stakkarswell, the greenlet code is based upon my Stackless code, which I recognize there...23:01
stakkarsyes, I was just stunned.23:01
stakkarsIt happens so often that I have to argue about stackless code, which is greenlet stuff, actually,23:02
stakkarsand I become jealous, because greenlets became more popular than they deserve, I think...23:03
fijalbecause people don't want different interpreter?23:03
Dekcarki (i=rico@port-ip-213-211-248-216.sta.reverse.mdcc-fun.de) left irc: "Verlassend"23:03
sanxiynfijal: I think that's irrational, but still human nature.23:04
stakkarsyes, in fact, that's the caveat. I should re-write the interpreter as an extension module - gaah!23:04
sanxiynFear of the unknown or something like that. Like any usual Python users understand CPython.23:05
stakkars (n=tismer@16.121.113.82.net.de.o2.com) left irc: 23:05
idnarit's not necessarily fear; it's easier to deploy a new extension module than a new interpreter23:05
sanxiynidnar: Yes, and I don't want that to happen with PyPy when it's ready, therefore some concern about deployment.23:06
sanxiynDebian is easy. You make a package, and packages are equal.23:06
fijalsanxiyn: yeah, but being irrational doesn't change a thing23:07
idnaris stackless in debian? ;)23:08
fijalyop23:08
fijalhum23:08
sanxiynfijal: I think no.23:08
idnarI don't see it23:08
idnaralthough I see pypy-stackless :P23:08
idnaranyhow, there is also mental inertia23:08
fijalindeed23:08
fijalthat's weird23:08
sanxiynDebian has jython and ironpython though.23:10
sanxiynDebian has python-support which does system-wide byte compilation on python module package installation. Ideally this should be integrated to other Python implementations too.23:11
sanxiynI tried (lightly) to get it working with IronPython's pre-compilation, and failed.23:11
idnarmost modules probably won't work with IronPython/jython, I expect23:13
sanxiynidnar: Surprisingly many do.23:13
sanxiynidnar: And Debian already has mechanism for module packages to specify interpreter compatibility.23:13
idnarwell, ok, I suppose there are a lot of relatively trivial modules23:13
sanxiynLike Python-Version: > 2.423:13
sanxiynSo once infrastructure is up, individual maintainer can test at lesure and add "jython x.y" to Python-Version list or so.23:14
sanxiynLike, currently Debian has both Python 2.4 and 2.5, so it needs mechanism to exclude byte-compilation for some modules which only work on 2.5.23:14
idnarit's a bit more complicated, though23:15
idnaryou'd need to build the package with jython/ironpython like is done for each python version23:16
idnarso now suddenly your build-depends pull in a JVM and Mono23:16
sanxiynidnar: Ah, Debian transitioned from previous pythonx.y-module scheme.23:16
idnarmight get a little ugly23:16
sanxiynidnar: There is no more separate packages for each Python versions. That's the whole point of python-support system.23:16
idnaryes23:17
sanxiynWell, for extension modules, still. :(23:17
idnarbut that's just a change in how the binary packages are build23:17
idnar*built23:17
idnaryou still have to run "python2.4 setup.py" "python2.5 setup.py" "python2.6 setup.py"23:17
idnarit's just that the results all go into the same package23:17
sanxiynidnar: Hm, no. There doesn't need to be build-dependency to JVM or Mono.23:17
idnarI suppose for pure-python packages, the modules are shared23:17
idnarso you don't build separately23:17
sanxiynYes.23:17
sanxiynAnd byte-compilation happen on installation time, only for installed Pythons.23:18
sanxiynTherefore, if you don't have Jython installed, Jython compilation won't happen.23:18
sanxiynAnd when the first time Jython is installed, all existing Jython-compatible modules will be compiled.23:18
idnarright23:18
sanxiynSo no build-depend to JVM for Python modules.23:18
sanxiynAssuming we get python-support infra right.23:19
sanxiynIt currently isn't. But it can be made so I think.23:19
jewel_ (n=jewel@dsl-242-165-12.telkomadsl.co.za) joined #pypy.23:21
sanxiynDebian has similar stuff for emacs (to handle GNU emacs and Xemacs byte compilation) and Common Lisp (from Clisp to SBCL).23:21
sanxiynIdeally, there would be one for Haskell, so no more 3 duplicated packages for all Haskell libraries...23:22
sanxiynAnd ML. Well it's all idle talk since I won't write haskell-support or ml-support anytime soon.23:22
sanxiynBut I intend to hack on python-support.23:22
stakkars (n=tismer@i577B7EBF.versanet.de) joined #pypy.23:26
idnarHaskell packages aren't built at install time, are they?23:26
sanxiynidnar: They aren't.23:27
sanxiynThey could though. Common Lisp does it.23:30
sanxiynhttp://packages.debian.org/sid/common-lisp-controller23:30
idnardoesn't seem like such a great idea23:30
idnarcompiling Haskell code can take quite a while23:30
sanxiynSame for Common Lisp.23:31
sanxiynThe point is to avoid creating say, 6 packages for every Lisp libraries.23:31
idnartaking five minutes to install a Haskell package wouldn't be that fun, though23:31
stakkarssanxiyn: yes, I see!23:32
sanxiynstakkars: ?23:32
sanxiynDebian has ecl, gcl, cmucl, sbcl, clisp, mcl, with incompatible binary formats. So currently single source-shipping package cl-ppcre (regular expression library) would become 6 packages without common-lisp-controller, etc.23:33
stakkarsconfusion about stackless, it was in-appropriate23:33
stakkarssanxiyn: and I am behind myself!23:34
sanxiynstakkars: I am not sure I understand...23:34
stakkarssanxiyn: I am sure you understand.23:34
sanxiynHm... backtracking... I said fear of stackless is in part irrational, idnar raised deployment problems, I said something about packages and especially install-time compilation manager like python-support...23:36
stakkars?23:36
sanxiyn?23:37
stakkarsok, we agree to mis-understand. nice, too, right?23:37
sanxiynOk.23:37
stakkarsjust forget it, and be open for fun.23:38
sanxiyn:)23:38
stakkarsI have a relaxed night, did not do anything but quibbling, and that*s all that I expect from anybody.23:39
stakkarsI am as average as anybody else, please allow me to bee like this, tonite.23:40
sanxiynI enjoys talk like this very much. I also realizes talk is cheap.23:40
sanxiynThank you for interesting talk! Bye!23:40
stakkarsgeez.23:40
sanxiynstakkars: And I will rembmer that math is love :)23:41
sanxiyn (n=tinuviel@sublibdhcp15.kaist.ac.kr) left irc: "Ex-Chat"23:41
stakkarsit is!23:41
Action: stakkars is unaware of people taking him on his words.23:42
idnar<3 math23:42
stakkars3 is?23:43
exarkunstakkars: turn your head clockwise 90 degrees23:43
exarkunand then use your imagination a little23:44
exarkun(ok a lot)23:44
stakkars(crack!) this hurts!23:44
stakkarsok, got it I think23:44
--- Sat Jun 28 200800:00

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