Camelia, the Perl 6 bug

IRC log for #parrot, 2009-05-06

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:37 dalek decnum-dynpmcs: r17 | arbelo++ | trunk/ (2 files):
00:37 dalek decnum-dynpmcs: Makefile:
00:37 dalek decnum-dynpmcs:    Make dec*$(O) depend on the appropiate dec*.h files.
00:37 dalek decnum-dynpmcs: decnum.pmc:
00:37 dalek decnum-dynpmcs:    Trim lines longer than 72 chars.
00:37 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=17
00:38 darbelo Infinoid++ # making dalek track decnum-dynpmcs
00:40 bacek_ joined #parrot
00:43 eternaleye joined #parrot
00:45 cotto Infinoid++ indeed
00:51 dalek decnum-dynpmcs: r18 | arbelo++ | trunk/src/pmc/decnum.pmc:
00:51 dalek decnum-dynpmcs: Add substract, multiply and divide VTABLES.
00:51 dalek decnum-dynpmcs: Add {get|set}_rounding_context METHODS.
00:51 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=18
00:54 darbelo cotto: With that in I'm going to hunt down a meal. Feel free to play with it. It might not build cleanly without the patch I sent today, but I haven't checked.
00:54 cotto ok.  have fun hunting!
00:55 cotto I wonder why google code isn't sending out email notifications
00:56 chromatic It's haunted.
00:56 cotto Is it know to act like that?
00:59 chromatic I've not seen it.
01:01 dalek parrot: r38498 | jkeenan++ | trunk/lib/Parrot/Harness/Smoke.pm:
01:01 dalek parrot: Apply patch submitted by Michael Peters for http://rt.perl.org/rt3/Tic​ket/Display.html?id=59978 re revision number in smolder report summary.
01:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38498/
01:07 cotto I'll buy haunted.
01:08 dalek tracwiki: v4 | jkeenan++ | SmolderTaskList
01:08 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Smo​lderTaskList?version=4&action=diff
01:08 Topic for #parrotis now Parrot 1.1.0 Released | http://parrot.org/ | 322 RTs left | Weekly Priority: Remove Deprecated Items
01:11 Infinoid oh hey, dalek worked for once
01:17 Infinoid the Next Unknown is whether the CREDITS aliasing works
01:18 Whiteknight CREDITS aliasing?
01:19 Whiteknight yeah, I'm not getting any email notifications about the decnum stuff anymore
01:19 Infinoid yeah, it's supposed to autodetect things like "wcoleda" and "Moritz Lenz" and fix them up to "coke++" and "moritz++"
01:19 Whiteknight I CAN HAZ MOR DARBELO?
01:19 Whiteknight Infinoid++ # That sounds like a cool idea
01:19 cotto He keeps *saying* he'll blog, but I'm not so sure.
01:20 Whiteknight shit, I'll blog enough for the both of us
01:20 Infinoid Whiteknight: http://github.com/Infinoid/dalek-plugin​s/blob/master/modules/local/karmalog.pm if you want more info.
01:21 Whiteknight thanks
01:22 Infinoid I'm very resistant to maintaining lookup tables myself, so I'm willing to go to enormous lengths to let more motivated people do it for me.
01:22 cotto Infinoid++ for doing dalek OSS-style
01:22 cotto That's laziness.  It's a virtue.
01:23 cotto smolder?
01:23 purl smolder is http://sourceforge.net/projects/smolder or web-based smoke test aggregator used by developers and testers to upload (automated or manually) and view smoke/regression tests using the Test Anything Protocol (TAP). or http://smolder.plusthree.com/app​/public_projects/smoke_reports/8
01:23 dalek rakudo: c0480a5 | jnthn++ | src/classes/Object.pir:
01:23 dalek rakudo: list is just a method, and should not get a namespace entry. We need to do this more widely, but this scratches an immediate itch.
01:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​0480a55873ca5ee638db924393eddadc9c0168c
01:23 dalek rakudo: 902f999 | jnthn++ | src/parrot/ClassHOW.pir:
01:23 dalek rakudo: Need to lie about top of the Perl 6 object hierarchy.
01:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​02f9991dfcdc5ab16c987dd25d2bf9d1dab7a70
01:24 cotto kid51++ #revisions on the front page of smolder reports
01:34 dalek rakudo: b7b3c60 | jnthn++ | src/classes/Routine.pir:
01:34 dalek rakudo: .name method for Routines.
01:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​7b3c60b8877a580a45c06b061787a5497f61f0b
01:34 dalek rakudo: 71c69d0 | jnthn++ | src/setting/Object.pm:
01:34 dalek rakudo: First cut of WALK; doesn't know all of the various orderings, but knows how to handle canonical and super.
01:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​1c69d02e860e7f28a8f4065c530dfaf6bba9536
02:07 tetragon joined #parrot
02:27 darbelo joined #parrot
02:35 janus joined #parrot
02:42 mikehh_ joined #parrot
04:15 petdance joined #parrot
05:05 dalek parrot: r38499 | petdance++ | trunk/config/gen/makefiles/root.in:
05:05 dalek parrot: un-break the makefile for nmake.  Sorry, particle!
05:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38499/
05:15 iblechbot joined #parrot
05:19 nopaste joined #parrot
05:30 dalek website: darbelo++ | What are the decnum-dynpmcs and why you want them.
05:30 dalek website: http://www.parrot.org/content/what-are​-decnum-dynpmcs-and-why-you-want-them.
05:31 darbelo Oh, dalek reports my blog posts too? I feel scrutinized ;)
05:34 cotto we're watching
05:34 cotto all the time
05:34 dalek parrot: r38500 | petdance++ | trunk/config/gen/makefiles/root.in:
05:34 dalek parrot: still organizing splitn flags
05:34 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38500/
05:35 * cotto notices an "edit" tab on that article
05:35 cotto time to make some typos
05:36 darbelo Wait, you can see it too?
05:36 cotto I have editor permissions.
05:38 darbelo Oh, ok. I thought everyone could see it.
05:38 cotto nope
05:38 cotto none of our thousands of spam users can edit your post
05:39 cotto s/spam/bot/
05:40 darbelo Bots. Hmm, do we unleash the velociraptors now or wait until they get complacent and let their guard down?
05:42 chromatic Every patch you take.  Every post you make.  We'll be watching you.
05:45 cotto no pressure
06:04 dalek parrot: r38501 | chromatic++ | trunk/src/pmc/class.pmc:
06:04 dalek parrot: [PMC] Made Class PMC throw exception on attempt to overwrite a method or vtable
06:04 dalek parrot: entry which already exists only when overwriting said entity with something
06:04 dalek parrot: other than itself.  This speeds up Rakudo startup by 4%.
06:04 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38501/
06:07 uniejo joined #parrot
06:10 chromatic ... and there's an 8.3% startup speedup by removing PARROT_EXPORT from all ops functions.
06:12 cotto speaking of which, whatever happened to the pcc_rewiring branch?
06:15 chromatic allison's still working on it.
06:15 chromatic Apparently it's difficult.
06:16 allison well, tedious (replacing a lot of functions) and intricate (everything depends on everything else)
06:18 chromatic Like I said.
06:23 dalek parrot: r38502 | chromatic++ | trunk/lib/Parrot/Ops2c/Utils.pm:
06:23 dalek parrot: [ops] Removed PARROT_EXPORT from generated ops functions, which you shouldn't
06:23 dalek parrot: have been using directly.  This improves Parrot startup by 8.3% and removes
06:23 dalek parrot: some 3762 exported symbols from our shared library.
06:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38502/
06:23 dalek parrot: r38503 | chromatic++ | trunk/src (3 files):
06:23 dalek parrot: [src] Tidied some code; no functional changes.
06:23 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38503/
06:29 cotto allison, in the unlikely event that I can help with some of the tedious stuff, I'd be glad to do so.
06:30 clunker3 joined #parrot
06:30 allison the intricate part is what makes it hard to pass off the tedious part
06:31 allison cotto: with two people trudging through the function replacing it would go a lot faster, but it would be much harder to track down when replacing one function causes a problem
06:39 cotto You'd know best if it's a worthwhile tradeoff.
06:43 bsdz joined #parrot
07:36 darbelo It's official: I suck at blogging.
07:39 darbelo A slightly-more-serious second post is up. It takes me way too long to finish up this things.
07:39 * moritz liked the first one
07:41 moritz darbelo: if you want to optimize for fun, keep the blog postings short, so you don't have to spend too much time on one
07:41 dalek parrot: r38504 | chromatic++ | trunk (3 files):
07:41 dalek parrot: [mmd] Changed the MMD variant initialization code in PMCs to use STRINGs
07:41 dalek parrot: instead of C STRINGs.  There's more work to do here, but already this speeds up
07:41 dalek parrot: Parrot startup by 7% and Rakudo startup by 6.32%.
07:41 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38504/
07:41 moritz chromatic++
07:42 darbelo chromatic++ indeed.
07:43 darbelo The last 48 hours add up to a big speed-up all around.
07:46 darbelo moritz, it's not the length that gets me. It's that I can't really keep a consistent writing style, and then I spend a lot of time "refactoring" the text into coherence.
07:48 moritz darbelo: I solve that problem by not re-reading my posts before publishing them :-)
07:48 moritz darbelo: instead I post a link in #perl6 (for Perl 6 stuff) and let them tell me about my errors
07:51 darbelo moritz, I'm the complete opposite, I typically write a paragraph at a time, and then give the text several passes of editing
07:52 cotto I can tell that someone's been reading chromatic's blog.
07:52 chromatic How's that?
07:52 darbelo I want a magic-flying-pony-that-pisses-rainbows
07:52 cotto darbelo used a phrase I've seen a couple times in some of your posts
07:53 chromatic Candy-flavored flying unicorn?
07:54 cotto "Sharp observers will note" (or something similar)
07:57 darbelo cotto: I don't think I got that one from chromatic. I did steal his unicorn, tho.
07:57 chromatic Nice.
07:57 chromatic My unicorn only programs Python.
07:59 darbelo Well, that explains the flying ( http://xkcd.com/353/ )
07:59 chromatic He never has to maintain programs either, because it's hard to type with hooves.
08:08 dalek website: darbelo++ | decnum-dynpmcs: Week #00
08:08 dalek website: http://www.parrot.org/cont​ent/decnum-dynpmcs-week-00
08:08 darbelo cotto, you'll probably notice a lot of 'stolen' phrases, it's part of not being a native English speaker. It's easier to remember stuff I've read than to come up with my own.
08:09 GeJ Why would one maintain Python programs. They auto-maintain themselves. That's the reason #1 why Perl programmers are leaving to explore Pythonia shores... at least that's what I get when reading slashdot. I should probably double-check on digg, shouldn't I?
08:10 riffraff joined #parrot
08:10 moritz and reddit, please. Especially the comments.
08:13 darbelo Python has superior marketing, and doesn't have a semi-infinite amount of tutorials on the web "teaching" the absolute worst practices of the language.
08:17 moritz that's why we need Perl 6 :-)
08:19 darbelo Yes. But it's still called "Perl", that won't fly. Maybe if you renamed it to "Pyrl 6" it'd sell better.
08:20 darbelo ;)
08:21 moritz :-)
08:21 moritz I'm fairly impressed by the impact of the iron man blogging challenge
08:22 moritz mst told me that they were so busy adding new subscriptions that they couldn't find the time to improve the platform :-)
08:22 moritz 89 subscriptions atm
08:23 darbelo Impressive
08:24 chromatic And a sharp criticism of some existing Perl sites.
08:26 darbelo I'm not familiar enough with the existing Perl sites to notice :)
08:28 chromatic Oh, pick a random and plausible sounding URL then look at how it has gone unmaintained.  It's a little sad.
08:30 donaldh joined #parrot
08:31 GeJ chromatic: did they ask you to do some editing?
08:33 GeJ (... for that site you were in charge of, I mean)
08:33 chromatic They made it clear I was always welcome to donate work to them.
08:34 GeJ that's rich.
08:35 chromatic I declined.
08:35 darbelo Gotta go. Need sleep.
08:35 moritz actually that's an improvement. I've heard of people offering help who were turned down
08:36 chromatic For some reason, they haven't asked about my consulting rate since then.
08:39 masak joined #parrot
08:42 GeJ hej masak
08:43 masak GeJ: halloj
08:48 cotto bacek, what's happening?
09:33 donaldh_ joined #parrot
09:47 cognominal joined #parrot
10:36 cotto not much, I guess
11:03 bacek OH HI
11:03 bacek cotto: nothing happening... Quite busy...
11:04 Gerd joined #parrot
11:04 cotto rl happens.  I can do that header fix if you won't have time for it in the near future.
11:05 bacek cotto: I'll try to fix it now.
11:05 cotto ok.  I'm sleeping soon, but msg me if you want to hand it off
11:06 bacek One question - is there is any possibility to override non-const vtable method in const vtable?
11:06 cotto otherwise I'll look into adding ATTRs to the pmc compiler
11:06 cotto from where?
11:06 cotto C?  pir?
11:06 bacek from... anywhere
11:06 bacek foo.pmc
11:07 cotto you mean "can a normal VTABLE function override a RO VTABLE function"?
11:07 bacek something like.
11:07 purl something like what, bacek?
11:08 cotto I don't think so, but both normal and ro functions exist in the RO variant vtables.
11:08 cotto Why?
11:08 bacek Can I create ro_set_integer?
11:08 bacek (Why) current handing of RO vtables is overcomplicated.
11:08 cotto just a bit
11:09 bacek erm... Looks like a byte from my pov.
11:09 cotto I'm pretty sure that once a VTABLE function gets set to the RO variant, it won't get changed back.
11:09 cotto heh
11:10 bacek I mean something different. Currently RO.pm supports overriding of _ro_ functions. But it never used
11:11 cotto I guess that could be used if you were working with a RO PMC and used a PIR VTABLE override.
11:11 bacek to override "set_integer"???
11:12 cotto .sub set_integer :vtable ...
11:13 bacek welcome to C++ world...
11:14 cotto lawl
11:14 bacek Heh. I misread RO.pm. It's now allowed for RO PMC's :)
11:14 bacek RO.pm always generates "exception stub" for :write methods
11:14 bacek So, I can simplify it a lot
11:15 bacek afk # rl attacs
11:16 cotto bye
11:20 donaldh joined #parrot
12:18 tetragon joined #parrot
12:36 ruoso joined #parrot
12:39 rg1 joined #parrot
13:26 gryphon joined #parrot
13:32 masak joined #parrot
13:40 fperrad joined #parrot
13:48 Infinoid Hmm, https://bugzilla.redhat.com/show_bug.cgi?id=499304 looks like the JIT+selinux bug again
14:00 ruoso joined #parrot
14:00 ruoso joined #parrot
14:23 workbench joined #parrot
14:23 particle1 joined #parrot
14:29 iblechbot joined #parrot
14:54 whoppix joined #parrot
15:04 clunker3 joined #parrot
15:15 dalek rakudo: 45fcaee | pmichaud++ | docs/spectest-progress.csv:
15:15 dalek rakudo: spectest-progress.csv update: 380 files, 11013 passing, 0 failing
15:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​5fcaee8853cd631b69c5c8f07e7dc888f5c0403
15:20 donaldh joined #parrot
15:43 dalek rakudo: 871c1e3 | jnthn++ | src/ (2 files):
15:43 dalek rakudo: Get .^parents and .^methods a bit more in line with spec; update WALK.
15:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​71c1e3836d4bfea56a0a1ac4840d0912e7019c9
15:43 dalek rakudo: bd1c1e9 | jnthn++ | t/spectest.data:
15:43 dalek rakudo: Add S12-introspection/meta-class.t.
15:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​d1c1e9ae0b64b800a3a26a776c329e85951889e
15:43 dalek rakudo: 79eb819 | jnthn++ | src/parser/ (2 files):
15:43 dalek rakudo: Get us able to parse module names with colonpairs in (don't do anything with them for now though; this just brings us closer to STD.pm and lets us parse a spectest I want to be able to run).
15:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​9eb819c6ae0253d9813c73c64b14476ba9a567b
15:54 Theory joined #parrot
16:08 NotFound http://irclog.perlgeek.de/parrotsketch/2009-05-04 WTF?
16:08 moritz NotFound: what's wrong with that?
16:08 NotFound Ops, my bad.
16:08 moritz try a Tuesday :-)
16:09 NotFound I was looking at spanish-style calendar, monday first X-)
16:15 kaether joined #parrot
16:15 kaether Hi, I was trying to compile Rakudo on HPUX and came across an odd parrot problem.
16:15 kaether This gets defined in config.h
16:15 kaether #define PARROT_EXEC_OS_IA64.ARCHREV_0 1
16:16 kaether (there's a period between the 64 and the ARCHREV)
16:16 kaether "./include/parrot/config.h", line 155: warning #3649-D: white space is
16:16 kaether required between the macro name "PARROT_EXEC_OS_IA64" and its
16:16 kaether replacement text
16:16 kaether Is this an obscure compiler feature to allow .
16:16 kaether 's in #defines or a bug in configure?
16:19 Infinoid joined #parrot
16:19 kaether_ joined #parrot
16:20 NotFound Looks like a bug in configure because an unexpected dot in the architecture name :?
16:21 kaether_ where does that come from (starting to look at Configure...)
16:22 kaether_ spoke too soon.. arch.pm?
16:26 kaether_ joined #parrot
16:33 rg it comes from config/init/defaults.pm line 73
16:33 kaether_ joined #parrot
16:34 NotFound How is --verbose-setp supposed to be used?
16:35 Su-Shee joined #parrot
16:35 Su-Shee hi.
16:37 NotFound kaether_: please show us the result of: perl -e 'print "$^O\n";'
16:39 kaether_ joined #parrot
16:40 tewk joined #parrot
16:46 kaether_ joined #parrot
16:49 tewk joined #parrot
16:53 kaether_ joined #parrot
16:54 fperrad bacek, about TT #638
16:56 fperrad what is the good fix :
16:56 fperrad - remove the call
16:56 fperrad - or add the missing generated code
17:01 kaether_ joined #parrot
17:06 particle-nyc kaether: fix your nick bouncing
17:08 kaether_ joined #parrot
17:08 kaether_ My connection keeps getting reset.  This doesn't happen on freenode.
17:10 dalek rakudo: 2e2f74b | jnthn++ | src/pmc/p6invocation.pmc:
17:10 dalek rakudo: P6Invocation should act more like a mutable iterator; we'll only clone it if we have to.
17:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​e2f74b02a1fa574aa3b8530c762f7345b6816ab
17:10 dalek rakudo: cab8784 | pmichaud++ | build/PARROT_REVISION:
17:10 dalek rakudo: Bump PARROT_REVISION so we get fixes to PCT and .orig in PGE.
17:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​ab87843fa5d0c341e72f3967d8faf0c49739300
17:10 dalek rakudo: c38a2ea | pmichaud++ | :
17:10 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
17:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​38a2eab4fdc2e9ea1c1d6b330a82bfa9cb59155
17:15 kaether_ joined #parrot
17:23 darbelo joined #parrot
17:23 kaether_ joined #parrot
17:28 kaether ok, I fixed it in config/auto/arch.pm
17:28 kaether by adding     $archname =~ s|\.|_|g; after     my $archname = $conf->data->get('archname');
17:30 kaether_ joined #parrot
17:30 tewk joined #parrot
17:36 dalek rakudo: ee7d456 | jnthn++ |  (2 files):
17:36 dalek rakudo: P6Invocation should become more Iterator-ish.
17:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​e7d456d0c5351aa9293d84fb39bda25738632a4
17:36 dalek rakudo: 663cde0 | jnthn++ | src/ (2 files):
17:36 dalek rakudo: Refactor indirect method dispatch, and make $x.@foo form do something along the lines of what we'll eventually want it to.
17:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​63cde070f66f97f77296ae200f25007183f96b1
17:41 moritz does parrot's svn work for anybody right now?
17:41 darbelo "could not connect to server"
17:41 DietCoke joined #parrot
17:42 Coke your parrot humor for the day:
17:42 Coke http://icanhascheezburger.files.wor​dpress.com/2009/04/funny-pictures-c​at-is-a-substitute-parrot-today.jpg
17:42 moritz ;-)
17:42 jonathan No, svn is f'd up for me too.
17:42 purl okay, jonathan.
17:43 jonathan ...win.
17:43 moritz lol
17:44 dalek parrot: r38505 | pmichaud++ | trunk/compilers/pge/PGE/Match.pir:
17:44 dalek parrot: [pge]:  Add .orig method.
17:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38505/
17:44 darbelo The cat ate the parrot! OH NOES!
17:44 darbelo Oh, svn is back.
17:45 moritz darbelo: it's called "EATED", not ate ;-)
17:46 darbelo Sorry, I not speak native english :)
17:59 Aisling joined #parrot
18:02 japhb joined #parrot
18:05 jderque joined #parrot
18:14 dalek parrot: r38506 | jonathan++ | branches/rep6object:
18:14 dalek parrot: Create branch for refactoring P6object.
18:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38506/
18:16 Coke pmichaud: ping
18:17 jonathan Coke: pmichaud just said on #perl6 he was afk for a while (lunch etc)
18:18 Coke jonathan: you might know; is the assign/ branch killable?
18:19 jonathan How old is it?
18:20 * jonathan doesn't recall hearing about this branch recently...
18:21 moritz jonathan: 5 months
18:22 jonathan Hmm. It can probably go, but I'll leave pm to say for sure.
18:22 moritz wow, we have a branch that hasn't been touched in 3 years
18:22 moritz (nci)
18:23 Coke yah. I'm going to write a report to dump info about branches, hopefully we can kill or merge some of them.
18:24 moritz Coke++ # cage cleaning
18:33 fperrad left #parrot
18:34 davidfetter joined #parrot
18:53 nopaste "Coke" at 72.228.52.192 pasted "what else should we report on?" (12 lines) at http://nopaste.snit.ch/16486
18:56 kaether joined #parrot
18:56 darbelo Hmm. My GSoC blog is showing up on the parrot front page. Is that intentional?
18:58 Coke I don't know what the top level "blogs" entry is.
18:58 darbelo http://www.parrot.org/blog/341 ?
18:58 Coke I didn't know we had blogs there. =-)
18:58 darbelo Or maybe http://www.parrot.org/blog/ ?
18:59 Coke nothing to worry about.
18:59 pmichaud assign branch can go.
18:59 pmichaud I don't remember what it was for, or if it was even mine.
19:00 pmichaud If it is/was mine, it can definitely go.
19:00 darbelo Coke: Can you add it to planet parrot?
19:05 nopaste "Coke" at 72.228.52.192 pasted "assign branch stats" (8 lines) at http://nopaste.snit.ch/16487
19:06 pmichaud it can go.  I think that's when I was doing a bit of refactoring to be able to handle containers more correctly in Rakudo.
19:07 rdice joined #parrot
19:07 Coke cheeze it, it's the pres.
19:07 davidfetter heh
19:09 nopaste "coke" at 72.228.52.192 pasted "branch stats" (254 lines) at http://nopaste.snit.ch/16488
19:12 kaether submitted the patch -- on hpux, perl is built with an architecture of IA64.ARCHREV_0
19:13 kaether which forms an illegal #define id in Configure/config.h
19:14 pmichaud I'll get rid of some of my branches.
19:16 Coke pmichaud: I just updated https://trac.parrot.org/par​rot/wiki/BranchDescriptions - feel free to rip out ones that you delete, or I'll just get 'em next time I run the script.
19:16 dalek tracwiki: v7 | coke++ | BranchDescriptions
19:16 dalek tracwiki: add copy of report generated by one off perl script
19:16 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Bran​chDescriptions?version=7&action=diff
19:16 dalek parrot: r38507 | pmichaud++ | branches/rvar:
19:16 dalek parrot: Remove obsolete branch
19:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38507/
19:16 dalek parrot: r38508 | pmichaud++ | branches/rvar2:
19:16 dalek parrot: Remove obsolete branch
19:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38508/
19:16 dalek parrot: r38509 | pmichaud++ | branches/rakudoreg:
19:16 dalek parrot: Remove obsolete branch
19:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38509/
19:16 dalek parrot: r38510 | pmichaud++ | branches/p6strings:
19:16 dalek parrot: Remove obsolete branch
19:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38510/
19:17 Coke pmichaud: I'm actually re-running it now to grab more output, I'll get it.
19:17 pmichaud okay, great.
19:17 Coke wow, that's a lot of branches. =-)
19:20 dalek parrot: r38511 | pmichaud++ | branches/assign:
19:20 dalek parrot: Remove obsolete branch
19:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38511/
19:20 donaldh joined #parrot
19:23 dalek tracwiki: v8 | coke++ | BranchDescriptions
19:23 dalek tracwiki: rerun - pmichaud++ just removed a bunch of old branches, add in initial commit message for (hopeful) clarity
19:23 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Bran​chDescriptions?version=8&action=diff
19:24 Coke msg chromatic Is the headercleanup branch deletable now?
19:24 purl Message for chromatic stored.
19:25 Coke msg particle is the bundle-parrot branch worth saving at this point?
19:25 purl Message for particle stored.
19:29 ilia joined #parrot
19:35 particle-nyc coke: stuff it.
19:35 purl bend over
19:35 chromatic joined #parrot
19:35 Whiteknight joined #parrot
19:36 dalek tracwiki: v9 | coke++ | BranchDescriptions
19:36 dalek tracwiki: add commit count per author
19:36 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Bran​chDescriptions?version=9&action=diff
19:36 Whiteknight chromatic: ping
19:38 chromatic pong
19:38 Whiteknight chromatic: allison mentioned that there was more GC API work to do now. is there a wishlist/checklist/planning page or something to follow?
19:40 Whiteknight without a plan, I'm liable to fly off on a tangent, do nothing productive, and write a blog post about my travels
19:41 chromatic Mostly we need to identify an API that all pluggable GCs can implement to make them pluggable.
19:41 Whiteknight okay...Didn't you get something like that together a while back?
19:42 jonathan chromatic: I never knew that ParrotInterpreter instances were so expensive. It looks like I can replace a lot of them with interpinfo.
19:43 Coke (interp sharing) I don't mind making some information global; I just don't know what information that needs to be.
19:43 chromatic I didn't put anything quite like that together.
19:43 chromatic I pulled some ideas together and cleaned up the API somewhat.
19:43 chromatic jonathan, we should make the interpreters less expensive.
19:43 chromatic There's an interesting idiom in Rakudo's control.pir that could be cheaper.
19:43 chromatic $P0 = new 'ParrotInterpreter'
19:43 chromatic sub = $P0['sub'; 1]
19:43 chromatic something like that.
19:43 purl i heard something like that. was that true?
19:44 jonathan chromatic: Yes. Is that one possible with interpinfo?
19:44 Whiteknight Okay, I'll take a stab at a comprehensive API plan then
19:44 chromatic I don't know what it's doing, but I expect it is.
19:45 chromatic Mostly we just need to identify the specific operations we expect from a GC.
19:46 jonathan chromatic: We can get .CURRENT_SUB
19:46 jonathan But I think the 1 is caller.
19:46 jonathan Which interpinfo doesn't currently give a way to get at.
19:46 chromatic We should fix that then.
19:47 jonathan Is ParrotInterpreter creation showing up as a major cost in Rakudo?
19:47 chromatic Bigtime.
19:48 jonathan That's crazy, because we don't create *that* many...
19:48 jonathan AFAICT
19:48 jonathan Which must mean the individual cost is huge.
19:49 chromatic Hello, world in Perl 6 creates 16 interpreters.
19:49 jonathan OK, that's in line with the number I'd expect.
19:50 Whiteknight why does it possibly create so many?
19:50 jonathan But if that's costly, should really be avoidable.
19:50 Whiteknight what are they even used for?
19:50 jonathan Whiteknight: We're purely doing it for introspection.
19:50 Whiteknight so we can't do proper introspection without creating interpreters?
19:50 chromatic We can avoid most of the cost, but if Rakudo can avoid all of it....
19:50 Coke OOC, would using "getinterp" instead of creating a new one?
19:50 * Whiteknight obviously don't know much about parrot's implementation of it
19:50 Coke (work)
19:51 chromatic As far as I know, getinterp should work.
19:51 jonathan Coke: There's a getinrerp op?
19:51 jonathan trying this stuff :-)
19:51 Coke jonathan: yes. returns the current interpreter.
19:53 pmichaud I've almost always used 'getinterp'.  AFAIK I've never seen the   new 'ParrotInterpreter'  meme.
19:53 pmichaud ah, and there it is.
19:54 pmichaud ack ftw
19:54 pmichaud I suspect those should be getinterps
19:54 moritz aye
19:54 jonathan pmichaud: Trying replacing 'em all with getinterp
19:54 jonathan pmichaud: It's me to blame. I didn't know about getinterp and didn't realize what new 'ParrotInterpreter' was doing.
19:54 pmichaud jonathan: no problem :-)
19:55 jonathan chromatic++ for pointing it out
19:55 chromatic I'm running a startup benchmark now.
19:56 jonathan chromatic: You've tried replacing them too?
19:56 chromatic Yes.
19:56 jonathan Got a patch here that is passing the sanity tests...need to run it through spectest too.
19:57 jonathan chromatic: running that here. Will let you know how it goes.
19:57 chromatic 7.62% improvement.
19:59 chromatic Runtime improvement should be much better.
20:00 TimToady phone
20:02 jonathan chromatic: Certainly worthwhile.
20:03 jonathan chromatic: Do you have much idea where else are our major costs?
20:03 jonathan (for startup)
20:03 jonathan And how much is just Parrot and how much is Rakudo?
20:03 chromatic I have a pretty good idea.
20:03 chromatic The PMCProxy game is expensive.
20:04 chromatic Parrot's startup is still too expensive, but it's 9 million ops.  Rakudo's startup is 774 million ops.
20:04 chromatic That's CPU ops, not PBC ops.
20:04 pmichaud PMCProxy itself, or the way in which Rakudo (ab)uses it?
20:04 jonathan My word, that's crazy!
20:04 chromatic The way in which Rakudo abuses it.
20:04 pmichaud just in startup, or in general?
20:05 chromatic Stuffing methods in there is expensive when it hits the "There's already a method here of that name!" exception.
20:05 pmichaud okay, just in startup.
20:05 pmichaud I think I can clean that up.
20:05 pmichaud I'm just looking for properly shaped tuits.
20:06 Whiteknight thanks chromatic. Layer
20:06 Whiteknight later*
20:06 jonathan pmichaud: We do that in regster IIUC.
20:06 jonathan pmichaud: in p6object
20:06 jonathan *register
20:06 jonathan Which I'm currently in the process of changing enormously.
20:07 pmichaud ...enormously?
20:07 pmichaud is that because of the Protoobject PMC, or are there other significant changes there?
20:08 pmichaud (the code in question is actually in add_parent)
20:08 jonathan pmichaud: Well, the entire Protoobject class goes away for one.
20:08 jonathan erm
20:08 jonathan P6protoobject
20:09 jonathan This has quite a few knock-on effects.
20:09 pmichaud Yes, I suspect it will.
20:09 pmichaud I may go ahead and fix it in trunk; if you later replace it that's okay.
20:09 jonathan pmichaud: I'm working in a branch ATM.
20:09 pmichaud yes, I saw that.
20:09 jonathan Though not at the point where I'm ready to commit anything yet.
20:10 jonathan Dinner in a moment, will continue later.
20:10 pmichaud fortunately p6object has a fairly good test suite :-)
20:10 jonathan Yeah. I fail at library loading at the moemnt. :-|
20:13 jonathan ok, nom time, bbs
20:30 PacoLinux Util: I tested your pbc_to_exe patch with an ancient machine with only 320Mb of ram. To make perl6 the time was over 2 hours (in the step pbc2exe, almost swaping all the time). With your patch applied, the time was less than 5 seconds :) Impressive
20:31 moritz jonathan: I did the s/new 'ParrotInterpreter'/getinterp/g and all tests pass here... should I push? or do you want?
20:32 Coke purl 5 / (2*60*60)
20:32 purl 0.000694444444444444
20:36 jonathan moritz: heh, I jsut got the same result...
20:36 Util PacoLinux: Thanks! Unfortunately, Jonathan tried it on Win32 with Microsoft's Visual C compiler, and found that it has limits on the maximum string size (16KB or 64KB, depending on version), so we can't apply the patch as written.
20:36 Util I am working on a version that builds the needed memory block from 16KB strings at runtime. It is a pain to do in generated PIR, but my preliminary timings show an increase of only 0.01 second load time, so I think the new patch will be workable and just as fast.
20:36 dalek decnum-dynpmcs: r19 | arbelo++ | trunk/src/pmc/decnum.pmc:
20:36 dalek decnum-dynpmcs: Refactor repeated code into the new_if_not_a_decnum() helper function.
20:36 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=19
20:37 jonathan moritz: will push
20:37 PacoLinux Util you can use conditional compilation  based in the platform/compiler ?
20:37 moritz jonathan: ok
20:39 Util PacoLinux: yes, but MSVC/Win32 is also suffering from some kind of overload due to the old byte-array method, so I am hopeful that my patch will also improve things there.
20:41 Util If it all works, then someone *could* write a config test for max-string-size, and have pbc_to_exe use that info, but pbc_to_exe is hoped to go away someday, so I am not stretching my efforts that far.
20:41 chromatic Sounds reasonable.
20:41 PacoLinux Util: ok, but in the meantime is a vry good work :)
20:41 Util thx!
20:43 dalek rakudo: a40974a | jnthn++ | src/ (2 files):
20:43 dalek rakudo: Use getinterp instead of new ParrotInterpreter to improve performance.
20:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​40974aa13b5a59249c498f5513f4621276cf5fd
20:43 dalek rakudo: 45ddf59 | jnthn++ | src/builtins/ (2 files):
20:43 dalek rakudo: Use getinterp instead of new ParrotInterpreter to improve performance (part 2...missed some!)
20:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​5ddf592a2e700125c852b55f5c93fd119297b91
20:44 Util jonathan: that reminds me - yesterday pmichaud said "...jonathan++ also sees it regularly under Win32  (and has to bump up the compiler limits..."
20:44 Util jonathan: what flags are you having to adjust, and to what levels?
20:45 jonathan The flag is /Zm
20:46 jonathan See config/hints/mswin32.pm
20:46 jonathan Currently run /Zm1500
20:46 jonathan Because the previous /Zm1000 is too mcuh
20:46 jonathan erm,
20:46 jonathan too litel
20:46 jonathan wtf
20:46 jonathan *was too little
20:46 jonathan That's "percentage of the normal amount allowed" I think.
20:47 jonathan But I can't bump it over 2,000. Once I put 2000 it says that's too much!
20:49 dalek rakudo: 35c6746 | masak++ | src/setting/Any-str.pm:
20:49 dalek rakudo: [setting/Any-str] implemented .words
20:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​5c6746483387f34dc0471ac04b6038abea048af
20:49 dalek rakudo: 6b962c2 | masak++ | src/setting/Any-str.pm:
20:49 dalek rakudo: [setting/Any-str] changed signature of .comb
20:49 dalek rakudo: ...chasing earlier spec change today.
20:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​b962c26975cead19d71ffba0c5fd44e55d47367
20:49 dalek rakudo: 615936e | masak++ | t/spectest.data:
20:49 dalek rakudo: [spectest.data] added S32-str/words.t
20:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​15936e4206945aba1c73fa6e8428e049786f4d6
20:51 clunker3__ joined #parrot
20:51 Util jonathon: thanks, that is what I needed!
20:52 Util jonathan: thanks, that is what I needed! (oops, typo-in-name==bad!)
20:52 moritz Util: typo? don't you have a tab key? ;-)
20:53 Util moritz: Cool! I m a relative newcomer to IRC and IRSSI, and don't know all the tricks yet. Thanks!
20:54 moritz Util: you're welcome ;-)
20:57 chromatic Oh, you all are going to LAUGH.
20:57 moritz ... but you didn't know about the tab key either?
20:59 chromatic What happens when you call VTABLE_delete_keyed_int on a RPA?
20:59 chromatic There's no implementation there, so you get the default version.
20:59 chromatic That boxes the INTVAL into an Integer PMC, then calls the VTABLE_default_keyed version.
21:00 chromatic In RPA, that unboxes the PMC it receives....
21:00 chromatic Upshot: adding delete_keyed_int to RPA and rewriting delete_keyed to use the int version improves Rakudo startup by 1.34%.
21:01 Util Oh chromatic, you card you.
21:01 chromatic Avoiding the allocation of 14,743 immediate garbage PMCs is nie.
21:01 chromatic nice
21:02 chromatic 9% of all PMC allocations in startup even.
21:02 moritz wow.
21:02 Util I am impressed.
21:06 chromatic Now for ParrotIterator.
21:11 Util What is the status of the `:invocant` flag, as documented in docs/pdds/pdd27_multiple_dispatch.pod?
21:11 Coke I don't think it even parses.
21:11 contingencyplan joined #parrot
21:11 Coke ISTR tripping over it in some sample code when i tried to add the =for PIR markers.
21:12 dalek parrot: r38512 | NotFound++ | trunk (2 files):
21:12 dalek parrot: [configure] replace dots with underscores in archname, TT #645 rrauenza++
21:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38512/
21:12 dalek parrot: r38513 | NotFound++ | trunk/lib/Parrot/Configure.pm:
21:12 dalek parrot: [configure] revert an accidental change in 38512
21:12 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38513/
21:12 Util `ack` reports that it still lives in the pirc and imcc compilers, and it is not listed in DEPRECATED.
21:13 Util Are these, and the docs, just oversights?
21:13 Coke No clue.
21:13 Coke My assumption is, if it's in the PDD, it's not yet implemented.
21:13 jonathan chromatic++ # nice win!
21:13 pmichaud I think it's not yet implemented, but that the PDD itself may be in flux with the other calling convention changes taking place.
21:14 Util OK, thanks, especially for the last (PDD) line
21:14 Util (Well, thx to both, now)
21:15 Whiteknight joined #parrot
21:22 donaldh_ joined #parrot
21:25 tetragon joined #parrot
21:31 Coke I thought the calling convention changes were merely implementation details, not PDD level.
21:34 jonathan chromatic: Turns out that we also fail to add things to the namespace with add_sub when they are an NCI.
21:34 jonathan chromatic: Should add_sub accept those?
21:37 chromatic I'm not sure.
21:38 jonathan OK, well, I can detect those and not try anyway. That's probably cheaper than an exception.
21:40 Su-Shee left #parrot
21:41 nopaste "jonathan" at 85.216.157.73 pasted "chromatic - how much does this help?" (24 lines) at http://nopaste.snit.ch/16489
21:45 chromatic Checking now.
21:46 jonathan chromatic: It still throws some exceptions, but I'm kinda hoping less...
21:47 pmichaud when would we have an NCI MultiSub ?!
21:47 chromatic 2.8% improvement.
21:47 jonathan pmichaud: It's not an NCI MultiSub.
21:47 jonathan pmichaud: It's probably when we inherit a method from a PMC.
21:47 jonathan pmichaud: Those are NCIs.
21:47 pmichaud yes, but your patch changes the loops to only add MultiSubs (if I'm reading it correctly)
21:47 pmichaud +    $I0 = isa $P0, 'MultiSub'
21:47 pmichaud +    unless $I0 goto method_loop
21:48 jonathan pmichaud: Yes, but before that we check if there are any entries at all.
21:48 pmichaud I don't understand.
21:48 jonathan pmichaud: Under the name.
21:48 jonathan +    $P0 = parrotclassns[$S0]
21:48 jonathan +    if null $P0 goto add_method
21:48 jonathan That is, if there is nothing currently in the namespace under that name, go and add it.
21:48 jonathan It's only after that we say "is the thing that's already there a multi-sub"?
21:49 pmichaud why not check for NCI first, then?
21:49 pmichaud before checking anything else?
21:51 jonathan We could do that.
21:51 jonathan Not sure which case happens most often.
21:52 jonathan chromatic: Is a 2.8% win worth it?
21:52 chromatic I think so.
21:52 pmichaud I do also.
21:52 Whiteknight jonathan: every win is worth it in the long run
21:52 chromatic Parrot itself can start over twice in that 2.8%.
21:53 chromatic s/over twice/more than two times over/
21:54 jonathan OK, I'll spectest the patch and if all passes in it goes.
21:54 pmichaud I think I like the patch the way you have it now better.
21:54 pmichaud i.e., check for multisub first, then later for NCI
21:55 pmichaud so, just so I understand this -- generating and catching the exceptions is really expensive?
21:56 darbelo cotto: ping
21:59 cotto darbelo, pong
21:59 chromatic Less expensive than I thought, but more expensive than it should be.
22:01 pmichaud because if so... that adds weight to what I mentioned on the call earlier today about needing "leave" to be non-exceptional, and to be able to handle "on exit" semantics.
22:02 chromatic We have trouble measuring the cost of exceptions because we can't easily detect when an exception handler has ended.
22:03 pmichaud Yes, that makes sense.
22:03 darbelo I'm looking at the exceptions for DecNum. I want to go no traps and manual inspection of the status field, thoughts?
22:04 chromatic That's probably easier, if you're consistent about it in a way that users never have to think about it.
22:04 mikehh_ joined #parrot
22:05 cotto darbelo, so basically you check the status after every operation and possibly throw an exception?
22:06 darbelo Yup. The alternative is getting SIGFPE'd, inspecting the status and throwing.
22:06 chromatic What are the implications for concurrency?
22:07 cotto chromatic, are you talking to pmichaud  or darbelo?
22:07 dalek parrot: r38514 | jonathan++ | branches/rep6object/src/pmc/protoobject.pmc:
22:07 dalek parrot: [rep6object] Very first cut of the prototype PMC; will doubtless need some tweaks.
22:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38514/
22:10 cotto darbelo, that sounds ok as long as the check isn't too expensive
22:12 pmichaud (I think chromatic's question was aimed at darbelo)
22:12 darbelo "if (set.status & DEC_Errors) { Parrot_ex_throw_from_c_args ( /* ... et cetera */"
22:14 darbelo chromatic: If we manually inspect the context, none. If we get SIGFPE'd, I'd have to know more about parrot internals than I do right now.
22:18 cotto That's right.  It'll be cheap because you need the decContext for an operation anyway.
22:18 Whiteknight darbelo: That's definitely the way to go. Do not wait for a SIGFPE to do error handling
22:20 cotto There's a Parrot_sigaction function, but I don't know what caveats it has.
22:20 darbelo cotto: Exactly, the operation sets the status.
22:25 chromatic I'm not sure how to trap a SIGFPE if you have multiple threads running.
22:46 chromatic joined #parrot
22:47 allison joined #parrot
22:48 Util slavorg?
22:48 purl slavorg is probably the bad bot
22:50 dalek parrot: r38515 | jonathan++ | branches/rep6object/src/pmc/protoobject.pmc:
22:50 dalek parrot: [rep6object] Need to claim that we're an abstraction when the proto-object.
22:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38515/
22:58 ruoso joined #parrot
23:00 dalek parrot: r38516 | jonathan++ | branches/rep6object/src/pmc/protoobject.pmc:
23:00 dalek parrot: Stringification of proto should end in ().
23:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38516/
23:08 dalek decnum-dynpmcs: r20 | arbelo++ | trunk/src/pmc/decnum.pmc:
23:08 dalek decnum-dynpmcs: Add a trial implementation for exceptions throwing.
23:08 dalek decnum-dynpmcs: It's functional, but the error messages suck.
23:08 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=20
23:12 darbelo I think I heard Infinoid talk about karma aliases. Is there a way to unify arbelo and darbelo?
23:15 samlh joined #parrot
23:20 donaldh joined #parrot
23:33 dalek parrot: r38517 | jonathan++ | trunk/runtime/parrot/library/P6object.pir:
23:33 dalek parrot: Try to avoid exceptions when copying methods out to Parrot classes in P6object, which gives a performance win. chromatic++ for identifying this bottleneck.
23:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38517/
23:35 ilia joined #parrot
23:40 rg darbelo: I guess you need get somebody to commit a patch to the CREDITS file, like this: http://nopaste.snit.ch/16490
23:42 darbelo Ok. I guess I'll bug cotto about it later :)
23:44 Infinoid darbelo: I can fix that, one moment
23:45 Infinoid karma darbelo
23:45 purl darbelo has karma of 12
23:45 Infinoid karma arbelo
23:45 purl arbelo has karma of 4
23:45 Infinoid darbelo++
23:45 Infinoid darbelo++
23:45 Infinoid darbelo++
23:45 Infinoid darbelo++
23:47 darbelo karma purl?
23:47 purl purl has karma of 8562
23:48 Infinoid git show
23:48 purl git show is how I've been doing it
23:48 Infinoid wwe
23:49 Infinoid darbelo: I haven't actually found out whether this feature of dalek works yet.  But in theory, it should re-scrape CREDITS sometime within the next couple of hours and add your karma alias.
23:49 dalek parrot: r38518 | Infinoid++ | trunk/CREDITS:
23:49 dalek parrot: [CREDITS] Add an alias for darbelo, to consolidate his commit karma.
23:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38518/
23:51 darbelo ok
23:52 dalek decnum-dynpmcs: r21 | arbelo++ | trunk/src/pmc/decnum.pmc:
23:52 dalek decnum-dynpmcs: Add context checking to set_string_native. Now it will throw an exception on
23:52 dalek decnum-dynpmcs: malformed strings instead of constructing a NaN.
23:52 dalek decnum-dynpmcs: review: http://code.google.com/p/decn​um-dynpmcs/source/detail?r=21
23:53 cotto now you know
23:53 purl It does the boots and shoes.
23:53 rg he said "within the next couple of hours"
23:53 cotto oh
23:56 darbelo This night won't be commit heavy, so we'll probably find out tomorrow.
23:56 Infinoid Yeah, it doesn't poll very often
23:56 Infinoid In the meantime, darbelo++.
23:57 darbelo I gues I should arbelo-- right?
23:58 darbelo karma arbelo?
23:58 purl arbelo has karma of 4
23:58 darbelo arbelo--
23:58 darbelo arbelo--
23:58 darbelo arbelo--
23:58 darbelo arbelo--
23:58 darbelo karma arbelo?
23:58 purl arbelo has neutral karma

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced