Camelia, the Perl 6 bug

IRC log for #parrot, 2011-02-13

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 dalek nqp: 4dd9166 | jnthn++ | src/ (2 files):
00:02 dalek nqp: Add a slot in the s-table for Parrot v-table mapped routines; we'll stash 'em by v-table index so the lookup should be fast. Also, marking.
00:02 dalek nqp: review: https://github.com/perl6/nqp/commit/4dd916696f
00:07 protorom joined #parrot
00:23 Coke anyone know why I'm getting this: set_string_native() not implemented in class 'TclString'
00:25 sorear you must have code like $Pn = $Sn
00:25 sorear where $Pn is a TclString instance
00:25 Coke Yes, but TclString is a child of string - it should totally have that vtable.
00:26 Coke $P284 = get_root_global ["parrot"], "P6metaclass"
00:26 Coke $P284."new_class"("TclString", "String" :named("parent"))
00:26 Coke (not a straight class, but still.)
00:28 sorear if you're using P6metaclass correctly, which I can't confirm offhand
00:30 Coke I'm using nqp-rx.
00:30 sorear I should have guessed from the $P284 :)
00:31 Coke and if I try to provide a manually override for set_string_native, I get an infinite loop. whee.
00:33 Coke http://trac.parrot.org/parrot/ticket/1886
00:34 Coke ah, now I remember why partcl is dead. ;)
00:34 dalek nqp: 8fbefcc | jnthn++ | src/ops/nqp.ops:
00:34 dalek nqp: Add an op for publishing a set of Parrot v-table overrides. Resolves names to indexes once here, to avoid doing it every invocation.
00:34 dalek nqp: review: https://github.com/perl6/nqp/commit/8fbefccfa2
00:34 dalek nqp: 3e4373a | jnthn++ | src/metamodel/how/NQPClassHOW.pm:
00:35 dalek nqp: Implement support for adding Parrot v-table overrides to NQPClassHOW. Will need to somehow be marked Parrot-specific in the future.
00:35 dalek nqp: review: https://github.com/perl6/nqp/commit/3e4373ae0b
00:35 dalek nqp: 4f1fcec | jnthn++ | src/pmc/rakudoobject.pmc:
00:35 dalek nqp: Make get_[integer|number|string] overridable. More to come soon; it's just yak shaving now. Along with the patches that led up to this, it fixes the 52-vtable.t regression, mostly unblocks moving Match to 6model and a bunch of other good stuff.
00:35 dalek nqp: review: https://github.com/perl6/nqp/commit/4f1fcec068
00:35 dalek nqp: d0df731 | jnthn++ | build/PARROT_REVISION:
00:35 dalek nqp: Bump to a newer Parrot that has the write barrier bits.
00:35 dalek nqp: review: https://github.com/perl6/nqp/commit/d0df7310e3
00:43 cognominal left #parrot
00:43 cognominal joined #parrot
00:58 dukeleto i am seeing this in cardinal: error:imcc:The opcode 'concat_s_s' (concat<2>) was not found. Check the type and number of the arguments
00:58 jnthn dukeleto: Needs replacing with the 3-arg form of the op.
00:58 whiteknight joined #parrot
00:59 Hackbinary dukeleto, you're using the parrot/cardinal project, yes?
01:00 dukeleto Hackbinary: let's go into #parrot for this
01:00 dukeleto oh
01:00 * dukeleto facepalms
01:00 Hackbinary #cardinal?
01:00 dukeleto Hackbinary: yes, using parrot/cardinal
01:01 dukeleto i had a really old version
01:01 dukeleto forgot to "git pull --rebase"
01:01 * dukeleto tries to send a smoke report
01:02 Hackbinary I had that same problem when I started messing around with it a couple of weeks ago, and then I found out that I was supposed to use the parrot/cardinal, not cardinal/cardinal
01:02 nopaste joined #parrot
01:02 TonyC joined #parrot
01:02 dukeleto Hackbinary: yes. it moved recently
01:05 Tene dukeleto: I think someone mentioned they had a patch for the smolder stuff in cardinal...
01:05 Tene it's still broken though, it seems
01:06 Hackbinary tene / dukeleto, there is a diff file for the Rakefile on the parrot-dev
01:07 Tene ah, yeah, lateu
01:07 dukeleto yeah, i saw it
01:08 Tene trying it...
01:08 Tene submitted
01:08 Hackbinary does anybody have admin access to cardinal/cardinal?  the readme and cardinal.github.com should be updated so people goto github.com/parrot/cardinal
01:08 dukeleto now i get: too few positional arguments: 1 passed, 2 (or more) expected
01:08 dukeleto current instr.: 'parrot;cardinal;Grammar;peek_brackets' pc 0 (src/parser/quote_expression.pir:1)
01:09 dukeleto Tene has admin access, methinks
01:09 Tene Hackbinary: if I give you access, will you update it for me?
01:09 Hackbinary tene, sure
01:09 Hackbinary i've updated both the rubyforge projects already :D
01:10 Tene iirc, the rubyforge projects were actually for an earlier project by the same name
01:12 dalek cardinal: e770a4e | tene++ | Rakefile:
01:12 dalek cardinal: Fix smolder submissions. lateu++
01:12 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/e770a4eba8
01:13 Coke ugh. what was the first release that installed parrot-nqp ?
01:14 Coke ugh. some tool isn't expanding ~
01:14 Coke ls
01:15 Tene Coke: your shell expands ~, not individual tools.  ~ is only expanded when it's the first letter of a word.
01:15 Tene ls should never be expanding ~
01:17 Coke Tene: Just ranting, thanks.
01:17 Coke the ls was a "wrong window"
01:17 Tene Coke: Ahh. :)
01:17 Coke I'm in the middle of trying to bisect a bug that's impacted tcl for some time.
01:18 dalek cardinal: 4de5e81 | cardinal++ | README:
01:18 dalek cardinal: Add message where to find active development.
01:18 dalek cardinal: review: https://github.com/cardinal​/cardinal/commit/4de5e81d08
01:18 Coke (and am therefore grumpy.)
01:19 Tene Hackbinary: if you could update the cardinal/cardinal repo just in case, that would be great.
01:21 Hackbinary tene, the current codebase?
01:21 Tene Hackbinary: Yeah, pull parrot/cardinal into cardinal/cardinal
01:21 Hackbinary alright
01:29 kid51 joined #parrot
01:39 dalek cardinal: d7f3811 | hackbinary++ | README:
01:39 dalek cardinal: Updated active development message.
01:39 dalek cardinal: review: https://github.com/cardinal​/cardinal/commit/d7f3811f99
01:40 dukeleto Hackbinary++
01:46 Coke ahahaha.
01:46 Hackbinary thanks =)
01:46 Coke my bisect says that the 2.9.0 tag is the thing that broke it.
01:46 sorear ...huh?
01:47 dukeleto Coke: interesting
01:47 dukeleto Coke: the actual commit that broke it may have caused partcl to not build, so it is probably somewhere before 2.9.0
01:48 Coke seems like the commit-just-before 2.9.0 should not have been a skip
01:55 lucian joined #parrot
01:55 sorear Coke: is it possible you have code testing the version number somewhere?
01:59 Coke I appear to be relying on revision 1.
01:59 Coke which in a post-git world means "whatever".
02:08 dalek parrot: fe1f244 | jkeenan++ | / (15 files):
02:08 dalek parrot: Remove references to svn or svn.parrot.org.  Replace with git references where appropriate.
02:08 dalek parrot: review: https://github.com/parrot/parrot/commit/fe1f2448ea
02:21 whiteknight what's the command to compile a .nqp file to .pir?
02:21 whiteknight parrot-nqp -o foo.pir foo.nqp?
02:23 sorear you might need a --target=pir in there
02:29 whiteknight awesome
02:58 protorom left #parrot
03:02 whiteknight left #parrot
03:29 adu joined #parrot
03:52 kid51 left #parrot
03:54 bacek_mobile joined #parrot
03:56 bacek_mobile jnthn, parrot_vtable requires support from pct.
03:57 bacek_mobile Past::compiler i think
03:59 ryan is now known as rdesfo
05:13 bacek_mobile left #parrot
05:31 cotto ~~
05:57 lateau_ joined #parrot
06:00 lateau_ left #parrot
06:00 adu left #parrot
06:07 rurban_ joined #parrot
06:10 rurban left #parrot
06:10 rurban_ is now known as rurban
06:19 benabik left #parrot
06:25 dukeleto ~~
06:25 rdesfo left #parrot
07:39 lucian left #parrot
07:44 bacek ~~
07:44 bacek seem jnthn
07:45 bacek seen jnthn
07:45 clunker3_ jnthn was last seen on #parrot 6 hours, 46 minutes and 38 seconds ago, saying: dukeleto: Needs replacing with the 3-arg form of the op.
07:45 aloha jnthn was last seen in #perl6 6 hours 43 mins ago saying "sub heredoc-dedenter($stuff) { loop { } } # I bet yours was longer than this... :P".
07:46 theory left #parrot
07:47 bacek msg jnthn Rakudo_binding_bind_one_param pokes into ll_sig->elements cache. It needs write_barrier, but I'm not sure about easiest way to patch it.
07:47 aloha OK. I'll deliver the message.
07:47 bacek msg jnthn src/binder/bind.c line 294
07:47 aloha OK. I'll deliver the message.
07:57 dukeleto bacek: greetings, fleshbucket
08:06 bacek dukeleto, aloha human
08:09 dukeleto bacek: are you still hacking on gen_gc2 ?
08:09 dukeleto bacek: what needs doing on that branch?
08:09 bacek dukeleto, nothing.
08:09 bacek I don't want to increase scope of initial implementation of GenGC
08:10 bacek "Make it really fast" is 3rd step. And should be done separately.
08:10 bacek E.g. optimizing ops2c, context accessors, etc
08:11 dukeleto bacek: ok, but you can just branch off of gen_gc2, right?
08:11 bacek dukeleto, yes. I just don't want to
08:11 dukeleto bacek: well, then
08:12 dukeleto bacek: i think we will merge gen_gc2 pretty soon, like 5 seconds after 3.1 is tagged
08:12 bacek dukeleto, may be.
08:12 bacek It's against our deprecation policy to merge it before after 3.3
08:14 dukeleto bacek: well, maybe our dep policy is wrong or needs an exception
08:14 bacek Dura lex sed lex
08:15 dukeleto bacek: the rakudo peeps want it sooner rather than later
08:15 dukeleto bacek: who are we helping if we make our biggest customer wait 2 months to follow a rule that doesn't make sense?
08:16 bacek We pretend to be big, stable, mature project.
08:17 bacek We can't just throw our own rules away in favour of single customer.
08:19 bacek Or let's face reality: there is no other "customers" apart from Rakudo and Lua.
08:19 bacek And policy should be "If we broke something - we will fix it for them".
08:20 bacek E.g. "provide patches to migrate to bleeding edge parrot"
08:20 bacek (Sorry Coke, partcl is permanently broken)
08:21 dukeleto bacek: why exactly does merging gen_gc2 require a dep cycle?
08:22 bacek we are changing "contract" with HLLs
08:22 bacek same as "rename function"
08:22 dukeleto bacek: that is too abstract for me. Give me a concrete reason
08:23 dukeleto bacek: also, i think this should come down to a vote at #ps, to be fair.
08:23 bacek dep cycle protect HLLs from changing source
08:23 moritz not true
08:23 bacek .. after changes on parrot side
08:23 bacek moritz, elaborate
08:23 moritz HLLs need to change in response to parrot, independently of whether there was a deprecation note or not
08:23 dalek nqp: 4b8ac4f | bacek++ | src/ops/nqp.ops:
08:23 dalek nqp: Add more write barriers.
08:23 dalek nqp: review: https://github.com/perl6/nqp/commit/4b8ac4f708
08:24 moritz it's just that the dep note gives them more time to do so
08:24 moritz but the change itself is inevitable
08:24 bacek moritz, erm. I think it is what dep policy for.
08:24 bacek Avoid changes without notification
08:24 moritz but the system is broken anyway
08:25 bacek moritz, GC MS2 isn't broken
08:25 bacek it works
08:25 bacek it's about 30% faster than GC MS
08:25 moritz because many deprecations don't provide enough data to implement alternative strategies on the HLL side
08:25 moritz bacek: sorry, I was talking about the deprecation system being broken, not parrot :-)
08:25 bacek ah
08:25 bacek yes
08:25 zby_home left #parrot
08:26 moritz so as a HLL dev, I care that I get help when parrot breaks "me"
08:26 moritz not that I know $n months in advance
08:26 moritz (except when it requires quite big changes on the HLL side)
08:26 moritz YMMV
08:27 bacek moritz, ok. Than it's exactly my "proposal" to change dep policy.
08:27 bacek "We'll fix it for them"
08:27 bacek short, simple, comprehensive
08:27 moritz we just need to be concious that this won't scale once we get significantly more users
08:27 bacek we'll not in next few years
08:30 moritz if you continue speeding up parrot like that, maybe we will :-)
08:33 bacek heh
08:34 bacek no
08:34 bacek LuaVM's calling conventions is orders of magnitude faster
08:34 bacek single memcpy on callee side to be exact
08:35 moritz well, if we manage to get good cross-HLL interop, being not slow might be good enough for many users
08:35 bacek PCC is paying tax for :slurpy, :flat and autoboxing
08:35 bacek moritz, who is working of cross-HLL interop?
08:36 moritz bacek: nobody
08:36 bacek moritz, exactly...
08:36 bacek It reminds me about "17 times" from Failblog...
08:37 bacek http://failblog.org/2011/02/04/epic-f​ail-photos-failbook-seventeen-times/
08:41 dukeleto wow.
08:42 bacek dukeleto, yes...
08:42 bacek dukeleto, no, sorry. "... exactly"
08:42 Tene bacek: for a long time, I was the only person working on HLL interop, and I kept getting the feeling nobody else cared about it.
08:43 bacek Tene, I know your feelings.
08:43 Tene I stopped after the N+1th time my HLL interop work was broken and nobody cared, and since then, nobody else has done any work on it that I've seen.
08:44 dukeleto Tene: i care about it, but I don't know what I can do right now to help
08:44 Tene dukeleto: It was a long time ago, and I need to get over it.
08:44 Tene No worries :)
08:44 dukeleto Tene: do you think continuous integraion of HLLs on parrot master would help?
08:45 moritz one problem is that HLL interop is hard to test
08:45 Tene dukeleto: I think that parrot needs that *anyway*, so maybe.
08:45 moritz I mean, you need two HLLs and a test for both
08:45 dalek nqp: 2cef296 | moritz++ | build/Makefile.in:
08:45 dalek nqp: cc_hasjit is gone, remove it from Makefile
08:45 dalek nqp: review: https://github.com/perl6/nqp/commit/2cef296e48
08:45 moritz that's not something you just do in t/hll/interop.t or so
08:46 bacek moritz, indeed.
08:47 moritz especially if you want dynops and dynpmcs in both HLLs
08:47 moritz and in rakudo too things break unless we test them
08:47 Tene does that even work yet?  I remember there was a problem with dynop and dynpmc mapping when loading them in different orders?
08:48 bacek How much budget PaFo has? Can we pay (for example) to mj41 to finish his work on taptinder? So we can test hlls on to of parrot. And have some "hll interop" tests on top of it.
08:48 moritz Tene: I dimly recall that plobsing++ did something about that
08:48 bacek Tene, (order of loading) it should be fixed by now
08:48 Tene :)
08:51 dukeleto Tene: yes, plobsing merged a branch that fixed some of that stuff
08:52 dukeleto bacek: we can also use https://github.com/franckcuny/jitterbug , which I hack on
08:52 Tene moritz: you certainly can have tests for the hll interop api, at least
08:52 dukeleto bacek: see an example of the web interface here: http://jitterbug.sgn.cornell.edu:8090/
08:53 bacek dukeleto, it doesn't really matter which CI tool we'll use.
08:53 bacek TapTinder today is most useful for parrot.
08:53 dukeleto bacek: the more the better
08:54 bacek Just because it works right now. And can even test different branches
08:54 dukeleto bacek: jitterbug is good at emailing failure reports, TT has a nice irc bot
08:54 dukeleto bacek: jitterbug tests every commit on every branch by default
08:54 dukeleto bacek: and knows about perlbrew
08:54 bacek dukeleto, we don't need perlbrew. At all
08:55 dukeleto bacek: we need to test that parrot works under perl 5.8, 5.10 and 5.12
08:55 dukeleto bacek: so i would say that it isn't a huge priority, but is a nice feature
08:56 bacek dukeleto, we are using perl for Configure and pmc2c (mostly)
08:57 bacek And fading out perl 5 usage gracefully.
09:00 * dukeleto compiles Parrot on NetBSD
09:02 dukeleto bacek: if you think our build system or test suite is going to be rid of perl 5 any time soon, you are deluded :)
09:03 bacek dukeleto, me and cotto rewrote ops2c in nqp. I have old pmc_pct branch to rewrite pmc2c in nqp.
09:03 moritz removing p5 from the Configure system poses a certain bootstrapping problem
09:04 bacek Not a big deal to resurrect it.
09:04 dukeleto bacek: i am all for not using it unnecessarily, but i don't see the utility of "let's get rid of a perl dep"
09:04 moritz what are you going to replace it with?
09:04 bacek Moving from perl5 to (for example) autotools not a big deal.
09:04 moritz do autotools work on Windows?
09:05 dukeleto autotools would make cross-compiling parrot much trivial than it is now (i.e. possible)
09:05 bacek moritz, msys and cygwin - yes
09:07 dukeleto looks like master compiles on NetBSD 5.1. Sweet.
09:08 dukeleto we have a few failing tests, but it mostly seems to work
09:09 moritz I've written a command line parser in (and for) nqp
09:09 moritz so far it supports long and short options, with and without arg...
09:09 moritz grouping of short options without arguments
09:09 bacek we have Getopt::Long in parrot
09:10 moritz and ending parsing after certain options (e.g after -e "program")
09:10 bacek sorry Getopt::Obj
09:10 moritz does a compiler need anything else?
09:11 bacek moritz, nothing else.
09:12 moritz bacek: I know, but in the medium/long run nqp wants non-parrot backends
09:12 moritz instead of wrapping slightly different libs from each vm, we rather have our own
09:12 dukeleto t/op/spawnw.t is the only test failure on NetBSD
09:15 dukeleto and i see why
09:32 dalek parrot: 077c449 | dukeleto++ | t/op/spawnw.t:
09:32 dalek parrot: [t] Tweak spawnw.t tests to run on NetBSD
09:32 dalek parrot:
09:32 dalek parrot: This test file assumed that perl is in our $PATH, but, by default,
09:32 dalek parrot: NetBSD has perl in /usr/pkg/bin/perl, so if /usr/pkg/bin was not in your
09:32 dalek parrot: $PATH, these tests would fail.
09:32 dalek parrot: review: https://github.com/parrot/parrot/commit/077c449059
09:46 moritz hey, I have an idea for my command line parsing
09:46 moritz I can add quantifiers to the specifications
09:47 moritz so foo=s means that --foo expects on string argument
09:47 moritz and bar=i+ would mean --bar expects at least on integer
09:47 moritz and ? and + accordingly
09:47 moritz erm
09:47 moritz ? and *
09:47 moritz 0,1 and 0...Inf
09:51 bacek moritz, I don't think that semantics of arguments belong to Getopt::*
09:52 bacek Or, at least, it should be in 2 "packages". Getopt::Long and Getopt::Smart (modulus naming)
09:54 dukeleto http://smolder.parrot.org/app​/projects/report_details/9384 <-- parrot master PASS on netbsd 5.1 amd64
09:54 protorom joined #parrot
09:55 AzureStone left #parrot
09:55 AzureStone joined #parrot
10:22 dalek parrot: a0d3767 | mikehh++ | examples/pir/befunge/setup.pir:
10:22 dalek parrot: fix codetest failure - Bad format in copyright statement
10:22 dalek parrot: review: https://github.com/parrot/parrot/commit/a0d3767e19
10:22 dalek parrot: e5bb489 | mikehh++ | t/op/spawnw.t:
10:22 dalek parrot: fix perlcritic failure - Found platform-specific perl shebang line
10:22 dalek parrot: review: https://github.com/parrot/parrot/commit/e5bb4893af
10:22 dalek TT #1106 closed by bacek++: Cannot presently dump Class pmcs
10:22 dalek TT #1106: http://trac.parrot.org/parrot/ticket/1106
10:24 moritz bacek: I think it's getopt::*s job to check if multiple options + values of the same name are allowed or not
10:33 bacek moritz, it's your design decision :)
10:50 mikehh bah - got a failure with t/pmc/threads.t - Failed test:  9 in smoke #9392, reran and it PASSed - smoke #9293
10:51 mikehh I am fairly sure it is a timing problem, but we need to look at it
10:52 mikehh ha that last should have been smoke #9393
10:57 protorom left #parrot
11:04 * mikehh got to go out for bit - bbl
11:26 dalek nqp: 20185cf | moritz++ | / (4 files):
11:26 dalek nqp: incorporate command line parser from https://github.com/moritz/nqp-cl-parser
11:26 dalek nqp:
11:26 dalek nqp: It is now built and tested along with nqp, but not yet used by HLL::Compiler
11:26 dalek nqp: review: https://github.com/perl6/nqp/commit/20185cff66
11:26 dalek nqp: 47a56ec | moritz++ | src/HLL/CommandLine.pm:
11:26 dalek nqp: POD for HL::CommandLine
11:26 dalek nqp: review: https://github.com/perl6/nqp/commit/47a56ec61a
11:40 whiteknight joined #parrot
11:44 lateau__ joined #parrot
11:50 lateau joined #parrot
11:57 lateau__ left #parrot
11:59 lateau__ joined #parrot
12:09 dalek nqp: 8f27940 | moritz++ | src/HLL/CommandLine.pm:
12:09 dalek nqp: [commandline] get rid of an attribute
12:09 dalek nqp: review: https://github.com/perl6/nqp/commit/8f27940182
12:09 dalek nqp: 69f3951 | moritz++ | src/cheats/nqp-builtins.pir:
12:09 dalek nqp: ok() is now a bit closr to what TAP expects (descriptions instead of comments)
12:09 dalek nqp: review: https://github.com/perl6/nqp/commit/69f3951f2c
12:14 dalek parrot-test: 28ba4ae | Whiteknight++ | setup.nqp:
12:14 dalek parrot-test: Quick stub draft for setup.pir
12:14 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/28ba4ae72d
12:42 dalek nqp: 90092d0 | moritz++ | / (2 files):
12:42 dalek nqp: [commandline] implement | option aliases
12:42 dalek nqp: review: https://github.com/perl6/nqp/commit/90092d0dbb
12:52 dalek nqp: bc69ca5 | moritz++ | src/HLL/Compiler.pm:
12:52 dalek nqp: "revision" is now always 1, use git_describe instead
12:52 dalek nqp: review: https://github.com/perl6/nqp/commit/bc69ca541c
12:52 jnthn ~
12:58 jnthn msg bacek not sure what needs the write barrier there - it's just setting an C-level int in an already-allocated, C-level array on line 294. The allocation of the nom_type_cache happened at the PMCs creation time; since it's just an int array it'll never reference another PMC. Is the problem that we somehow need to write barrier the object that ultimately references this array?
12:58 aloha OK. I'll deliver the message.
12:59 Maurice joined #parrot
13:29 contingencyplan left #parrot
13:40 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9393) fulltest) at 3_0_0-934-ge5bb489 - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
13:58 mikehh bah messed that up - that was g++-4.5 with --optimize and now
13:58 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9408) fulltest) at 3_0_0-934-ge5bb489 - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
14:07 rurban_ joined #parrot
14:10 rurban left #parrot
14:10 rurban_ is now known as rurban
14:17 kid51 joined #parrot
14:28 whiteknight in NQP if I do "class Foo is Exception { }  my $ex := Foo.new(); pir::say(pir::typeof__SP($ex);" The result is "Exception", not "Foo"
14:29 whiteknight so is NQP somehow preventing Exception from being inherited?
14:42 jnthn whiteknight: nqp-rx?
14:43 whiteknight yeah
14:43 jnthn Hmm. Oddness.
14:44 jnthn I doubt it treats Exception differently to any other PMC.
14:47 whiteknight for most of recent history, Exception was not subclassable in Parrot
14:47 whiteknight I've only recently enabled that
14:48 mikehh rakudo (f4ec358) - builds on parrot (3_0_0-934-ge5bb489) - make test, make spectest_smolder[(#9415), roast (051af06)] PASS - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
14:48 mikehh 27,634 ok, 0 failed, 610 todo, 1,841 skipped and 0 unexpectedly succeeded
14:51 * mikehh bbl
15:01 fperrad joined #parrot
15:04 dalek parrot-test: 1e74f24 | Whiteknight++ | / (3 files):
15:04 dalek parrot-test: re-do setup.nqp so it actually works.
15:04 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/1e74f24dc1
15:04 dalek parrot-test: 234cb83 | Whiteknight++ | / (2 files):
15:04 dalek parrot-test: we didn't borrow Exception::Wrapper from Kakapo, so that isn't available to inherit from. We can subclass Exception directly now, although I haven't tested this kind of implementation
15:04 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/234cb83272
15:05 dalek parrot-test: bb93b81 | Whiteknight++ | / (4 files):
15:05 dalek parrot-test: several fixes so that the library builds and runs again. I've done a few ad hoc tests and it appears to be working mostly correctly
15:05 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/bb93b81d6d
15:05 dalek parrot-test: 55d995d | Whiteknight++ | / (3 files):
15:05 dalek parrot-test: fix listeners. We're now getting some decent-looking TAP output
15:05 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/55d995d005
15:14 dalek parrot-test: 4128034 | Whiteknight++ | / (14 files):
15:14 dalek parrot-test: move source files for the xunit-based test classes into an xunit folder
15:14 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/4128034395
15:14 dalek parrot-test: ea24644 | Whiteknight++ | setup.nqp:
15:14 dalek parrot-test: update setup.nqp to use the new file paths
15:14 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/ea24644681
15:14 kid51 msg mikehh Please see http://trac.parrot.org/par​rot/ticket/2009#comment:3
15:14 aloha OK. I'll deliver the message.
15:15 kid51 msg dukeleto Please see http://trac.parrot.org/par​rot/ticket/2009#comment:3
15:15 aloha OK. I'll deliver the message.
15:19 Kristaba joined #parrot
15:21 nwellnhof joined #parrot
15:37 lucian joined #parrot
15:51 jsut_ left #parrot
15:51 lateau left #parrot
16:00 kid51 left #parrot
16:16 zby_home joined #parrot
16:17 Psyche^ joined #parrot
16:17 Patterner left #parrot
16:17 Psyche^ is now known as Patterner
16:25 Coke whiteknight: note that nqp's "is foo" doesn't use direct parrot inheritence, but goes through p6metaclass.
16:25 whiteknight ok
16:25 Coke which may relate to my long standing partcl bug.
16:25 Coke (1886)
16:37 lucian left #parrot
16:54 arnsholt I suppose that's one upside of doing Prolog. No inheritance =)
17:11 dalek nqp: 14ff770 | moritz++ | src/HLL/Compiler.pm:
17:11 dalek nqp: rewrite HLL::Compiler.evalfiles in nqp
17:11 dalek nqp: review: https://github.com/perl6/nqp/commit/14ff770996
17:15 nwellnhof left #parrot
17:25 lucian joined #parrot
17:33 dalek nqp: 0bbd0c9 | moritz++ | src/HLL/Compiler.pm:
17:33 dalek nqp: remove debugging output that I accidentally left in
17:33 dalek nqp: review: https://github.com/perl6/nqp/commit/0bbd0c9ab0
17:33 dalek nqp: f481aab | moritz++ | src/HLL/Compiler.pm:
17:33 dalek nqp: rewrite addstage in nqp. Not yet tested, because it is not actually called in nqp. Tough beans.
17:33 dalek nqp: review: https://github.com/perl6/nqp/commit/f481aab603
17:36 mikehh cotto: ping
17:37 mikehh Coke: ping
17:38 dalek nqp: 30d842b | jnthn++ | src/stage0/ (4 files):
17:38 dalek nqp: Update bootstrap to include Parrot v-table support in NQPClassHOW.
17:39 dalek nqp: review: https://github.com/perl6/nqp/commit/30d842bb2d
17:39 dalek nqp: 5c5e80a | jnthn++ | src/Regex/Cursor.pir:
17:39 dalek nqp: Add v-table mapping for Bool method in Cursor, in order to rip out a special case hack.
17:39 dalek nqp: review: https://github.com/perl6/nqp/commit/5c5e80a933
17:39 dalek nqp: 97c3955 | jnthn++ | Configure.pl:
17:39 dalek nqp: Optimized build seems to work out fine on Win32, so do one.
17:39 dalek nqp: review: https://github.com/perl6/nqp/commit/97c395554d
17:50 mikehh whiteknight: ping
18:00 dalek nqp: 873f08a | moritz++ | src/HLL/Compiler.pm:
18:00 dalek nqp: improve an error message
18:00 dalek nqp: review: https://github.com/perl6/nqp/commit/873f08afb6
18:00 dalek parrot: d4309a5 | mikehh++ | / (4 files):
18:00 dalek parrot: applying patch from TT #2009 from kid51++
18:00 dalek parrot:
18:00 dalek parrot: also removed $Id$ in MANIFEST/MANIFEST.SKIP and the generation of that
18:00 dalek parrot: as this is also a holdover from SVN
18:00 dalek parrot: review: https://github.com/parrot/parrot/commit/d4309a5d96
18:22 dalek nqp: 25c26a4 | moritz++ | / (2 files):
18:22 dalek nqp: use pure-nqp command line parser
18:22 dalek nqp:
18:22 dalek nqp: I don't know why, but it it regresses on "-o filename". However
18:22 dalek nqp: --output=filename still works.
18:22 dalek nqp: review: https://github.com/perl6/nqp/commit/25c26a4cfc
18:22 dalek nqp: 1d68f30 | moritz++ | t/hll/05-commandline.t:
18:22 dalek nqp: add a reduced case for the -o regression. The test does not exhibt the bug, so it is mostly useless :(
18:22 dalek nqp: review: https://github.com/perl6/nqp/commit/1d68f30184
18:34 whiteknight mikehh pong
18:35 mikehh whiteknight: still getting the occaisional failure with t/pmc/threads.t either test 6 or 9, but if i rerun thge test with the failure it passes
18:36 whiteknight mikehh: comment out all the tests that fail for you
18:36 whiteknight don't even TODO or skip them, just take them out for now
18:38 mikehh It is failing about 1% or less of the time and I usually run with TEST_JOBS=4, might be ok if I didn't use that, but I have run a humungous number of tests recently
18:42 mikehh what I want to find out is if anyone else is getting failures there
18:50 whiteknight I haven't seen any other reports of it, but the tests are so poorly written
18:52 whiteknight I don't doubt that people could be seeing problems
18:52 whiteknight and that's the problem with those two particular tests: they don't give us any certainty that anything is working properly
18:52 particle1 left #parrot
18:54 mikehh I think we definately need to redesign the test and make it "thread safe" as well
18:55 mikehh the timer test t/pmc/timer.t can also cause problems if run in parallel
18:57 mikehh if I ever start fulltest before make smoke completes these two tests will often fail
18:58 fperrad left #parrot
19:08 mikehh /me afk for a bit
19:09 * mikehh afk for a bit
19:09 mikehh that's better
19:12 ambs joined #parrot
19:34 Coke mikehh: pong
19:38 dalek nqp: 105de53 | jnthn++ | src/stage0/ (4 files):
19:38 dalek nqp: Another re-bootstrap needed to finally kill the get_bool hack.
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/105de53092
19:38 dalek nqp: f90cc86 | jnthn++ | t/nqp/52-vtable.t:
19:38 dalek nqp: Tests for v-table inheritance.
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/f90cc8641a
19:38 dalek nqp: f191cd2 | jnthn++ | src/metamodel/how/NQPClassHOW.pm:
19:38 dalek nqp: Get v-table override inheritance/overriding to work.
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/f191cd2e28
19:38 dalek nqp: 83b8fca | jnthn++ | src/metamodel/how/NQPClassHOW.pm:
19:38 dalek nqp: Fix a thinko.
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/83b8fca784
19:38 dalek nqp: fbfe364 | jnthn++ | src/stage0/ (3 files):
19:38 dalek nqp: Push Parrot v-table override inheritance updates into the bootstrap.
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/fbfe364adf
19:38 dalek nqp: a3d9dff | jnthn++ | src/pmc/rakudoobject.pmc:
19:38 dalek nqp: Rip out the get_bool hack - it's just a normal Parrot v-table override now. Should be faster. Also, looking over the way Parrot does it, I suspect that 6model may now be able to dispatch PIR-level v-table overrides somewhat faster than Parrot's Class/Object PMCs. :-)
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/a3d9dff337
19:44 Andy joined #parrot
19:44 zby_home left #parrot
19:46 contingencyplan joined #parrot
19:49 whiteknight I have a P6protoobject in an NQP program, and I would like to get a reference to the associated Parrot Class PMC. How do I do that?
19:49 whiteknight $proto.HOW().get_parrotclass()?
19:55 dalek nqp: 5c5b494 | moritz++ | src/HLL/Compiler.pm:
19:55 dalek nqp: rewrite parts of command_line in nqp
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/5c5b4942ca
19:55 dalek nqp: 9d325a2 | moritz++ | src/HLL/Compiler.pm:
19:55 dalek nqp: restore proper usage messages
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/9d325a2320
19:55 dalek nqp: b350f28 | moritz++ | src/HLL/Compiler.pm:
19:55 dalek nqp: start to port method command_line to nqp
19:55 dalek nqp: review: https://github.com/perl6/nqp/commit/b350f28acb
19:55 jnthn whiteknight: Yes, that way.
19:56 whiteknight thanks
19:59 jnthn whiteknight: Be aware that it's a small lie perhaps.
20:00 jnthn whiteknight: The proto object is actually constructed by subclassing the actual class.
20:00 whiteknight oh
20:00 jnthn I think get_parrotclass would always give you the class that instances have.
20:00 jnthn Parrot's object model has no concept of an "empty instance".
20:00 jnthn So it was faked up that way.
20:00 whiteknight okay
20:01 whiteknight What I'm trying to write now is a mechanism to load methods from one class into another class
20:01 jnthn ...role composition? :)
20:01 jnthn Well, not quite but. :)
20:01 whiteknight so in NQP I have MyExporter::export(Foo::Bar, Foo::Baz)
20:01 whiteknight the problem is that depending on where I call that, Foo::Bar or Foo::Baz might be NameSpace or P6protoobject PMCs
20:02 whiteknight and if NameSpace, there might not be a Class PMC created for it yet. NameSpace.get_class() is returning Null
20:02 whiteknight so I'm becoming a little big flummoxed about how I can reliably get a list of methods from one and inject into the other
20:03 jnthn Yet another example of why classes and namespaces need a divorce. :/
20:03 jnthn If you have a namespace then it doesn't have methods, though? Methods are something a class has.
20:04 whiteknight I'm working on a unit testing library. I have a "testcase" base class, and we subclass that for individual tests I'm trying to inject a series of assertion functions into the testcase class so I can inherit them in child classes
20:05 whiteknight if I just do namespace importing, I can't see the functions in the subclass. If the methods aren't in the Class, they aren't visible in the MRO
20:05 jnthn Right, so they need to be add_method'd to the class.
20:06 whiteknight right
20:06 whiteknight There may no be any way to do what I want to do.
20:06 jnthn Well, if you can obtain a list of methods to add and iterate over them, calling .add_method, it should be do-able.
20:11 Chandon joined #parrot
20:12 Chandon left #parrot
20:22 bacek ~~
20:22 bacek jnthn, problem with pmc which holds method_cache
20:24 dalek parrot-test: 1d2c13e | Whiteknight++ | setup.nqp:
20:24 dalek parrot-test: install the xunit library
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/1d2c13e63e
20:24 dalek parrot-test: 6c5f73c | Whiteknight++ | mockobject/ (7 files):
20:24 dalek parrot-test: initial upload of Kakapo's mock-object infrastructure. Is not working and is not included in the build
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/6c5f73c70e
20:24 dalek parrot-test: fcddc4c | Whiteknight++ | .gitignore:
20:24 dalek parrot-test: +.gitignore
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/fcddc4c38d
20:24 dalek parrot-test: 2b6506f | Whiteknight++ | .gitignore:
20:24 dalek parrot-test: add generated .pbc files to .gitignore
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/2b6506fba6
20:24 dalek parrot-test: ecdb7d3 | Whiteknight++ | / (8 files):
20:24 dalek parrot-test: break up the xunit sources into a common library which could conceivably be used for other libs. A few other cleanups
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/ecdb7d3c13
20:24 dalek parrot-test: 4693175 | Whiteknight++ | .gitignore:
20:24 dalek parrot-test: +temporaries in common/ to .gitignore
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/4693175ccc
20:24 dalek parrot-test: 7437cbf | Whiteknight++ | common/Listener/TAP.nqp:
20:24 dalek parrot-test: +a missing file
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/7437cbf20f
20:24 dalek parrot-test: 47a4ebe | Whiteknight++ | .gitignore:
20:24 dalek parrot-test: add another folder to .gitignore
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/47a4ebec09
20:24 dalek parrot-test: 47e8747 | Whiteknight++ | / (2 files):
20:24 dalek parrot-test: redo assertions a little bit.
20:24 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/47e87476dc
20:28 jnthn bacek: Wait, are we talking about Rakudo or nqp?
20:28 bacek jnthn, nqp
20:29 bacek jnthn, may be it's GenGC bug
20:30 jnthn jan: Ah, OK, then I know what you're talking about :)
20:34 bacek jnthn, gotcha. Found it.
20:36 jnthn bacek: Found the problem?
20:36 jnthn bacek: OK. Let me know if you need any help
20:37 jnthn bacek: The cache is actually not meant to reference something that the meta-object doesn't also reference.
20:37 jnthn But we can't rely on that really.
20:37 bacek jnthn, I fixed write barrier I've put earlier.
20:37 bacek -        PARROT_GC_WRITE_BARRIER(interp, $1);
20:37 bacek +        PARROT_GC_WRITE_BARRIER(interp, STABLE_PMC($1));
20:37 bacek in publish_method_cache
20:37 lucian i was wondering, is there a lively lisp on parrot?
20:38 dalek nqp: 2255560 | bacek++ | src/ops/nqp.ops:
20:38 dalek nqp: Fix write barrier in updating method_cache
20:38 dalek nqp: review: https://github.com/perl6/nqp/commit/22555607c5
20:40 jnthn bacek: Aha! :)
20:40 arnsholt lucian: I've been considering starting a CL on Parrot, but I figured that a single HLL on my own is probably enough =)
20:42 lucian arnsholt: i have a bunch of ideas i'd like to try out at some point for a lisp-like language, i was wondering whether there's something to piggyback on
20:43 lucian i think there was a reasonable implementation of part of scheme, but it wasn't maintained
20:44 lucian arnsholt: btw, what HLL are you working on?
20:44 sorear jnthn: a generational copying GC needs to know *all* the old objects that have pointers to new objects so it can update addresses
20:45 sorear jnthn: "The cache doesn't reference antthing that the meta-object doesn't also reference" isn't good enough in the long run
20:45 jnthn sorear: True.
20:46 * jnthn is still getting used to where the write barriers need to go :)
20:51 arnsholt lucian: I'm working on a Prolog (https://github.com/arnsholt/parrotlog)
20:52 arnsholt And yeah, I think there's a dormant Scheme implementation, and I think I've seen a CL in the HLL list as well
20:52 lucian arnsholt: oh dear, you must be insane :)
20:53 arnsholt A bit. I found a way to implement backtracking with continuations (this doesn't help, does it? =) in a CL book, and figured I might as well try a Parrot HLL, since Parrot has continuations natively
20:53 arnsholt I quite like Prolog, TBH. When you need non-deterministic search, it really can't be beat =)
20:58 lucian arnsholt: i think its syntax is a huge failure, otherwise it might be interesting
20:58 arnsholt What is it about the syntax you don't like?
20:59 lucian btw, backtracking with continuations isn't exactly crazy
20:59 lucian i just find it extremely hard to read
20:59 arnsholt Yeah, continuations are a pretty sane way to do it (once you're insane enough to grok continuations =)
21:00 arnsholt I find the syntax to be OK to read (although it turns out it's actually a bit less sane to parse)
21:00 arnsholt I find Lisp to be less readable TBH. Very nice way to program, but I don't really like the syntax =)
21:01 lucian arnsholt: ah, i disagree with that :)
21:01 lucian lisps aren't exactly great to read, but still ok
21:01 lucian better than java, for me
21:01 arnsholt I can probably agree on the Java point
21:01 arnsholt I just find Lisp code to be a bit monotonous when I have a full page of code
21:02 lucian arnsholt: yes, that is one of its failings. clojure is getting better with the nice literals, and their use in syntax (function arguments are vectors [a b c])
21:02 arnsholt I'm a Perl man at heart, so I'm more "different things should look different" than "homoiconicity FTW"
21:03 lucian ah. i'm a python nut, i guess. i value readability above many things
21:03 arnsholt I have a friend who disagrees violently on that last point ^^
21:03 lucian yes, i have a one of those too :)
21:03 lucian i may have said this before, i'd like to see something between python, lisp and yaml
21:05 arnsholt Hmm. Python-y Lisp should be pretty feasible, now that you mention it
21:05 moritz it's sad that even with a good toolchain, it's much hard work to build a compiler for a new programming language up to a point where you can actually use it
21:05 dalek nqp: f6b7f76 | moritz++ | t/p6regex/01-regex.t:
21:05 dalek nqp: make p6regex tests runnable again
21:05 dalek nqp: review: https://github.com/perl6/nqp/commit/f6b7f76f7c
21:06 lucian arnsholt: actually, that has been researched to a point. look for Ginger
21:06 lucian arnsholt: http://ging3r.org/learn.html
21:06 arnsholt moritz: Yeah, I guess. I think part of the problem is that compilers are kinda hard, as well =)
21:06 lucian moritz: part of the appeal of lisps is the democratisation of the compiler
21:09 arnsholt ging3r.org doesn't resolve for me, but I did find some blogposts
21:11 lucian arnsholt: there's a nice research paper, Ginger: Implementing a new Lisp family syntax. it's like he read my mind
21:12 lucian arnsholt: hmm, i can't resolve ging3r.org anymore either. did i break it somehow?
21:33 cotto mikehh, pong (not around for long though)
21:35 kid51 joined #parrot
21:35 dalek parrot: adba550 | jkeenan++ | lib/Parrot/Manifest.pm:
21:35 dalek parrot: '{id}' element no longer needed.
21:35 dalek parrot: review: https://github.com/parrot/parrot/commit/adba5503b6
21:37 cotto aloha, clock?
21:37 aloha cotto: LAX: Sun, 13:37 PST / CHI: Sun, 15:37 CST / NYC: Sun, 16:37 EST / UTC: Sun, 21:37 UTC / LON: Sun, 21:37 GMT / BER: Sun, 22:37 CET / TOK: Mon, 06:37 JST / SYD: Mon, 08:37 EST
21:48 dalek parrot-test: 15c3d05 | Whiteknight++ | common/Assertions.nqp:
21:48 dalek parrot-test: Assert::throws does not take a type argument. We arne't subclassing exceptons without kakapo
21:48 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/15c3d0526b
21:48 dalek parrot-linear-algebra: 41759e3 | Whiteknight++ | t/ (77 files):
21:48 dalek parrot-linear-algebra: remove the use() directives, which were necessary previously. That logic will be handled in the new parrot-test
21:48 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/41759e3737
21:48 dalek parrot-linear-algebra: fb000d2 | Whiteknight++ | t/harness:
21:48 dalek parrot-linear-algebra: don't rely on Kakapo FileSystem anymore.
21:48 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/fb000d2342
21:48 dalek parrot-linear-algebra: c3c7944 | Whiteknight++ | t/ (5 files):
21:48 dalek parrot-linear-algebra: start fixing tests
21:48 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/c3c7944a08
21:49 dalek parrot-linear-algebra: f18597c | Whiteknight++ | t/ (4 files):
21:49 dalek parrot-linear-algebra: many fixes to the harness and the testlib. We are running all tests and passing several. Still many failures, probably related to Kakapo-related things that aren't there anymore
21:49 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/f18597c679
21:49 dalek parrot-linear-algebra: d573e0b | Whiteknight++ | t/ (19 files):
21:49 dalek parrot-linear-algebra: fix several more tests, but many more failures still to go
21:49 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/d573e0bc38
21:49 dalek parrot-linear-algebra: ec705ce | Whiteknight++ | t/testlib/methods/ (17 files):
21:49 dalek parrot-linear-algebra: more fixes
21:49 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/ec705cefb0
21:49 dalek parrot-linear-algebra: c32b085 | Whiteknight++ | t/ (4 files):
21:49 dalek parrot-linear-algebra: more fixes, but now the test suite does not run to completion
21:49 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/c32b085a17
21:49 dalek parrot-linear-algebra: 5c136e3 | Whiteknight++ | t/pmc/complexmatrix2d.t:
21:49 dalek parrot-linear-algebra: fix complexmatrix2d tests so that it passes. We're running all test again, and now passing the vast majority of them
21:49 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/5c136e39f4
21:50 particle joined #parrot
21:50 bacek_at_work ~~
21:55 sorear left #parrot
21:56 sorear joined #parrot
21:56 bluescreen joined #parrot
21:56 Kristaba left #parrot
22:07 rurban_ joined #parrot
22:10 rurban left #parrot
22:10 rurban_ is now known as rurban
22:16 dalek parrot: cccb01e | jkeenan++ | lib/Parrot/IO/File.pm:
22:16 dalek parrot: Eliminate remaining svn-related functions.
22:16 dalek parrot: review: https://github.com/parrot/parrot/commit/cccb01e719
22:19 ambs left #parrot
22:38 Andy left #parrot
22:41 protorom joined #parrot
22:41 eternaleye_ is now known as eternaleye
23:00 PacoLinux left #parrot
23:22 protorom left #parrot
23:38 Themeruta is now known as NotFound
23:43 Kapace joined #parrot
23:51 kid51 darwin/ppc: make fulltest PASS at cccb01e71961 (that's non-optimize, compile with gcc, link,ld with g++)

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

Parrot | source cross referenced