[00:22] hpk_ (~holger_kr@mail.trillke.de) joined #pypy.
----- silence for 1 hr and 45 minutes ----- [02:07] rhaymar (~Rhaymar@200.121.227.100) joined #pypy.
[02:07] <rhaymar> hola
[02:08] pedronis (~Samuele_P@c-1b8b70d5.022-54-67626719.cust.bredbandsbolaget.se) left irc: "Chatzilla 0.9.67 [Firefox 1.0.2/20050317]"
[02:14] rhaymar (~Rhaymar@200.121.227.100) left irc:
[02:26] hpk_ (~holger_kr@mail.trillke.de) left irc: Read error: 113 (No route to host)
----- silence for 4 hr and 43 minutes ----- [07:09] dialtone (~dialtone@host111-56.pool80117.interbusiness.it) left irc: "This computer has gone to sleep"
[07:14] idnar (mithrandi@idnar.user) left irc: Connection timed out
----- silence for 56 minutes ----- [08:10] -lilo (lilo@levin-pdpc.staff.freenode) to $*- [Global Notice] Hi all. We're experiencing lag in Europe and will need to rehub. Mention this as needed to EU users as they come back.
[08:11] tic (~vision@c-ba6e73d5.019-35-67626717.cust.bredbandsbolaget.se) got netsplit.
[08:11] thingie24 (~rmt38@valhalla.ccp.cc) got netsplit.
[08:11] etrepum (bob@ayunami.redivi.com) got netsplit.
[08:11] tic (~vision@c-ba6e73d5.019-35-67626717.cust.bredbandsbolaget.se) returned to #pypy.
[08:11] thingie24 (~rmt38@valhalla.ccp.cc) returned to #pypy.
[08:11] etrepum (bob@ayunami.redivi.com) returned to #pypy.
[08:20] thingie24 (~rmt38@valhalla.ccp.cc) got netsplit.
[08:20] etrepum (bob@ayunami.redivi.com) got netsplit.
[08:20] tic (~vision@c-ba6e73d5.019-35-67626717.cust.bredbandsbolaget.se) got netsplit.
[08:20] hpk (~hpk@merlinux.de) got netsplit.
[08:20] Me2 (~Me@cm218-253-45-243.hkcable.com.hk) got netsplit.
[08:20] jacob22|office (jacob@enzo.strakt.com) got netsplit.
[08:20] mwh (~user@pc150.maths.bris.ac.uk) got netsplit.
[08:20] jacob22|office (jacob@enzo.strakt.com) returned to #pypy.
[08:20] Me2 (~Me@cm218-253-45-243.hkcable.com.hk) returned to #pypy.
[08:20] mwh (~user@pc150.maths.bris.ac.uk) returned to #pypy.
[08:20] hpk (~hpk@merlinux.de) returned to #pypy.
[08:20] tic (~vision@c-ba6e73d5.019-35-67626717.cust.bredbandsbolaget.se) returned to #pypy.
[08:20] thingie24 (~rmt38@valhalla.ccp.cc) returned to #pypy.
[08:20] etrepum (bob@ayunami.redivi.com) returned to #pypy.
[08:20] hpk (~hpk@merlinux.de) got netsplit.
[08:20] Me2 (~Me@cm218-253-45-243.hkcable.com.hk) got netsplit.
[08:20] mwh (~user@pc150.maths.bris.ac.uk) got netsplit.
[08:20] jacob22|office (jacob@enzo.strakt.com) got netsplit.
[08:20] thingie24 (~rmt38@valhalla.ccp.cc) got netsplit.
[08:20] etrepum (bob@ayunami.redivi.com) got netsplit.
[08:20] tic (~vision@c-ba6e73d5.019-35-67626717.cust.bredbandsbolaget.se) got netsplit.
[08:21] pyb0t (pybot@nimrod.terra-link.net) left #pypy.
[08:21] pyb0t joined #pypy.
[08:21] #pypy: mode change '+n ' by tolkien.freenode.net
[08:24] -:#pypy- *** Notice -- TS for #pypy changed from 1113891747 to 1076841723
[08:24] jacob22|office (jacob@enzo.strakt.com) joined #pypy.
[08:24] Me2 (~Me@cm218-253-45-243.hkcable.com.hk) joined #pypy.
[08:24] mwh (~user@pc150.maths.bris.ac.uk) joined #pypy.
[08:24] hpk (~hpk@merlinux.de) joined #pypy.
[08:24] tic (~vision@c-ba6e73d5.019-35-67626717.cust.bredbandsbolaget.se) joined #pypy.
[08:24] thingie24 (~rmt38@valhalla.ccp.cc) joined #pypy.
[08:24] etrepum (bob@ayunami.redivi.com) joined #pypy.
[08:24] Topic changed on #pypy by !irc.freenode.net: PyPy, Python in Python -- http://codespeak.net/pypy/ -- chanlog available via http://nimrod.terra-link.net/pypy/
[08:30] -lilo (lilo@levin-pdpc.staff.freenode) to $*- [Global Notice] Hi all. Recapping, we experienced European hubbing problems a few minutes ago, and we've reconfigured our hubbing to resolve the issue. Thanks for your patience and understanding, and thank you for using freenode!
[08:40] Arafat (~bear@B74a4.b.pppool.de) joined #pypy.
----- silence for 29 minutes ----- [09:09] Nick change: Arafat -> Gromit_
[09:11] Nick change: Gromit_ -> Gromit
----- silence for 34 minutes ----- [09:45] hpk_ (~holger_kr@mail.trillke.de) joined #pypy.
[09:57] idnar (mithy@idnar.user) joined #pypy.
[10:10] ludal (~ludal@logilab.net2.nerim.net) joined #pypy.
[10:16] hpk_ (~holger_kr@mail.trillke.de) left irc: Read error: 113 (No route to host)
----- silence for 27 minutes ----- [10:43] Gromit (~bear@B74a4.b.pppool.de) left irc: "Client Exiting"
----- silence for 40 minutes ----- [11:23] }A\\}x[|z (~KIJCxL@dsl-202-173-158-230.vic.westnet.com.au) joined #pypy.
[11:23] }A\\}x[|z (KIJCxL@dsl-202-173-158-230.vic.westnet.com.au) left #pypy.
[11:25] [}A\\}x[|z!KIJCxL@dsl-202-173-158-230.vic.westnet.com.au] Come watch me on my webcam and chat /w me :-) http://dsl-202-173-158-230.vic.westnet.com.au:4396/me.mpg
----- silence for 2 hr and 25 minutes ----- [13:50] Gromit (~bear@B74da.b.pppool.de) joined #pypy.
----- silence for 1 hr and 9 minutes ----- [14:59] pedronis (pedronis@ratthing-b246.strakt.com) joined #pypy.
----- silence for 1 hr ----- [15:59] Gromit (~bear@B74da.b.pppool.de) left irc: Read error: 104 (Connection reset by peer)
[16:00] Gromit (~bear@A368c.a.pppool.de) joined #pypy.
----- silence for 38 minutes ----- [16:38] _hannes (sgylkd@i528C12F6.versanet.de) joined #pypy.
[16:53] Gromit (~bear@A368c.a.pppool.de) left irc: "Client Exiting"
[17:03] idnar (mithy@idnar.user) left irc: "kbye"
[17:04] jriehl (~jriehl@sidewinder.cs.uchicago.edu) joined #pypy.
----- silence for 17 minutes ----- [17:21] dialtone (~dialtone@host111-56.pool80117.interbusiness.it) joined #pypy.
----- silence for 50 minutes ----- [18:11] mwh2 (~user@modem-219.erendis.dialup.pol.co.uk) joined #pypy.
----- silence for 20 minutes ----- [18:31] arigo (~arigo@vicky.ecs.soton.ac.uk) joined #pypy.
[18:31] <hpk> arigo: hey armin, arrived well?
[18:31] <arigo> hi! yes thanks!
[18:31] ludal (~ludal@logilab.net2.nerim.net) left irc: "Download Gaim: http://gaim.sourceforge.net/"
[18:32] <hpk> great
[18:32] <hpk> i am minimizing the execnet API after your yesterday's comments :-)
[18:32] <arigo> :-)
[18:33] <hpk> and getting rid of magic numbers
[18:33] <hpk> which proves to be the harder bit
[18:33] <arigo> I see
[18:45] Action: arigo looking up London -> Gothenburg flights
[18:45] <mwh2> arigo: london?
[18:45] <arigo> prices make no sense. £460 for one-way and £148 for returns
[18:46] <mwh2> ryanair fly from stansted
[18:46] <arigo> mwh2: Heathrow yes
[18:46] <mwh2> arigo: don't do that
[18:46] <mwh2> if you can help it
[18:46] <mwh2> hang on
[18:46] <mwh2> 148 for return isn't too bad
[18:46] <arigo> yes, it's ok, but I'm not sure I need the return at all
[18:47] <mwh2> i see
[18:47] <arigo> there are two advantages to Heathrow over Stansted
[18:47] <arigo> it's much closer (1h30 instead of 3-4h bus)
[18:47] <arigo> and Jacob and Laura fly back from there
[18:47] <arigo> and I'll have more than 20kg of luggage on my own
[18:56] <arigo> woha
[18:56] <arigo> Carl has run quite a number of CPython's tests successfully
[18:56] <arigo> including test_fpformat, which is what got me the "woha"
[18:57] <arigo> it would be interesting to know tests that have been tried *un*successfully
[18:57] <mwh2> test_fpformat must suck :)
[18:58] <mwh2> certainly, the rounding isn't perfectly correct in pypy
[18:58] <arigo> hum.
[18:58] <arigo> I see
[19:01] idnar (mithrandi@idnar.user) joined #pypy.
[19:01] <arigo> pedronis: builtin_isinstance() has got a problem now
[19:03] <pedronis> possible
[19:03] mwh2 (~user@modem-219.erendis.dialup.pol.co.uk) left irc: "byeee"
[19:03] <arigo> if type(s_obj) is not SomeObject:
[19:03] <arigo> r.const = False
[19:03] <arigo> could break the assert in AnnRPython.setbinding()
[19:04] <arigo> it's not "monotonic"
[19:06] <pedronis> I see
[19:06] <arigo> er...
[19:06] <arigo> no, I'm just confused, no?
[19:07] <pedronis> it is false until SomeObject then it because SomeBool
[19:07] <pedronis> but I admit not having thought about it much
[19:07] <arigo> right, so it's valid
[19:08] <arigo> we might find a way to have a test for this
[19:08] <pedronis> anyway translate_pypy.py is doing quite better
[19:09] <arigo> nice
[19:09] <pedronis> although finding the mixing of OperationErrors and W_Root was fun
[19:10] <arigo> I guess so
[19:10] <pedronis> I still have 3 blocked blocks which are essentially spurious but I don't know exactly what to do with them
[19:10] <arigo> where?
[19:10] <pedronis> it's the wrapping code for multimethods
[19:10] <pedronis> you have
[19:11] <pedronis> r = f()
[19:11] <pedronis> if r is None:
[19:11] <pedronis> ...
[19:11] <pedronis> return r
[19:11] <pedronis> and we have 3 cases where f is just known to always raise an exception
[19:11] <pedronis> so we have an impossible value and we are blocked
[19:11] <pedronis> on the is
[19:12] <arigo> ah ha
[19:13] <arigo> time to get rid of the hack in
[19:13] <arigo> objspace.flow.model.FunctionGraph.hasonlyexceptionreturns()
[19:14] <arigo> I mean, get rid of this function altogether
[19:16] <pedronis> yes we are down to 3 blocked blocks and 77 warnings ( a lot are repeations and related to cheating stuff)
[19:16] <arigo> any serious warning?
[19:18] <pedronis> we have some methods that get attached to a too high superclass
[19:18] <pedronis> some are because we are missing some needed typechecking
[19:18] <arigo> I fixed one such case with Cell.get()
[19:19] <pedronis> others are about the mixing up with the frame classes and the dispatch table
[19:19] <pedronis> others are method that have no clear class for them for example user_setup for User_ classes
[19:20] <pedronis> and the we have cannot follow whatever but all those seem related to faking
[19:20] <arigo> veeeery nice
[19:21] <arigo> damn, now I'm feeling like genllvm will be ready for this before genc :-)
[19:22] <pedronis> the only things that degenerate to SomeObject are unwrap, .longval, string_to_long which are expected
[19:26] Gromit (~bear@B7482.b.pppool.de) joined #pypy.
[19:41] <arigo> hpk: strange weather
[19:41] <arigo> in Southampton it's much further springtime than in Hildesheim, everything's green
[19:41] <arigo> but I hear that in Switzerland it snowed really a lot
[19:53] <arigo> pedronis: in annrpython.recursivecall()
[19:53] <arigo> wouldn't it make sense to always return benign impossible values for functions that don't return as far as we know?
[19:54] <pedronis> but that will not solve the problem
[19:54] <pedronis> benign impossible values can go through returns
[19:54] <pedronis> but what to do when an op is requested is an open question
[19:55] <arigo> ah, I see
[19:55] <arigo> the question is what we would like the code generator to do with that
[19:55] <arigo> you know that transform.py cuts dead branches
[19:55] <pedronis> well, the code generator in this case can happily ignore the blocked block
[19:56] <arigo> but in some case, you have both the call and the next operation in the same block
[19:56] <arigo> transform.py should somehow cut the non-annotated end of the block, maybe
[19:56] <pedronis> yes that could happen
[19:56] <pedronis> but the fact is that sometimes blocked blocks are a genuine problem
[19:57] <arigo> yes, I was wondering if it would mask problem to accept blocked blocks that are blocked on a recursivecall()
[19:58] <arigo> but continue to report other blocked blocks as problems.
[19:59] <arigo> in fact, consider_op() is quite hackish now
[19:59] <pedronis> yes
[19:59] <arigo> a simple_call() that returns SomeImpossibleValue, even benign, should stop the inference
[20:00] <pedronis> well, if accept blocked blocks on recursivecalls
[20:00] <arigo> actually, we could replace the "benign" flag with raising an exception directly in recursivecall()
[20:00] <pedronis> under the assumption that if there's a problem there will be a blocked in the original function
[20:01] <arigo> ah, I see the point -- the goal of benign is really only to avoid having a BlockedInference in the caller, but that's a bit wrong, because inference should really stop in the caller somehow
[20:02] <pedronis> the problem is that having functions that always raise an exception is an ok idiom
[20:02] <arigo> yes
[20:02] <pedronis> but it can result in blocked blocks
[20:02] <arigo> so the idea is not to raise BlockedInference but another exception in this case,
[20:02] <arigo> like CanOnlyRaiseException
[20:02] <arigo> which behaves like BlockedInference but isn't an error
[20:03] <pedronis> that's ok but then you want the caller to raise the same exception
[20:03] <pedronis> you can have a chain that ends up calling such a function
[20:04] <pedronis> in fact our multimethod code has such chains
[20:04] <arigo> that would work "out of the box" with CanOnlyRaiseException, I think
[20:04] <arigo> a caller f() wouldn't reach a 'return' statement either, so recursivecalls() from some other e() to f() would also raise CanOnlyRaiseException
[20:05] <arigo> basically, consider that call functions can only raise exceptions until proven otherwise
[20:05] <arigo> s/call/all
[20:06] <pedronis> I see, that means that blocking will not propagate as it does now
[20:06] <arigo> yes
[20:07] <arigo> I'm not sure if this scheme would mask real problems or not
[20:07] <pedronis> that's the question indeed
[20:07] Gromit (~bear@B7482.b.pppool.de) left irc: Read error: 60 (Operation timed out)
[20:09] <arigo> def hole(*args) in ann_override.py currently returns a benign impossible value,
[20:09] <arigo> I guess the equivalent effect would be to just raise CanOnlyRaiseException
[20:10] <pedronis> no
[20:10] <pedronis> it should return something
[20:10] <pedronis> it for cases like this
[20:10] <pedronis> hole()
[20:10] <pedronis> f()
[20:10] <pedronis> g()
[20:10] <pedronis> you would block on hole and never go further
[20:11] <pedronis> it works now with benign impossible
[20:11] <arigo> ah, oups. It's for cases where the hole() call should basically be ignored
[20:11] <pedronis> yes
[20:11] <pedronis> it works because the result is not used
[20:11] <arigo> and you want to check that the result is not used
[20:11] <pedronis> and benign impossible if not used
[20:11] <pedronis> doesn't block
[20:12] <arigo> then hole() should return a real None, like the operations like setattr or setitem...
[20:12] <pedronis> yes, that's a possibility too
[20:13] <pedronis> but it should not block
[20:13] <arigo> yes, returning a real None has basically the behavior that you describe: makes the result SomeImpossibleValue without blocking
[20:16] Gromit (~bear@port1109.fra.ginko.net) joined #pypy.
[20:19] <pedronis> for the change: we would need a sublcass of BlockedInference
[20:20] <pedronis> change recursivecall code to throw it on a KeyError
[20:20] <pedronis> and skip this cases when reporting blocked blocks
[20:20] <arigo> yes
[20:20] <arigo> I'm not clear about the "subclass" bit
[20:21] <arigo> is BlockedInference a particular case of the general CanOnlyRaiseException, or the other way around?
[20:22] <arigo> actually it's a different exception, I think
[20:22] <arigo> because processblock() must not reset self.annotated[block] to False
[20:24] Action: arigo trying it...
[20:28] <arigo> grumble
[20:29] <arigo> it basically seems to work, but transform.py cuts the single exit after a block stopped by CanOnlyRaiseException
[20:29] <arigo> so now it looks like a return block
[20:29] <arigo> as it isn't really one, checkgraph() complains
[20:30] <arigo> how should we "cut off" the end of such blocked blocks?
[20:31] <pedronis> I see, well it's also the problem that we don't mark return and exception blocks more explicitly
[20:32] <arigo> yes, partially; it's also that it would be fine if such "cut blocks" didn't require special support from code gens
[20:33] <arigo> in my working copy, a blocked v5=simple_call(...) has v5 not annotated at all
[20:33] <pedronis> but is exception handling generated
[20:34] <pedronis> for the call
[20:34] <arigo> if Christian was here he's say that we just turn it into an explicit tail call :-)
[20:34] <arigo> exception handling has been removed "long ago" by the t.simplify()
[20:35] <pedronis> yes, sorry
[20:36] <arigo> but we can maybe add manually the equivalent of "raise AssertionError, 'shouldn't be here'"
[20:36] <pedronis> yes
[20:37] <arigo> and v5 (the return value) gets a SomeNone()?
[20:37] <arigo> just to be nice with codegens?
[20:37] <pedronis> yes
[20:43] cfbolz (~cfbolz@hdlb-3e342057.pool.mediaWays.net) joined #pypy.
[20:43] <cfbolz> hi!
[20:43] <arigo> hi!
[20:44] <cfbolz> arigo: I just read the backlogs. I ran almost all UnitTests, so the rest is failing for me.
[20:44] <arigo> oh
[20:45] <arigo> that's quite a lot then :-(
[20:45] <cfbolz> Yes, but some of them for obvious reasons.
[20:45] <arigo> ok
[20:45] <cfbolz> I did not investigate further, just checked whether they succeed immediately
[20:46] <cfbolz> and I'm not really surprised, that test_winsound fails for me :-).
[20:46] <arigo> I see :-)
[20:46] <cfbolz> Maybe we should collect information about CPython's tests somewhere
[20:48] <arigo> this testmap was supposed to be it, but it's limited
[20:49] <cfbolz> yes
[20:49] <cfbolz> Just saying 'it works' or 'it doesn't' is not really enough
[20:50] <cfbolz> I looked into test_itertools which fails due to the fact that it checks whether izip reuses tuples that are not referenced.
[20:50] <cfbolz> I guess this is an implementation detail
[20:51] <arigo> sure enough
[20:51] <arigo> actually we have our own test_itertools in lib/test2/
[20:51] <arigo> which removes this check
[20:52] <hpk> i doubt you can run at that at the moment, btw
[20:52] <cfbolz> ouch
[20:52] <arigo> there are a few "fixed" tests in there, not a whole lot.
[20:52] <cfbolz> why?
[20:52] <hpk> i guess it would be nice to be able to flag that particular test from conftest and not have to create a duplicate
[20:54] <cfbolz> Yes.
[20:54] <cfbolz> test_bool would work, too, except for the infinite recursion.
[20:56] <cfbolz> Ok. I'm going again. See you.
[21:00] <arigo> see you!
[21:00] <cfbolz> bye
[21:00] cfbolz (~cfbolz@hdlb-3e342057.pool.mediaWays.net) left irc: "Verlassend"
[21:01] Action: arigo is banging its head on the walls to get the 'cut blocks' right
[21:01] <arigo> s/its/his, I guess
[21:02] <arigo> do we care about the annotation of the exceptblock's input arguments?
[21:03] <arigo> it's never really complete anyway, because simple_call() can raise just any exception
[21:04] <arigo> mess mess mess
[21:05] <pedronis> yes, exception handling code can end up always containg some SomeObject
[21:05] <arigo> I'm just asking about the final arguments
[21:05] <arigo> they are meaningless anyway
[21:05] <arigo> because a simple_call() without an exception handler is invisible to the annotator
[21:08] <arigo> I guess at some point we will need to refactor the return/except block model
[21:08] <arigo> I think that having "return links" and "exception links" instead would be saner
[21:09] <arigo> and also a "start link", so that the function's argument are represented differently than the arguments of the first input block
[21:16] <arigo> the CanOnlyRaise idea may or may not work out
[21:16] <arigo> it doesn't pass your tests
[21:16] <arigo> but I really need to leave now
[21:17] <arigo> should I svn cp it to a branch?
[21:17] <pedronis> if you want, I may look at it
[21:17] <arigo> ok
[21:17] <pedronis> right now I'm trying to get rid of warnings about user_setup
[21:18] <arigo> ok
[21:19] <arigo> it's called canonlyraise-pypy
[21:19] arigo (~arigo@vicky.ecs.soton.ac.uk) left irc: ""happy hacking :-)""
[21:23] Gromit (~bear@port1109.fra.ginko.net) left irc: Read error: 113 (No route to host)
[21:24] Gromit (~bear@A36b1.a.pppool.de) joined #pypy.
----- silence for 49 minutes ----- [22:13] pedronis (pedronis@ratthing-b246.strakt.com) left irc: "Chatzilla 0.9.67 [Firefox 1.0.2/20050325]"
----- silence for 53 minutes ----- [23:06] Gromit (~bear@A36b1.a.pppool.de) left irc: "schnarch, rotz, hust"
[23:07] idnar (mithrandi@idnar.user) left irc: Read error: 60 (Operation timed out)
[23:09] idnar (mithrandi@idnar.user) joined #pypy.
[23:24] hpk_ (~holger_kr@mail.trillke.de) joined #pypy.
[00:00] --- Wed Apr 20 2005