[00:35] pyb0t joined #pypy.
[00:41] stakkars (xwpkxd@i528C131C.versanet.de) joined #pypy.
[00:41] <stakkars> hey!
[00:42] <stakkars> it is just fine :-)
[00:43] <stakkars> I'm anyway checking in my code, because it is a single line, pluf five lines plus of comments, which is worth it.
[00:44] _hannes (pxqgza@i528C131C.versanet.de) left irc: "utz utz utz"
[00:45] <stakkars> We should note in the source, that the reason for this mess was a parser error in tcc,
[00:45] <stakkars> and that we should generate unique names, anyway.So I'm checking this simple thing in!
----- silence for 2 hr and 44 minutes ----- [03:29] stakkars (xwpkxd@i528C131C.versanet.de) left irc: Read error: 104 (Connection reset by peer)
[03:30] fredrik (fredrik@c83-248-135-181.bredband.comhem.se) left irc: "http://fredrikj.net"
----- silence for 4 hr and 21 minutes ----- [07:51] Gromit (~bear@A36cc.a.pppool.de) joined #pypy.
----- silence for 32 minutes ----- [08:23] Arafat (~bear@B74a0.b.pppool.de) joined #pypy.
----- silence for 23 minutes ----- [08:46] Gromit (~bear@A36cc.a.pppool.de) left irc: Read error: 110 (Connection timed out)
[08:48] Nick change: Arafat -> Gromit
----- silence for 43 minutes ----- [09:31] dialtone (~dialtone@host111-56.pool80117.interbusiness.it) left irc: "This computer has gone to sleep"
----- silence for 20 minutes ----- [09:51] arigo (~arigo@134.99.112.244) joined #pypy.
----- silence for 1 hr and 1 minute ----- [10:52] ludal (~ludal@logilab.net2.nerim.net) joined #pypy.
[10:54] ludal (~ludal@logilab.net2.nerim.net) left irc: Remote closed the connection
[10:55] ludal (~ludal@logilab.net2.nerim.net) joined #pypy.
[10:56] ludal (~ludal@logilab.net2.nerim.net) left irc: Remote closed the connection
[10:57] ludal (~ludal@logilab.net2.nerim.net) joined #pypy.
----- silence for 1 hr and 7 minutes ----- [12:04] cfbolz (~bolz@zenon.physi.uni-heidelberg.de) joined #pypy.
[12:07] arigo (~arigo@134.99.112.244) left irc: "[x]chat"
[12:22] Arafat (~bear@A369e.a.pppool.de) joined #pypy.
[12:23] dialtone (~dialtone@host158-206.pool8252.interbusiness.it) joined #pypy.
[12:27] Gromit (~bear@B74a0.b.pppool.de) left irc: Read error: 110 (Connection timed out)
[12:32] dialtone (~dialtone@host158-206.pool8252.interbusiness.it) left irc: "This computer has gone to sleep"
[12:40] arigo (~arigo@134.99.112.244) joined #pypy.
[12:53] Nick change: Arafat -> Gromit
[12:54] arigo (~arigo@134.99.112.244) left irc: "[x]chat"
[12:58] _hannes (~yuuhu@i528C13A0.versanet.de) joined #pypy.
[13:06] Gromit (~bear@A369e.a.pppool.de) left irc: Read error: 54 (Connection reset by peer)
[13:15] Gromit (~bear@A36a2.a.pppool.de) joined #pypy.
[13:25] dialtone (~dialtone@host158-206.pool8252.interbusiness.it) joined #pypy.
[13:33] dialtone (~dialtone@host158-206.pool8252.interbusiness.it) left irc: "This computer has gone to sleep"
----- silence for 57 minutes ----- [14:30] gfunch (~chatzilla@breisfel-01.cvmbs.colostate.edu) joined #pypy.
[14:31] _hannes (~yuuhu@i528C13A0.versanet.de) left irc: "utz utz utz"
[14:38] gfunch (chatzilla@breisfel-01.cvmbs.colostate.edu) left #pypy.
----- silence for 32 minutes ----- [15:10] pedronis (pedronis@ratthing-b246.strakt.com) joined #pypy.
[15:11] <cfbolz> hi!
[15:20] cfbolz (~bolz@zenon.physi.uni-heidelberg.de) left irc: "Leaving"
[15:29] dialtone (~dialtone@host187-0.pool21345.interbusiness.it) joined #pypy.
[15:34] dialtone (~dialtone@host187-0.pool21345.interbusiness.it) left irc: "This computer has gone to sleep"
----- silence for 50 minutes ----- [16:24] Gromit (~bear@A36a2.a.pppool.de) left irc: Read error: 104 (Connection reset by peer)
[16:24] Arafat (~bear@port1355.fra.ginko.net) joined #pypy.
[16:27] dialtone (~dialtone@host187-0.pool21345.interbusiness.it) joined #pypy.
[16:28] Nick change: Arafat -> Gromit
[16:40] arigo (~arigo@134.99.18.225) joined #pypy.
[16:47] <hpk> arigo: hey armin, preparing your talk last-minute? :-)
[16:47] <arigo> hi!
[16:48] <hpk> or was it already?
[16:48] <arigo> it was already at 1 o'clock
[16:48] <hpk> ah ok, did it go well? tell a bit!
[16:48] <hpk> (although beware google which might find the locks, so don't drop names :-)
[16:48] <arigo> well, it was originally meant just as a status update for my prof and my colleague
[16:49] <arigo> wasn't too suited to people who didn't know about Python in the first place
[16:49] <arigo> but they still got the point, I think
[16:50] <arigo> interesting to them is the fact that we have basically the first good program verification suite
[16:50] <arigo> or could have, with a bit more efforts.
[16:50] <hpk> yes
[16:51] <hpk> we should discuss the april release target soon
[16:51] <arigo> yes
[16:53] <hpk> maybe we two can work a bit on the "releasescheme.txt" both for the py lib and for pypy over the weekend
[16:53] <hpk> it'S somewhat easier sprinting on it than discussing it via IRC or email
[16:53] <hpk> how many people were there?
[16:53] <arigo> yes
[16:54] <arigo> a roomful, ~20
[16:54] <hpk> hey great!
[16:54] <hpk> that shows a lot of interest from what i remember from our universities meetings
[16:54] <arigo> I guess it's a local habit, I'd say the whole departement usually turns up at the seminars.
[16:55] <arigo> though I haven't seen any other seminar so far.
[16:55] Arafat (~bear@A368c.a.pppool.de) joined #pypy.
[16:55] Nick change: Arafat -> Gromit_
[16:55] Gromit (~bear@port1355.fra.ginko.net) left irc: Nick collision from services.
[16:55] Nick change: Gromit_ -> Gromit
[16:56] <hpk> arigo: ok, but i guess it was a good "einstand" (getting started/introduction) for you
[16:57] <arigo> i guess so.
[16:57] <hpk> arigo: sidenote, i am going to add a new namespace 'py.thread' with WorkerPool/ThreadOut classes in it
[16:57] <hpk> now is the time to object :-)
[16:58] <arigo> 'py.thread'... hum
[17:00] <hpk> do you have a better suggestion or do you doubt this should be exposed at all?
[17:01] <arigo> I'm a bit afraid that whenever you need threads, you need them in a slightly different way
[17:01] <arigo> so I don't know how useful it is to expose them at all, at this point
[17:02] <arigo> but I may be the wrong person to ask -- I never use 'threading' but always the low-level 'thread' mecanism
[17:05] <hpk> i find it useful to have well tested utilities for threading available
[17:05] <arigo> makes sense, then I'm just the wrong person to ask :-)
[17:05] <hpk> ok
[17:05] <pedronis> hpk: java has recently grown a good set of utilities for threading
[17:06] <hpk> interesting, do you have a direct pointer into the API?
[17:06] <pedronis> they are javaish of course but there's agreement that they are
[17:06] <pedronis> well designed
[17:06] <pedronis> java is very much into thread
[17:06] <pedronis> and the author is a respected expert in threading and memory models under threading etc
[17:07] <hpk> i don'T want to get down at memory models with py.thread so far :-)
[17:07] <hpk> but anyway, i am interested in more details
[17:07] <arigo> hpk: we should remove extractdict from the py lib, btw, it was just useless
[17:08] <hpk> arigo: ok, go ahead if you like
[17:08] <pedronis> hpk: http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html
[17:08] <hpk> thanks
[17:08] <hpk> this all begins to look like c++ :-)
[17:09] <pedronis> yes, generics are that way ;)
[17:09] <pedronis> I'm very unconviced that they were a worthy addition
[17:10] <pedronis> they also make an even less suited language for teaching I think
[17:10] <pedronis> s/make/make java
[17:10] <hpk> this looks even more ugly than decorators ...
[17:10] <pedronis> well, for python you can forget about all the <...> stuff
[17:10] <pedronis> :)
[17:11] <pedronis> author's homepage is here: http://g.oswego.edu/
[17:11] <hpk> well, html/xml makes at least some sense with respect to <> :-)
[17:12] <pedronis> http://gee.cs.oswego.edu/dl/concurrency-interest/index.html should have more links about the API
[17:13] <pedronis> hpk: orthogonally to the generics, is really judged a good set of utilities, it is worth a cursory look
[17:14] <pedronis> arigo: as you know I'm working on targetpypy annotation
[17:15] <pedronis> I'm wondering what to do about tool.uid.fixid
[17:16] Gromit (~bear@A368c.a.pppool.de) left irc: Read error: 110 (Connection timed out)
[17:16] <arigo> hpk: checked in successfully, but now Could not open the requested SVN filesystem
[17:17] <arigo> pedronis: special-case it to return r_uint, probably?
[17:17] <hpk> hum, fixed now,
[17:17] <pedronis> arigo: well for that we could use r_uint instead directly
[17:17] <arigo> of course there is the question of how to handle machines where sizeof(void*) > sizeof(long)
[17:17] <pedronis> arigo: yes, that's my question
[17:18] Gromit (~bear@B7498.b.pppool.de) joined #pypy.
[17:18] <arigo> hpk: a py lib test is failing because the tool/ directory isn't a package (missing __init__.py)
[17:18] <pedronis> arigo: do we bother introducing r_huint
[17:18] <pedronis> h stands for huge
[17:18] <arigo> huge unsigned int? :-)
[17:18] <pedronis> it would us a mask as such calculated for fixid
[17:18] <pedronis> s/us/use
[17:19] <arigo> space.wrap(r_huint(x)) would return a long object?
[17:20] <pedronis> probably, but the question is whether to bother now or later
[17:21] <arigo> XXX later, I guess
[17:21] <pedronis> ok
[17:21] <pedronis> I will substitute the one use of fixid with r_uint and XXX appropriately
[17:24] <arigo> hum, it's at a place doing a %x string formatting at interp-level
[17:24] <arigo> it raises the question of how much of string formatting we'll support ultimately
[17:25] <pedronis> yes
[17:25] <pedronis> well I found also a place where we do "...".split at interp level
[17:26] <arigo> hum
[17:27] <arigo> is that in import logic, by any change ?
[17:27] <pedronis> maybe there's one there too, but no this one was in stringobject itself
[17:27] <arigo> argh.
[17:27] <pedronis> and I left it for now
[17:28] <pedronis> because I'm chasing SomeObjects at the moment
[17:28] <arigo> :-)
[17:29] <pedronis> well, translate_pypy.py targetpypy annotation phase now finish but with 14 blocked blocks and a ton of degenerated to SomeObjects
[17:29] <arigo> :-(
[17:30] <pedronis> well, some issues are shallow
[17:31] <pedronis> but of course SomeObjects propagates so it's a slow work to fix that
[17:31] <pedronis> one source for example was newtuple
[17:31] <pedronis> because assert isinstance(., list) was not being helpful at all
[17:31] <arigo> I saw that log, yes
[17:32] <pedronis> on the contrary it was doing SomeList(SomeInst(W_Root)) -> SomeList(SomeObject())
[17:32] <pedronis> very bad
[17:32] <arigo> I think the type_of logic is incomplete,
[17:32] <arigo> it should not *replace* the existing annotation
[17:33] <arigo> but do the intersection, somehow
[17:33] <pedronis> but there's a check to prevent degrading things but it doesn't work with factories
[17:33] <arigo> argh I see
[17:33] <arigo> it's probably soon time to remove factory.py altogether
[17:34] <pedronis> contains and factories together are a bit broken
[17:34] <arigo> yes
[17:34] <pedronis> anyway the logic in isinstance was creating a factory-less list which right now is a bad idea in itself
[17:34] <arigo> indeed
[17:43] <arigo> pedronis: ok if I try to remove factory.py now?
[17:43] <pedronis> arigo: but you still need to attach the creation location to lists
[17:43] <pedronis> do distinguish them
[17:43] <pedronis> to distinguish tehm
[17:43] <arigo> yes, I was thinking about a ListDef and a DictDef similar to ClassDef
[17:44] <arigo> but attached by position_key
[17:45] <pedronis> but then you need a set of position_keys for union
[17:45] <arigo> unions would merge the ListDefs, I guess, then all position_keys point to the same one
[17:46] <pedronis> I'm thinking what to do when you unify to lists from different position_keys
[17:46] <arigo> there are two solutions, we can keep the original list separately annotatable or not
[17:47] <arigo> but at first, code generators won't be happy at all with lists that change their content set at run-time
[17:51] <pedronis> so SomeList would point to a ListDef
[17:51] <arigo> yes
[17:51] <pedronis> and there would be a position_key -> ListDef mapping
[17:51] <arigo> yes
[17:51] <pedronis> wich means you still reflow both from reading and creating points
[17:51] <arigo> from reading points only
[17:51] <arigo> I think
[17:52] <pedronis> no, you cannot reflow just from reading points
[17:53] <pedronis> at most you could not reflow at all
[17:53] <arigo> yes, that's possible, but then it would be correct, no?
[17:53] <pedronis> if I understand union of SomeList(ListDef1) SomeList(ListDef2) will create a ListDef3
[17:54] <arigo> ah, I see
[17:54] <pedronis> you can just let that propagate
[17:54] <arigo> instead, what we'd like is that "ListDef1 is ListDef2" should suddenly be true
[17:55] <pedronis> I see, that would solve the creation points problem
[17:55] <arigo> we might get away with a custom __eq__ operator that makes listdefs suddenly equal
[17:56] <pedronis> I see, but that's always a risky proposition
[17:56] <pedronis> I think at some point we had code like that
[17:56] <pedronis> tweaking with identities
[17:56] <pedronis> and it got messy
[17:58] <arigo> well we can always do the redirection explicitely
[17:58] <arigo> i.e. make ListDef1.become = ListDef2.become = ListDef3
[17:58] <arigo> and then all reads of ListDef1.getvalue() would be deferred to ListDef3.getvalue()
[17:59] <arigo> so we'd have SomeList that still use ListDef1 at some point, but it's not a problem
[18:00] <pedronis> or always use a level of indirection
[18:01] <pedronis> that means SomeList carry something that point to a ListDef
[18:02] Gromit (~bear@B7498.b.pppool.de) left irc: Read error: 60 (Operation timed out)
[18:02] <arigo> hum, there is a problem with the union, still
[18:02] <arigo> if we want unionof(two lists) to contain each of the original list
[18:03] <arigo> well, it hasn't been true so far with the existing SomeList
[18:03] <arigo> but that's not a reason
[18:03] <arigo> er?
[18:03] <arigo> no I'm talking 100% nonsense
[18:04] <pedronis> at least I didn
[18:04] <pedronis> t understand the last bits
[18:05] <arigo> ah yes, another note: for the disabled test of recursive lists,
[18:05] <arigo> actually, to make it work, one way would be:
[18:05] <arigo> take the model where SomeList points to something pointing to ListDef
[18:05] <arigo> but then there is a one-to-one correspondance between SomeLists and ListDefs
[18:06] <arigo> hence we can make SomeList point to something which points back to SomeList
[18:06] <arigo> i.e. SomeList points to a something that tells "here is the generalized version of yourself"
[18:07] <arigo> the purpose of this is to have a SomeList available to the intermediate object,
[18:07] <arigo> so that recursive lists can use themselves indirectly as their own elements
[18:08] <arigo> (am I making any sense at all?=
[18:08] <arigo> )
[18:08] <pedronis> you can have SomeList = sl -> something -> ListDef -> sl
[18:09] <arigo> yes, I'm just trying to hack the ListDef away :-)
[18:09] <arigo> but ok, that might not make much sense
[18:11] <pedronis> well, the thing is that something can compare but the just comparing its pointed to ListDef identity
[18:11] <pedronis> s/but/by
[18:11] <arigo> makes sense
[18:12] <pedronis> which makes SomeList immutable but the comparison still sane, at least as sane as the current SomeInstance one
[18:12] <arigo> :-)
[18:13] <arigo> not sure I remember why we need ListDef, instead of just updating the fields of the 'something' object
[18:14] <arigo> ah yes
[18:14] <arigo> ok
[18:14] <arigo> hum no (arigo lost)
[18:15] <pedronis> because by union you would need to rember the other something object unified in the past
[18:15] <pedronis> and change them too
[18:16] <arigo> yes, so the 'something' objects would point to all the other 'something' objects they have been unified with
[18:16] <arigo> and change them all
[18:19] <pedronis> at this point I'm wondering whether instead of keeping a point inside somelist
[18:19] <pedronis> keeping a mapping somelist -> info would be saner
[18:19] <pedronis> like I'm doing for the PBCs
[18:20] <arigo> well you need to store something on the SomeList, for comparison and contains
[18:20] <arigo> btw, SomeObject is supposed to be not hashable
[18:20] <arigo> it has an __eq__ and no __hash__
[18:21] <pedronis> I see, that's a detail
[18:21] <pedronis> anyway I'm thinking somelist -> (union of somelists, info)
[18:21] <pedronis> linke for the PBCs
[18:22] <pedronis> and comparison would retrieve the info and compare by that indentity
[18:23] <arigo> tweak SomeList.__eq__ ?
[18:23] <pedronis> yes, but the mapping itself would probaly use the SomeList id
[18:23] <pedronis> not SomeList directly
[18:23] <pedronis> and then creation point would always reuse the somelist
[18:24] <pedronis> the same somelist
[18:24] <arigo> looks more complicated than necessary
[18:24] <pedronis> maybe
[18:24] <arigo> SomeObjects are meant to be immutable values not to be compared by id
[18:26] <pedronis> well, the problem is that when we unify somelists we want anything that was unified also in the past updated too
[18:27] <arigo> we need sets of things that have been unified
[18:31] <pedronis> that's the something
[18:31] <arigo> after some playing around, I suggest to rename 'something' to ListDef and 'ListDef' to ListItem
[18:31] <arigo> a ListDef, like a ClassDef, would then point to the info about its "attribute", the ListItem
[18:32] <arigo> the ListItem has an s_value, read_locations, and itemof mapping back to the ListDefs that use it
[18:33] <pedronis> so when you merge ListItems you update all the ListDefs it points too
[18:33] <pedronis> s/too/to
[18:34] <arigo> yes
[18:36] <pedronis> that would work, the question is a bit the cost of all the backupdating
[18:36] <arigo> it shouldn't be too common to have lots of lists merging
[18:37] <arigo> merging should reflow, as it generalize the value of one or both lists, right=
[18:37] <arigo> ?
[18:38] <pedronis> it should reflow from reading points yes
[18:38] <arigo> ok
[18:38] <pedronis> one messy issue is there are many way to read from a list
[18:38] <arigo> yes
[18:39] <pedronis> all places dispatching on SomeList or .s_item should be checked
[18:39] <pedronis> or using .s_item
[18:40] <arigo> yup
[18:41] <pedronis> you also need a mapping creation point -> ListDef
[18:41] <arigo> yes
[18:41] <pedronis> to reuse the ListDef
[18:41] <arigo> do I need to reuse the ListDef in valueoftype(list) ?
[18:42] <arigo> ah, I can just return always the same most-general ListDef, anyway
[18:42] <pedronis> yes
[18:42] <pedronis> also with union you can return one of the ListDef
[18:43] <arigo> yes, any one of the two existing ListDefs
[18:44] <arigo> then I start it all again with SomeDict :-)
[18:45] <pedronis> umph, of course we have string slicing used too
[18:45] <arigo> yes, that's hard to avoid, I guess
[18:46] <pedronis> well, I'm discovering all of this stuff
[18:46] <arigo> :-|
[18:47] <pedronis> because str_w__String is degenerating to SomeObject
[18:47] <pedronis> because W_StringObjects are constructed with SomeObject as _value by some of the operations we don't have annotate support
[18:52] <arigo> hard to track down
[18:52] <arigo> maybe we need a sanity test file that says that some attributes of some classes shouldn't be more general than some annotation
[18:52] <arigo> then the annotator would complain at the moment they become more general
[18:57] <pedronis> yes
[19:03] gfunch (~chatzilla@breisfel-01.cvmbs.colostate.edu) joined #pypy.
[19:11] gfunch (chatzilla@breisfel-01.cvmbs.colostate.edu) left #pypy.
[19:19] <arigo> there are not too many .s_item access, apart from (argh) in the test
[19:20] <pedronis> I see
[19:20] <pedronis> I discovered anotether fun problem in stringobject, it was reusing the same list for strings and W_StringObjects
[19:22] <arigo> :-|
[19:29] Action: arigo checks in ListDefs
[19:44] <pedronis> arigo: the ListDef repr needs improvement :)
[19:44] <arigo> oh
[19:46] <pedronis> I see there isn't one
[19:49] <pedronis> arigo: should I write one?
[19:49] <arigo> pedronis: yes, ok
[19:50] <arigo> I'm about to check in dictdef.py and related fixes, but it shouldn't conflict
[19:51] <arigo> or at least it should merge cleanly (I slightly changed class ListItem to reuse it from dictdef.py)
[19:54] dialtone (~dialtone@host187-0.pool21345.interbusiness.it) left irc: "This computer has gone to sleep"
[19:54] <arigo> pedronis: do you have a test for the "if obj2.const != list" hack about 'is_type_of' ?
[19:54] <arigo> because it shouldn't be needed any more, so I'd like to make sure there is a test that still passes
[19:54] <pedronis> yes, there are tests test_assert_list_doesnt_lose_info or something like that
[19:55] <arigo> ok :-)
[20:00] <arigo> hum, I have to fix something for it to work
[20:00] <arigo> s_list1.contains(s_list2)
[20:00] <arigo> actually computes the union, so actually merges the two lists, and always return True
[20:00] <arigo> and the lists are merged, which is bad bad bad
[20:01] <pedronis> YES
[20:01] <arigo> I guess we need a custom contains() on SomeList and SomeDict
[20:02] <arigo> there's already a custom __eq__ so I can't object to that any more :-)
[20:03] <pedronis> that's not so simple
[20:03] <pedronis> because a list can be contained in something else
[20:03] <arigo> yes, but the something else won't try to merge
[20:03] ludal (~ludal@logilab.net2.nerim.net) left irc: "Download Gaim: http://gaim.sourceforge.net/"
[20:04] <pedronis> its union may
[20:04] <arigo> hum
[20:04] <pedronis> used by the generic contains
[20:05] <arigo> unlikely, but I see the point
[20:06] <pedronis> seems dangerous to just count on the unlikely
[20:06] <arigo> then what about the generic contains() calling a method softunion(), or something less aggressive than union() ?
[20:07] <pedronis> the problem is that union was not meant to have permanent side-effects
[20:10] <arigo> the union of SomeList can be made less aggressive, it would still be valid
[20:10] <arigo> in the sense of annotating correctly
[20:11] <pedronis> but then generators would have problems
[20:11] <arigo> yes
[20:11] <arigo> I'm thinking about an intermediate solution
[20:11] <arigo> where just the valueoftype(list) is "soft"
[20:12] <arigo> the MOST_GENERAL_LISTDEF, in other words
[20:12] <arigo> which fits nicely because MOST_GENERAL_LISTDEF.bookkeeper is None, unlike the other "real" ListDefs
[20:13] <arigo> so we can say that union is aggressive only if the "bookkeeper" attributes match, which makes _some_ sense...
[20:19] <pedronis> mmh, I'm having some problems with list(())
[20:20] <arigo> ah?
[20:21] <pedronis> I'm getting it annotated as list of SomeObject instead of SomeImpValue
[20:21] <arigo> strange
[20:21] <pedronis> maybe I'm wrong
[20:21] <pedronis> I will write some tests
[20:22] <pedronis> anyway we have a lot of code depending on list(tuple) doing the right thing
[20:22] <arigo> ah ha
[20:22] <pedronis> related to switching beetween the various flavors of space.call_*
[20:22] <arigo> oh I see
[20:22] <arigo> but then how is the *arg annotated?
[20:23] <pedronis> in the case I was looking as an empty tuple
[20:23] <pedronis> SomeTuple(const=(),items=())
[20:25] <pedronis> although maybe I'm wrong
[20:25] <pedronis> and something downstream was polluting the list
[20:27] <arigo> Yay! Now circular (i.e. recursive) lists can be properly annotated.
[20:28] <arigo> going to lunch now...
[20:28] Action: arigo -> dinner, actually
[20:30] <pedronis> ok
[20:30] <pedronis> there's really a problem with list(Tuple)
----- silence for 17 minutes ----- [20:47] <pedronis> no, it works fine
[20:47] <pedronis> so it's something like
----- silence for 1 hr and 8 minutes ----- [21:55] Action: pedronis leaving
[21:55] pedronis (pedronis@ratthing-b246.strakt.com) left irc: "Chatzilla 0.9.67 [Firefox 1.0.2/20050325]"
[22:04] arigo (~arigo@134.99.18.225) left irc: "[x]chat"
[22:10] jeroenh (~Neelix@doc.je-ju.net) joined #pypy.
[22:11] jeroenh (Neelix@doc.je-ju.net) left #pypy.
[22:23] bbiow (bbiow@82.145.232.60) joined #pypy.
[22:26] Action: bbiow slaps bbiow around a bit with a TCL powered popup
[22:26] bbiow (bbiow@82.145.232.60) left irc: Client Quit
[22:32] pedronis (~Samuele_P@c-358b70d5.022-54-67626719.cust.bredbandsbolaget.se) joined #pypy.
[00:00] --- Sat Apr 16 2005