Camelia, the Perl 6 bug

IRC log for #parrot, 2008-06-25

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 tewk It will just work. shift_integer automatically calls get_integer on the object.
00:00 bacek_ joined #parrot
00:01 tewk The object should implement VTABLE_get_integer
00:02 dolmen well, the object is more high level: it is a rakudo Range object
00:03 dolmen it has a 'shift' method, but it is probably not get_integer...
00:04 dolmen would it be possible to implement get_integer in PIR?
00:05 chromatic Sure, write a sub with the :vtable attribute.
00:05 tewk Yes, you used the :vtable adverb I believe
00:07 tewk You could also do
00:07 tewk $P0 = shift indices
00:07 tewk $P0  would then be the Range object
00:08 tewk and you can call any of the range objects methods.
00:09 AndyA joined #parrot
00:09 tewk $P0.special_methoid_1()
00:11 dolmen So I have to separate the cases where the shifted value gives an integer ($I0 = shift indices) from a PMC ($P0 = shift indices)?
00:13 tewk no but once you $I0 = shift indices you've lost the range object.  All you have is the integer the get_integer call on the range returned.
00:17 rdice joined #parrot
00:34 tetragon Hrm... I'm getting a make failure
00:34 tetragon Cannot chmod 0644 ops/bit.pod:No such file or directory at /System/Library/Perl/5.8.8/ExtUtils/Command.pm line 241.
00:35 diakopter out of disk space? :)
00:35 tetragon Nope
00:35 tetragon I cleared out loads recently as I'll be taking this box in for a new screen soon
00:37 tetragon But ops/bit.pod doesn't exist
00:37 tetragon Ah... I see what happened a couple of lines back from that
00:38 tetragon What's the command "ud" that's assumed to be in my $PATH
00:38 tetragon ud ops/bit.pod ../src/ops/bit.ops
00:38 tetragon make[1]: ud: Command not found
00:54 nopaste "tetragon" at 76.10.148.120 pasted "My latest build failure" (250 lines) at http://nopaste.snit.ch/13391
00:57 tetragon Erm... the generated docs/Makefile does not define PERLDOC anywhere, and that's what's executed to generate the nonexistant file
01:04 nopaste "tetragon" at 76.10.148.120 pasted "patch that resolves my latest build failure" (13 lines) at http://nopaste.snit.ch/13392
01:16 Theory joined #parrot
01:35 Zaba_ joined #parrot
01:39 teknomunk joined #parrot
01:50 diakopter what's the name of the Intercal implementation on Parrot?
01:56 Zaba joined #parrot
02:28 japhb joined #parrot
03:16 particle joined #parrot
03:22 bacek_ pugs: pixie?
03:30 particle joined #parrot
03:30 japhb joined #parrot
03:30 teknomunk joined #parrot
03:30 TiMBuS joined #parrot
03:30 tetragon joined #parrot
03:30 Whiteknight joined #parrot
03:30 zarchne joined #parrot
03:30 purl joined #parrot
03:30 jjore joined #parrot
03:30 Khisanth joined #parrot
03:30 GeJ joined #parrot
03:30 tewk joined #parrot
03:30 bacek joined #parrot
03:30 apeiron joined #parrot
03:30 Patterner joined #parrot
03:30 contingencyplan joined #parrot
03:30 ank joined #parrot
03:30 ruoso joined #parrot
03:30 cotto_work joined #parrot
03:30 gmansi joined #parrot
03:30 avar joined #parrot
03:30 DietCoke joined #parrot
03:30 clunker3 joined #parrot
03:30 omega joined #parrot
03:30 TonyC joined #parrot
03:30 Tene joined #parrot
03:30 dngor joined #parrot
03:30 Piper joined #parrot
03:30 ewilhelm joined #parrot
03:30 hachi joined #parrot
03:30 cxreg joined #parrot
03:30 cotto_home joined #parrot
03:30 workbench joined #parrot
03:30 diakopter joined #parrot
03:30 zostay joined #parrot
03:30 spinclad joined #parrot
03:30 bobwhoops joined #parrot
03:30 TimToady joined #parrot
03:30 silug joined #parrot
03:30 obra joined #parrot
03:30 rhr joined #parrot
03:30 Infinoid joined #parrot
03:30 rjbs joined #parrot
03:30 _shane joined #parrot
03:30 confound joined #parrot
03:30 cout joined #parrot
03:30 Auzon joined #parrot
03:30 jjuran joined #parrot
03:30 vhold joined #parrot
03:30 jq joined #parrot
03:30 NotFound joined #parrot
03:30 integral joined #parrot
03:30 MagNET joined #parrot
03:30 rafl joined #parrot
03:30 baest joined #parrot
03:30 jrockway joined #parrot
03:30 slavorg joined #parrot
03:30 Debolaz joined #parrot
03:30 szbalint joined #parrot
03:34 Whiteknight seen particle?
03:34 clunker3 particle was last seen on #parrot 7 hours, 57 minutes and 24 seconds ago, saying: errands &
03:34 purl particle was last seen on #parrot 8 days and 12 hours ago, saying: sorry, Whiteknight, got disconnected. have anything for chromatic?  [Jun 16 08:42:10 2008]
03:35 Auzon purl, you're back!
03:35 purl Auzon: i'm not following you...
03:36 Whiteknight purl message?
03:36 purl Perhaps you mean "messages", or "message nickname blah blah", or "messages help", or.. eh, just forget it.
03:37 Whiteknight message particle chromatic mentioned some kind of bug in the 64-bit stack trace code, and said you had more info about it. I'll tackle it if you want (I'm knee-deep in memory trace code already). Just send me some info (or open a ticket).
03:37 purl Message for particle stored.
03:46 purl joined #parrot
04:08 tetragon joined #parrot
04:20 Zaba_ joined #parrot
04:49 cotto_home dinosaurs?
04:49 purl dinosaurs are extinct because they lacked a space program.
04:50 cotto_home purl, dinosaurs are also http://www.photobasement.com/j​esus-probably-rode-dinosaurs/
04:50 purl okay, cotto_home.
04:50 purl OK, cotto_home.
04:50 cotto_home dinosaurs?
04:50 purl dinosaurs are extinct because they lacked a space program. or http://www.photobasement.com/j​esus-probably-rode-dinosaurs/
04:50 cotto_home purl has a split personality
04:50 purl cotto_home: excuse me?
04:53 Auzon That was indeed weird :P
04:55 bacek_ joined #parrot
04:59 Andy joined #parrot
05:04 Psyche^ joined #parrot
05:14 mfollett joined #parrot
05:30 japhb joined #parrot
06:07 rhr joined #parrot
06:09 Theory joined #parrot
06:30 Zaba joined #parrot
06:49 Zaba_ joined #parrot
06:52 Ademan joined #parrot
07:00 moritz @tell dolmen you shouldn't test for the explicit value of $range.perl - it's not guaranteed to be that simple, just that it re-generated the object on evaluation (but for example it might include parenthesis or an explict call to Range.new(...) or some such)
07:00 moritz ENOLAMBDABOT
07:01 bacek_ s/@tell/message/
07:03 moritz message dolmen you shouldn't test for the explicit value of $range.perl - it's not guaranteed to be that simple, just that it re-generated the object on evaluation (but for example it might include parenthesis or an explict call to Range.new(...) or some such)
07:03 purl Message for dolmen stored.
07:03 moritz oh, wrong channel, maybe I should have tried #perl6 ;)
07:03 bacek_ EWRONGCHANNEL
07:03 bacek_ :)
07:41 Zaba joined #parrot
07:41 pjcj joined #parrot
07:51 Zaba joined #parrot
08:05 pjcj joined #parrot
08:45 Zaba_ joined #parrot
09:07 ambs joined #parrot
09:24 masak joined #parrot
09:42 Coleoid_ joined #parrot
10:20 bacek joined #parrot
10:53 mj41 http://use.perl.org/~jplindstrom/journal/36751 Perl 5, and 6.
10:54 moritz lol
10:58 Zaba joined #parrot
11:02 apeiron_ joined #parrot
11:07 masak mj41: very cute
11:07 masak :)
11:17 tetragon joined #parrot
11:28 cosimo joined #parrot
12:05 tetragon joined #parrot
12:07 Ademan joined #parrot
12:41 kj joined #parrot
12:49 Zaba_ joined #parrot
13:06 Andy joined #parrot
13:17 davidfetter joined #parrot
13:20 DietCoke polyglotbot: apply
13:20 DietCoke tcl: apply
13:20 polyglotbot OUTPUT[wrong # args: should be "apply lambdaExpr ?arg1 arg2 ...?"␤]
13:36 xdg joined #parrot
13:38 xdg Hi.  After Ovid's post (http://use.perl.org/~Ovid/journal/36776) I was tempted to try to compile parrot/perl6
13:38 xdg make failed in the docs directory because $(PERLDOC) was used but never defined.
13:39 xdg Is this something in my configuration or the configuration tools?
13:39 particle it's a bug, and we have a patch pending
13:39 particle i'll have a look at it now
13:40 xdg I pulled from the svn trunk so I take it the patch is 'pending' in someone's head?
13:40 particle no, it's in the rt queue
13:41 particle http://rt.perl.org/rt3/Tic​ket/Display.html?id=56310
13:41 xdg heh -- *that* pending repository.  I have lots of those, too.  :-)
13:41 particle i've applied the patch locally, ran configure, and am building parrot
13:41 rdice joined #parrot
13:42 particle then i can make docs and commit
13:42 xdg I wish I had time/tuits to get familiar with parrot and help.  Right now it's all magic incantations for me.  But it seems like lots of progress is being made.  Good work!
13:44 particle but without your help, how will we ever get to 1.0? ;)
13:45 * xdg is helping by cheering.
13:45 xdg After Strawberry Perl and CPAN::Reporter, I'm pretty much full up on big projects right now.
13:45 particle ):
13:45 gryphon joined #parrot
13:45 particle sure, i'm just kidding
13:45 xdg I know.
13:45 jhorwitz joined #parrot
13:46 xdg Oh.  I help with perl5 tools to help configure parrot (I think).  Isn't jimk using IO::CaptureOutput now?
13:46 particle i spoke to alias briefly about having a parrot/perl6 windows msi file
13:46 particle yeah, i think he's still using that module
13:47 particle xdg: are you familiar with the msi bits of strawberry?
13:47 xdg I don't think it would be too hard to adapt Perl::Dist.
13:47 xdg MSI is hard.  EXE is easier right now.
13:47 particle ah, ok
13:47 particle that's fine, too
13:48 xdg MSI requires a GUID for every file in the distribution and tracking that over time for subsequent releases so the installer knows what to replace for upgrades.
13:48 particle hrmm
13:48 xdg There are tools to help but a steep learning curve. It's been on the wishlist for a while, but Alias and I haven't had a chance to tackle it.
13:48 particle i suppose we could track that in a manifest file
13:49 xdg Obviously, tons of people release MSI's for windows.  We just don't have anyone participating that has done it a dozen times before.
13:49 Zaba joined #parrot
13:50 particle sure. 8 years ago, i knew a guy who was really good at it
13:50 xdg Though I think Alias made some good MS contacts at YAPC who indicated an interest in helping out.  Maybe that will lead somewhere.
13:50 davidfetter how about cotto?
13:50 particle i hope he wasn't talking about me :)
13:50 davidfetter he's at MSFT :)
13:50 particle cotto's a penguin
13:51 particle but, he may have access to someone with msi-skillz
13:51 davidfetter working at MSFT, he might know some people who'd be able to help out
13:51 xdg particle: I think it was a new contact and I assume you two had met already.  Maybe I'm wrong.
13:51 particle yep
13:51 particle well, good news anyway
13:52 particle jhorwitz: alias still there?
13:52 jhorwitz for another few hours, yes.
13:52 particle how was nodding head?
13:52 xdg anyway, I'll keep an eye out for the patch in trunk and give it a try later.  Back to $job now.
13:52 particle xdg: i'm committing now
13:52 xdg Thanks!
13:52 xdg left #parrot
13:54 jhorwitz particle: short but sweet.  i loaded up on beers while i could.  there were about 8 or 9 people there, including waltman, jcap, geoff avery, and Tene.
13:54 davidfetter mmm...beers
13:54 NotFound I don't understand the parrot debugger design. It is integrated in parrot core, is an external tool, is both?
13:54 particle nice, tene was in town too!
13:54 Tene Yes, he was!
13:54 dalek r28693 | particle++ | trunk:
13:54 dalek : [perl #56310] [Patch] unset $(PERLDOC) breaks building on OS X
13:54 dalek : Courtesy of seneka cunningham
13:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28693
13:54 particle NotFound: pdb
13:55 NotFound particle: pdb is the external tool part of the equation.
13:55 Tene jhorwitz: geoff == japhb?  If so, who was he?
13:55 particle ok
13:55 NotFound But there is also the debug_init opcode.
13:55 particle no, geoff avery is the readhead
13:55 purl okay, particle.
13:56 Tene Ahh.
13:56 particle NotFound: parrot has the ability to switch to a debugging runcore at runtime
13:56 particle iirc
13:56 * DietCoke wonders how chromatic missed that.
13:56 DietCoke (perldoc)
13:57 NotFound particle: that's the part I don't understand. We have the same code duplicated in parrot and in pdb?
13:57 particle i don't know, i haven't looked at the source in a long time
13:57 particle if that's the case, surely it can be refactored
13:58 NotFound particle: yeah, I'm looking at it with that idea in mind.
14:00 NotFound I'm thinking about a pluggable debugger interface.
14:01 NotFound Actually it almost works like that, just need some cleaning.
14:01 particle could you write up a pdd-style doc describing the api?
14:01 NotFound (For some values of 'some')
14:02 particle i have many ideas regarding parrot and pluggable
14:02 NotFound particle: maybe, first I'm looking what the current interface is.
14:04 particle ok
14:07 xdg joined #parrot
14:08 xdg I'm back quickly just to mention that I looked up Alias' journal entry and it was cotto from MSFT that he talked to at YAPC.  So it sounds like he's on the right track.
14:18 xdg left #parrot
14:38 particle fab
14:43 NotFound Looks like the switch to debugger at runtime does not work, the opcode debug_break segfaults.
14:48 apeiron joined #parrot
14:50 tco joined #parrot
14:51 NotFound Snail mail, pero de verdad: http://www.boredomresearch.net/rsm/
14:51 NotFound Ups, wrong windows.
14:53 * davidfetter mischans to keep NotFound company
14:59 zostay joined #parrot
15:06 dalek r28694 | moritz++ | trunk:
15:06 dalek : [rakudo] Test.pm: added three-arg form of isa_ok()
15:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28694
15:18 DietCoke moritz: in 28689 you add two tests but claim to only add one.
15:18 DietCoke if the commit msg was right (and not the commit), you'll probably want to back that bit out.
15:19 moritz DietCoke: no, commit message was wrong
15:19 moritz (there's no easy way to correct that, right?)
15:19 DietCoke right
15:21 moritz should I mention that in the next commit message? or just ignore it?
15:21 DietCoke When I do that, I typically forward the message to the parrot-porters list and mention my screwup. That's a minor one, though, i'd just ignore it.
15:21 moritz ok
15:22 NotFound You can say that is a test with two phases X-)
15:23 moritz NotFound: sure, S02-builtin_data_types/num.t and S03-operators/assign-is-not-binding.t are just phases of the same test ;)
15:23 NotFound moritz: under some point of view, Luke.
15:33 slightlyoff joined #parrot
15:35 slightlyoff left #parrot
15:51 NotFound Solved the debugger opcodes problem, what just that they assumed without checking that the debugger was inited and a program to debug loaded.
15:56 DietCoke hey, I didn't know Jarkko worked at google.
15:56 DietCoke http://www.boingboing.net/2008/​06/24/copyright-renewal-re.html
15:56 DietCoke jarkko++
15:57 rjbs neat
15:58 apeiron huh, interesting.
16:02 dalek r28695 | moritz++ | trunk:
16:02 dalek : [rakudo] three more test files for spectest_regression
16:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28695
16:10 Zaba_ joined #parrot
16:17 iblechbot joined #parrot
16:43 magnachef joined #parrot
16:47 japhb There's something anti-climactic about seeing a channel alert for your nick, and then finding out it was just someone confused about your name ...
16:48 moritz so every hilight is a small climax for you, japhb? ;-)
16:48 japhb um ...
16:48 jonathan japhb: enjoy this climax
16:49 moritz lol
16:49 japhb jonathan: :-P
16:49 Theory joined #parrot
16:51 Andy joined #parrot
17:06 japhb Am I the only one who got several copies of old messages in the last 24 hours?
17:06 japhb (from parrot-porters)
17:08 DietCoke japhb: I think so
17:08 japhb Hmmm
17:20 cotto_work japhb, I got some oddly timed duplicates >=12 hours late
17:20 japhb cotto_work: yes, that sounds like what I saw
17:26 DietCoke hurm.
17:41 Ivatar joined #parrot
18:10 davidfetter joined #parrot
18:26 pmichaud I've noticed some multi-hour delays in messages to parrot-porters (or coming via RT)
18:27 NotFound pmichaud: same here, from a week or so ago.
18:27 pmichaud I haven't really timed them.  I do know that people on #parrot tell me about new tickets in RT long before (>12 hours) I get email notification of them.
18:28 DietCoke It's been that way for some time.
18:28 Tene Maybe we just need an IRC bot to translate the RT emails into messages on IRC.  ;)
18:28 NotFound Sometimes a ticket is discused, a patch applied, and the ticket is closed before it hits the list X-)
18:28 moritz Tene++ # more bots, always
18:29 DietCoke We will eventually be moving away from RT, but not for some months.
18:29 DietCoke (of course, the new system will probably have some other issue!)
18:29 NotFound Tene: even better if it applies the patch and post a backtrace of the core dump X-)
18:30 moritz DietCoke: is the problem the RT or the list?
18:30 NotFound moritz: all times I looked, the ticket was viewable in rt web interface.
18:32 DietCoke moritz: with the delay? no clue. that's all hidden behind perl.org from my POV.
18:32 DietCoke i suspect it's related to the choking amount of spam that tries to go through the domain regularly.
18:32 Tene NotFound: the biggest problem there would be identifying the command to run to reproduce the problem.
18:33 NotFound <conspiracy>Ruby and Python fans are paying spammers to try to block us</conspiracy>
18:35 NotFound Tene: you can always use the infinite monkeys approach.
18:36 Tene That seems... unproductive.
18:37 NotFound We just need that someone pays the bananas.
18:38 moritz speaking of which, is it already decided what's going to happen with all that perl6 + tpf founding?
18:41 dalek r28696 | fperrad++ | libs4php:
18:41 dalek : [php] define PHP types as native PMC
18:41 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28696
18:46 pmichaud at yapc::na there was a (very well attended) bof to discuss how the perl6 funding might be managed (more)
18:46 pmichaud there's an application form being put together, we expect applicants to use that to apply
18:46 pmichaud I'm putting mine together right now (literally), and plan to make it available for others to use as reference in creating their own
19:00 avar joined #parrot
19:54 luca_ joined #parrot
20:00 NotFound I've made an initial work towards debugger refactoring, if someone is interested take a look at #56346
20:01 pmichaud phone
20:06 sjansen joined #parrot
20:10 Zaba joined #parrot
20:29 Zaba_ joined #parrot
20:38 PacoLinux joined #parrot
20:47 dalek r28697 | fperrad++ | libs4php:
20:47 dalek : [php] math - base convertion
20:47 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28697
20:52 NotFound Somenone knows what PDB_extend_constant_table has to do with PDB?
20:52 DietCoke I don't think anyone has touched pdb in some time.
20:54 NotFound Looks like that, yes, but the question is only patially related to pdb.
20:55 cotto_work seen fperrad?
20:55 clunker3 Sorry, cotto_work, I haven't seen fperrad.
20:55 purl I haven't seen 'fperrad', cotto_work
20:55 Zaba joined #parrot
20:55 DietCoke seen cotto?
20:55 clunker3 Sorry, DietCoke, I haven't seen cotto.
20:55 purl cotto was last seen on #parrot 104 days and 16 hours ago, saying: Is this worth filing a bug report over?  [Mar 12 22:01:12 2008]
20:56 DietCoke ... @#(*$&# how many (@#*&$#(@ bots do we need in here?
20:56 cotto_work fewer than we have
20:56 NotFound The function is declared in debug.h and defined in debug.c but is only used in imcc/pbc.c , and the const_table is used in a lot of places unrelated to pdb.
20:57 NotFound So why the name and place? Historical reasons?
20:58 DietCoke Very likely.
21:00 DietCoke NotFound: I'll try to take a look at 56346 if chromatic doesn't beat me to it (after work)
21:00 NotFound DietCoke: thanks.
21:00 Zaba_ joined #parrot
21:01 was kicked by particle: clunker3
21:04 cotto_work particle++
21:05 * particle is a bot-kicker
21:05 * particle stares down purl
21:08 diakopter purl, diss diakopter
21:08 purl diakopter: excuse me?
21:08 diakopter heh
21:27 Zaba joined #parrot
21:45 PacoLinux joined #parrot
21:50 teknomunk joined #parrot
21:51 _shane joined #parrot
21:57 Zaba_ joined #parrot
22:00 barney joined #parrot
22:05 cxreg joined #parrot
22:06 Limbic_Region joined #parrot
22:08 Zaba joined #parrot
22:12 cotto_work does anyone know how to find out whether two PMCs provide the same interface(s)?
22:12 cotto_work (in C)
22:15 Zaba joined #parrot
22:17 cotto_work it looks like I could iterate through pmc->vtable->provides_str, but it'd be better to go through some VTABLE function
22:18 pjcj joined #parrot
22:28 kid51 joined #parrot
22:34 dalek r28698 | bernhard++ | trunk:
22:34 dalek : Remove trailing space.
22:34 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28698
22:46 dolmen joined #parrot
22:50 Zaba_ joined #parrot
23:00 kid51 purl is getting to be such a wuss about the msg feature!
23:04 hachi is that what triggered it?
23:04 hachi I'm staring at the log here
23:04 hachi the thing is, I don't see the line that triggered it in here
23:04 hachi [ 2626] <Whiteknight/#parrot> message particle...
23:05 hachi maybe that's an old instance
23:06 hachi kid51 is addressing me... but where did you say it?
23:06 hachi ahh, pmsg
23:07 magnachef hey kid51
23:07 purl joined #parrot
23:08 hachi it's like she just shuts down silently... no errors
23:11 kid51 magnachef �Qu� pasa?
23:13 kid51 hachi:  Several days ago, someone else complained that purl went off line after 1 or more private messages were posted.  That same sort of thing just happened to me when I posted 3.
23:13 kid51 Thanks for looking into this.
23:14 kid51 purl Why you'd drop off channel?
23:14 purl kid51: i haven't a clue
23:16 magnachef kid51: just saying "hey"
23:16 kid51 I forwarded your email
23:17 kid51 OTOH you could try 'make smoke' on any or all of your VMs and hope that smoke.parrotcode.org would display the results.
23:18 magnachef yeah, I'm gonna do that...I need to load the Guest OSes on there first though :-)
23:19 kid51 OTOH I'd like to see us move forward on Smolder or something like that -- but that's outside of my area of expertise.
23:19 magnachef yeah, that would be a good way to do it
23:19 magnachef seems like it falls under my expertise
23:20 kid51 As I have ranted about elsewhere, the current smoke software needlessly rejects many reports.  So keep a log of what you attempt, and don't set up anything as cron jobs unless you know the reports from a particular VM are actually getting posted.
23:21 TiMBuS joined #parrot
23:21 magnachef are you referring to the 'make smoke' test, or using the smolder stuff? or are they different?
23:21 hachi she's running on an OSX 10.4 box, which means I have to use ktrace to do any debugging
23:21 hachi bleh
23:22 kid51 magnachef:  I'm ignorant about Smolder at this point; have never used it.  So, only talking about make smoke.
23:22 magnachef ok
23:23 magnachef worse come to worse, I can just have a script scrap the page and validate that the last test showed up on the page
23:23 kid51 My hunch is that we need a site *other than* smoke.parrotcode.org to play around with -- regardless of how we modify the system.
23:34 magnachef what other type of site would you prefer? Seems like a lot of the tests are quite old
23:56 bacek joined #parrot
23:59 Zaba joined #parrot

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

Parrot | source cross referenced