Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-09

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 kid51 Why stuck so?
00:00 * kid51 is ignorant of these issues.
00:00 * Infinoid didn't do it
00:01 Infinoid C99 has NAN too
00:01 chromatic We're stuck because we can't rely on certain compilers on certain platforms implementing a decade old specification.
00:02 chromatic By which I mean "Microsoft can't get C99 working in Visual Studio."
00:03 pmichaud ouch.
00:04 Infinoid so instead of working around MSVC, we're working around C89
00:04 pmichaud my $b = sub ($arg) { $a := $arg };
00:04 chromatic Exactly.
00:04 pmichaud actually, ouch for:
00:05 pmichaud my $b = sub ($arg) { ... }    # contents don't matter
00:05 jonathan pmichaud: What happens with that?
00:06 kid51 chromatic:  thanks for the explan.
00:06 jonathan Oh, lexical subs.
00:06 pmichaud cloning a sub doesn't clone its properties.
00:06 jonathan ah, jebat...
00:06 jonathan We can probably fix that.
00:06 pmichaud except....
00:06 purl i heard except was it easy to setup?
00:06 pmichaud we've already gone through and fixed things to make sure that cloning didn't copy properties.
00:07 jonathan We did?
00:07 jonathan Ah, we have the copy op do it, right?
00:07 pmichaud yes, because we don't want   my $b = $a;   to suddenly cause $b to be readonly just because $a is.
00:07 jonathan Ah.
00:07 jonathan Yes.
00:08 jonathan So basically, the sub loses it's sig?
00:08 pmichaud yes.
00:08 jonathan Ouch.
00:09 AndyA joined #parrot
00:10 pmichaud I wonder if we really want an ObjectRef here.
00:10 pmichaud although that doesn't do it, because the properties are still on the Sub.
00:10 pmichaud I could special-case it in infix:=, but that seems wrongish.
00:11 jonathan It's not exactly performant.
00:12 * jonathan has a fix for Inf/NaN on MSVC but you do nee wanna see it.
00:12 * pmichaud eagerly awaits the patch/diff/whatever for MSVC  :-)
00:12 * pmichaud does so want to see it.
00:13 nopaste "jonathan" at 85.216.157.73 pasted "sick, wrong, works great" (18 lines) at http://nopaste.snit.ch/15248
00:13 pmichaud note that the standard is case-insensitive Inf and NaN
00:13 pmichaud also, "    Inf"  and "    nan    "  should work.
00:14 jonathan I did say it was wrong. ;-)
00:14 jonathan But anyway, if we fixed up detection of these two cases, we could do something like this.
00:14 jonathan Apart from, we'd need to maintain it for every platform... :-S
00:15 pmichaud what does 0/f do?
00:15 jonathan f is set to 0.0 earlier on
00:15 pmichaud oh
00:15 pmichaud 0/0.0
00:15 jonathan 0/0 is NaN
00:15 pmichaud okay.
00:15 jonathan If you write a literal 0/0 the compiler gives an error.
00:15 pmichaud ah.
00:15 pmichaud MSVC FTL
00:16 jonathan MSVC FAIL
00:16 pmichaud anyway, I'd be infavor of the patch.
00:16 jonathan Detecting endianness and just setting the right bit-pattern may end up being easier...
00:16 Infinoid that will probably vary depending on IEEE float-ness
00:16 jonathan In its current form, or after I fix up spacing and casing?
00:17 jonathan Sadly, it still doesn't get us right through arith.t.
00:17 jonathan Though further.
00:18 jonathan Hmm. NaN/NaN still fails :-S
00:19 jonathan Somehow on Win32 it seems dividing by a NaN is a divide by zero?!
00:20 Infinoid well, that is what the code says
00:22 jonathan Infinoid: Huh? Which code?
00:22 Infinoid can you get some hex output of what a NaN float actually contains?  it may actually look like a 0, from the CPU's perspective
00:22 Infinoid or close enough to make it trigger a math exception
00:22 jonathan You're suggesting Win32 NaNs don't look the same as Linux NaNs?
00:24 Infinoid I kinda doubt it, since ours don't SIGFPE
00:24 jonathan Gah.
00:24 jonathan What a mess.
00:24 purl PLEASE DO NOT MAKE A MESS IN HERE
00:25 * jonathan makes a mess all over purl
00:25 Whiteknight NAN is specified in the IEEE standard. they don't change per platform
00:25 jonathan Right, that's what I thought.
00:25 Infinoid that's true of platforms conforming to the IEEE standard
00:25 Whiteknight Since all the NAN/INF stuff happens in the processor hardware, I find it hard to believe that it is different on Win32/Linux
00:26 Infinoid well, lets find out.  get a NaN, cast it to long and printf(%x) it
00:26 Infinoid for me, it's 0x80000000
00:27 dalek r35232 | pmichaud++ | branches/rvar2/languages/perl6/src/builtins:
00:27 dalek : [rakudo]:  If we copy a sub, make sure its $!signature property follows.
00:27 dalek : It might be better at some point to have a way associate signatures
00:27 dalek : with Subs by something other than properties.
00:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35232
00:28 jonathan Infinoid: It's quite late here, I'd rather sleep. ;-) But will try and look at it a bit more tomorrow.
00:28 particle jonathan: could you at least make that #define PARROT_NAN_QUIET and #define PARROT_INFINITY_POSITIVE inna header somewhere?
00:28 Whiteknight hmmmm, NaN should have all 1s in the exponent
00:28 jonathan particle: Which bit?
00:28 purl Which bit is probably the time part? Anyone?
00:28 Infinoid strange, NaN and Inf both give me the same thing.  either the casting logic is munging my bits or I'm not seeing the whole thing
00:28 jonathan Infinoid: I think the casting logic will be doing something.
00:28 particle whiteknight: NaN has a range of values according to the ieee 748 spec
00:28 jonathan -s it and read the assembly to be sure ;-)
00:29 Infinoid right, time to do evil things with pointers.
00:29 Whiteknight Infinoid, you must not be seeing the whole thing. I guarantee that 0x80000000 is not NaN
00:29 pmichaud 0x80000000 looks like -0 to me :-)
00:29 Whiteknight IEEE 748 says that NaN should have all ones in the exponent, and a non-zero significand
00:29 jonathan Infinoid: It's more a coercion than a cast to go from a floating point type to a long.
00:29 particle if (strcmp(p, "Inf") == 0)
00:29 particle f = PARROT_INFINITY_POSITIVE;
00:30 particle and of course, some platforms have Inf, INF, or inf
00:30 Infinoid Inf=0x7f800000 NaN=0xffc00000  NaN/NaN=0xffc00000
00:31 Infinoid that's using evil pointers instead of casts
00:31 particle evil pointer arithmetic is fine
00:31 nopaste "Infinoid" at 96.238.213.50 pasted "float introspection" (24 lines) at http://nopaste.snit.ch/15249
00:32 particle we also need to force NaN != NaN, because some platforms don't do that correctly
00:32 particle however, i think core parrot 1.0 platforms all get that part right
00:33 Whiteknight evil pointer arithmetic is the only real way to do it
00:33 Infinoid yeah, makes sense.
00:33 particle with C89, perhaps
00:33 Infinoid does C99 have a printf format to dump float bits in hex?
00:33 particle any volunteers to update the appropriate pdd with some names for these?
00:34 Infinoid (heh, hex floats, there's another portability nightmare)
00:37 jonathan OK, I'm going to take some rest.
00:37 Infinoid sleep well, jonathan
00:37 pmichaud great work today, jonathan++
00:38 jonathan pmichaud: Thanks. Good luck with getting as close to merge as possible. :-)
00:38 pmichaud we're definitely closing in on it.
00:39 Infinoid I've done a lot of platform coding on ARM processors.  Over there, the float format changes completely depending on what processor you're running on, and how you built your gcc.
00:39 Infinoid since then, I've been avoiding floating point like the plague
00:40 Whiteknight It might be worthwhile for us to come up with a custom NaN and INF format, and write our own logic to check for them
00:41 Whiteknight It's going to be really hard to keep track of platform-specific stuff, especially non-IEEE formats
00:41 Infinoid a lot of projects do that, it makes sense to me.
00:42 Infinoid to be fair, it's mostly VMS, OS/390, and embedded platforms we're talking about here
00:42 Infinoid IEEE covers most of the rest
00:43 dalek r35233 | pmichaud++ | branches/rvar2/languages/perl6/src/parser:
00:43 dalek : [rakudo]: handle &-sigil in parameters
00:43 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35233
00:43 Infinoid so a strategy of "use IEEE where it works, and do it ourselves otherwise" seems reasonable to me.
00:44 Infinoid for some possibly very strict value of "works"
00:44 chromatic I'm comfortable drawing a line around Windows, Mac OS X, Linux, and whatever BSD we can get working and saying that we'll deal with everything else when we get reliable testing on them.
00:44 Whiteknight yeah, I guess we can deal with more portable floating point routines when we expand to cover more platforms
00:45 Whiteknight right now, all our target platforms are IEEE-compliant
00:45 Infinoid compiler breakage aside
00:48 Whiteknight right
00:49 Whiteknight I had to write an IEEE743 floating point unit in Verilog once. If you have the chance, pass
00:49 particle yep
00:50 particle let's not think about 24- or 80-bit floats
00:51 Infinoid speaking of oddly sized floats, I'm hoping we don't use "long double" anywhere (96 bits on my platform)
00:52 Infinoid cool, I have some spare time tonight.  hoping to bang away on the packfile pmcs a little more
00:52 clunker3__ joined #parrot
00:58 dalek r35234 | pmichaud++ | branches/rvar2/languages/perl6/src/parser:
00:58 dalek : [rakudo]:  Make pointy block parameters readonly again.
00:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35234
01:02 Fayland joined #parrot
01:25 GeJ I'm still confused about the difference between typeof and isa.
01:25 jimmy joined #parrot
01:26 GeJ typeof returns 'Foo;Bar', but 'Foo;Bar' won't match with isa.
01:26 chromatic typeof has to return a string.
01:26 chromatic isa can take a key
01:28 GeJ ['Foo';'Bar'] will match indeed. I was just wondering why 'Foo;Bar' wouldn't. But it's most certainly due to wrong assumptions on my side of the keyboard.
01:29 chromatic It's possible to go from a Key to a STRING without losing too much information, but the opposite is not true.
01:29 Debolaz joined #parrot
01:32 jimmy I run make on ubunut but failed.
01:32 jimmy s/ubunut/ubuntu/
01:33 jimmy a configure script  displayed syntax error
01:39 Infinoid jimmy: nopaste it please
01:39 purl it has been said that nopaste it is See /who is nopaste for the URL.
01:40 MariachiElf joined #parrot
01:41 GeJ purl: pastebin ?
01:41 purl somebody said pastebin was see nopaste. or see shadowpaste
01:41 GeJ purl: nopaste ?
01:41 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others)
01:45 jimmy Infinoid: I run it yesterday, and I had no network night.
01:45 jimmy s/run/ran/
01:52 Coke chromatic: we could add typeof_p_p
01:52 chromatic I'm not sure that's useful though.
01:52 Coke we could make a key lime pie with it.
01:52 chromatic I do like pie.
01:52 Coke mmmm.
01:53 * Coke is about another week away from having his `home office' not look like compusa from 1992 exploded.
01:55 pmichaud we already have typeof_p_p
01:55 pmichaud and it does what you would want
01:55 pmichaud $P0 = typeof $P1
01:56 pmichaud $I0 = isa $P1, $P0    #  generally true
01:56 * Coke learns not to trust chromatic.
01:56 Infinoid jimmy: oh, ok.  sadly, I don't see that syntax error here
01:56 pmichaud P6object, PCT, and other things heavily rely on typeof_p_p
01:56 jimmy do we have typeof_p_n?  n means null
01:56 chromatic I don't think we have any ops with n type.
01:57 Coke the _p _s _i _n  correspond to the registers; null isn't a register type, it's a value for P or S
01:57 Coke you could do "null $P1; typeof $P2, $P1"
01:57 pmichaud using typeof on a null PMC gives a "null PMC" exception.
01:57 Coke pmichaud: Doctor, it hoits when I do dis.
01:58 pmichaud to check if a PMC is null, use   $I0 = isnull $P0
01:58 pmichaud or   "if null $P0 goto <label>"
01:58 jimmy yes, it gives a exception
01:58 Infinoid wait, what?  I thought "n" was NUMVAL
01:58 Coke it is.
01:59 pmichaud it is.
01:59 chromatic I meant n for NULL
01:59 jimmy everytimes before I want 'typeof $P', i need 'if null $P0 goto ...'?
01:59 pmichaud if you think that your register might be null, yes.
01:59 Coke or you can register an exception handler.
01:59 pmichaud that also.
01:59 * Coke wonders if "errorson" covers that case.
01:59 jimmy I think I can typeof $P0 directly
02:00 jimmy without if null goto <lable>
02:01 jimmy do we need typeof_p_n?
02:01 pmichaud no.
02:01 Coke there is no _n
02:01 pmichaud (note that _n normally means "num")
02:02 Coke (pmichaud said it better)
02:02 pmichaud but assuming you mean "do we need typeof to work on null PMC?", the standard answer to date has been that we throw an exception whenever trying to use the null PMC.  The only (very recent) exception to that rule is 'isa'
02:02 jimmy but I should use 'if null $P0 goto <label>' before I want to use 'typeof $P0'
02:02 pmichaud jimmy: if $P0 might be null, yes.
02:03 pmichaud jimmy: or you can set an exception handler to catch the exception if/when it comes.
02:03 jimmy typeof works fro PMCNULL, but does not work for NULL
02:03 jimmy s/fro/for/
02:03 Coke you shouldn't see NULL in bytecode.
02:04 Coke only PMCNULL.
02:04 Coke and when we've been saying null here, we mean parrot PMCNULL, not C NULL
02:04 pmichaud sorry, I've only been talking about bytecode.  Coke is correct, that NULL should never arise in bytecode.  If it does, then that's an error on the part of whatever produced the NULL.
02:04 jimmy I can create NULL  in pir.
02:04 Coke jimmy: how?
02:05 jimmy in pipp: var_dump(var_dump($)); because var_dump is void , that creates NULL
02:05 jimmy it returns NULL.
02:05 pmichaud a pipp NULL isn't the same as a C NULL.
02:06 Coke ... do we really need null_i and null_n ?
02:06 pmichaud PHP has its own idea of the meaning of "NULL", but it doesn't mean the same a C's NULL.
02:06 jimmy no, not PHP NULL
02:06 jimmy not PHP NULL, if it is ,we can typeof it.
02:07 pmichaud then whatever is handling var_dump in PIPP is a bug, because we should never see NULL at the PIR level.
02:07 jimmy so in var_dump , before I use typeof $P0, I must use if null $P0 goto <label>, I don't like that.
02:07 pmichaud that's the way it is.
02:07 dalek r35235 | coke++ | trunk/src/ops:
02:07 dalek : [docs] minor doc clarification.
02:07 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35235
02:07 Coke jimmy: if you're checking it with null $P0, that's a PMCNULL.
02:08 pmichaud if you don't like doing the extra check, then need to talk to the PIR designers about it :-|
02:08 jimmy yes, because the user can crreate NULL with void function
02:08 pmichaud I've asked before and was basically told we shouldn't do that.
02:08 chromatic That's a bug in the code then.
02:08 Coke jimmy: void /pir/ function?
02:08 jimmy a function just use .return in pir
02:09 Coke ok. moment.
02:09 jimmy you can remove if null $P0 goto .... in var_dump, and then make test will failed.
02:10 pmichaud sure, because you get a null PMC exception.
02:10 jimmy yes.
02:10 Coke bare ".return" is a syntax error.
02:10 Coke do you mean ".return()" ?
02:11 jimmy yes.
02:11 nopaste "Coke" at 72.228.52.192 pasted "some confusion between NULL and PMCNULL" (12 lines) at http://nopaste.snit.ch/15250
02:12 Coke in PIR, 'null' refers to what's defined as PMCNULL in C.
02:12 Coke when you say "NULL" it makes us think C's NULL, which is something else.
02:12 Coke if parrot hits a PMCNULL, it usually gives you a nice exception. If it gets a NULL, it will probably segfault.
02:12 chromatic Does anyone else have to Ctrl-D twice with parrot -?
02:13 Coke chromatic: "option -? not known"
02:13 pmichaud "parrot -"
02:13 purl rumour has it "parrot -" is different from "parrot perl6.pbc"
02:13 pmichaud not "parrot -?"
02:13 jimmy it is that, if you use 'null $P0' and 'typeof $P0' will give you a exception
02:13 Coke jimmy: yes.
02:14 jimmy .return() is the same as null
02:14 pmichaud yes, I have to Ctrl-D twice.
02:14 Coke chromatic: I do not.
02:14 jimmy .return() is the same as null $P0
02:14 Coke I hit it once, I get:
02:14 pmichaud I have to Ctrl-D twice if I enter code.  I do not if I do it first.
02:14 Coke error:imcc:syntax error, unexpected $end in file '-' line 1
02:15 Coke chromatic: I only have to do it once, even with code (invalid or valid)
02:15 jimmy coke: why we can't typeof $P0 directly?
02:15 chromatic You *can*.
02:15 Coke an exception isn't a fatal thing.
02:15 Coke you can catch it.
02:17 jimmy in pipp, it is not a exception.
02:18 nopaste "coke" at 72.228.52.192 pasted "itle" (11 lines) at http://nopaste.snit.ch/15251
02:18 jimmy maybe pipp is a exception?
02:18 chromatic I don't know how Pipp's and PIR's semantics differ; certainly they're not the same.
02:18 pmichaud pipp needs to know how to handle PMCNULL when it sees it.
02:18 nopaste "coke" at 72.228.52.192 pasted "slight fixup to last post" (12 lines) at http://nopaste.snit.ch/15252
02:19 pmichaud In this case, I suspect that means checking for null prior to using typeof.
02:19 Coke jimmy: parrot isn't going to be an exact match for each high level language.
02:19 Coke as I am sadly aware. =-)
02:20 jimmy Coke++
02:20 Coke tcl: puts Coke--
02:20 polyglotbot OUTPUT[Coke--␤]
02:20 jimmy the code at nopaste works well
02:20 Coke oh. one more fix, needs a 'pop_eh' after the eek:
02:21 Infinoid eek pop, eh?
02:21 Coke I have not yet memorized the new syntax.
02:21 Coke eekee pop. hes famous.
02:22 * Coke is tired of looking at this mess and goes upstairs to kill giant walking mushrooms with the force and a lightsaber.
02:33 chromatic TimToady, ping.  If you don't send in your bio, we'll make something up, and I have in mind leprechauns and aliens and Sean Connery.
02:50 gravity joined #parrot
02:51 kid51 joined #parrot
03:24 Fayland joined #parrot
04:33 jimmy msg masak you say : 你最后怎么样? should be: 你最近怎么样? i think.
04:33 purl Message for masak stored.
04:38 dalek r35236 | infinoid++ | trunk/t/pmc (3 files):
04:38 dalek : [pdd13] Split the tests in packfile.t into per-pmc test files
04:38 dalek : (packfiledirectory and packfilesegment for now).
04:38 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35236
04:38 dalek r35237 | infinoid++ | trunk (2 files):
04:38 dalek : [pdd13] Implement and test PackfileRawSegment methods.
04:38 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35237
04:38 dalek r35238 | infinoid++ | trunk (2 files):
04:38 dalek : [pdd13] Implement and test PackfileConstantTable methods.
04:38 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35238
04:52 dalek r35239 | pmichaud++ | branches/rvar2/compilers/pct/src/PAST:
04:52 dalek : [pct]:  Allow PAST::Val nodes to serve as block references.
04:52 dalek : Adjust capture_lex for anonymous blocks.
04:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35239
04:53 dalek r35240 | pmichaud++ | branches/rvar2/languages/perl6/src/parser:
04:53 dalek : [rakudo]:  Refactor handling of lexical type names in parameters.
04:53 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35240
05:06 dalek r35241 | pmichaud++ | branches/rvar2/languages/perl6/src/parser:
05:06 dalek : [rakudo]:  Fix global * twigil.
05:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35241
05:12 dalek r35242 | pmichaud++ | branches/rvar2/languages/perl6/src/classes:
05:12 dalek : [rakudo]:  Update 'is copy' trait.
05:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35242
05:14 TiMBuS joined #parrot
05:22 TiMBuS joined #parrot
05:39 dalek r35243 | pmichaud++ | branches/rvar2/languages/perl6/src/builtins:
05:39 dalek : [rakudo]:  Converting Role methods to PERL6MULTISUB requires extra work.
05:39 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35243
05:44 TiMBuS joined #parrot
05:45 rhr joined #parrot
06:03 dalek r35244 | pmichaud++ | branches/rvar2/languages/perl6/src/parser:
06:03 dalek : [rakudo]:  Make variable redeclarations a warning instead of fatal.
06:03 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35244
06:12 dalek r35245 | pmichaud++ | branches/rvar2/languages/perl6/src/parser:
06:12 dalek : [rakudo]: ::Typename is declarational only in a declarational context.
06:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35245
06:15 TiMBuS joined #parrot
06:25 mberends joined #parrot
06:34 dalek r35246 | pmichaud++ | branches/rvar2/languages/perl6/src/parser:
06:34 dalek : [rakudo]: Corrected version of ::Type in declarational context.
06:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35246
06:42 jimmy joined #parrot
07:09 chromatic joined #parrot
07:16 dalek r35247 | petdance++ | trunk/compilers/imcc:
07:16 dalek : consting, and using strcat the way it should be.
07:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35247
07:38 jrockway joined #parrot
07:54 pdcawley joined #parrot
08:02 iblechbot joined #parrot
08:20 jrockway joined #parrot
08:36 elmex joined #parrot
08:48 dalek r35248 | jquelin++ | trunk/languages/befunge:
08:48 dalek : tabs to spaces
08:48 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35248
09:07 dalek r35249 | jquelin++ | trunk/languages/befunge:
09:07 dalek : new sub stack__pop()
09:07 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35249
09:09 dalek r35250 | jquelin++ | trunk/languages/befunge:
09:09 dalek : using stack__pop() in stack__duplicate()
09:09 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35250
09:11 masak joined #parrot
09:16 Eevee joined #parrot
09:17 dalek r35251 | jquelin++ | trunk/languages/befunge (2 files):
09:17 dalek : instruction p implemented (put value)
09:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35251
09:22 dalek r35252 | jquelin++ | trunk/languages/befunge:
09:22 dalek : new sub stack__push()
09:22 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35252
09:24 dalek r35253 | jquelin++ | trunk/languages/befunge (2 files):
09:24 dalek : instruction ! implemented (logical not)
09:24 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35253
09:26 dalek r35254 | jquelin++ | trunk/languages/befunge:
09:26 dalek : using stack__push() in maths__push_number()
09:26 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35254
09:26 Eevee joined #parrot
09:39 dalek r35255 | jquelin++ | trunk/languages/befunge (2 files):
09:39 dalek : instruction | implemented (vertical if)
09:39 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35255
09:42 dalek r35256 | jquelin++ | trunk/languages/befunge:
09:42 dalek : typo: ! and | are different, dammit!
09:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35256
09:43 kj joined #parrot
09:46 dalek r35257 | jquelin++ | trunk/languages/befunge (2 files):
09:46 dalek : new instuction g implemented (get value from playfield)
09:46 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35257
09:48 dalek r35258 | jquelin++ | trunk/languages/befunge (2 files):
09:48 dalek : cleaning sub names
09:48 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35258
09:48 dalek r35259 | jquelin++ | trunk/languages/befunge:
09:48 dalek : bad copy'n'paste... get value is g, not p
09:48 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35259
09:51 dalek r35260 | jquelin++ | trunk/languages/befunge (2 files):
09:51 dalek : instruction - implemented (substraction)
09:51 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35260
09:53 jimmy https://trac.parrot.org/parrot/timeline is too slow,
09:55 alvar joined #parrot
09:55 dalek r35261 | jquelin++ | trunk/languages/befunge (2 files):
09:55 dalek : instruction # implemented (trampoline)
09:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35261
10:06 dalek r35262 | jquelin++ | trunk/languages/befunge:
10:06 dalek : fix: trampoline flag is 2, not 1
10:06 dalek : using _flow__flag_set() for better readability
10:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35262
10:13 dalek r35263 | jquelin++ | trunk/languages/befunge:
10:13 dalek : comment update
10:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35263
10:14 dalek r35264 | moritz++ | trunk/languages/befunge/config/makefiles:
10:14 dalek : [befunge] s/pasm/pir/g in the Makefile
10:14 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35264
10:16 dalek r35265 | jquelin++ | trunk/languages/befunge (2 files):
10:16 dalek : instruction , implemented (output char)
10:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35265
10:18 dalek r35266 | jquelin++ | trunk/languages/befunge:
10:18 dalek : instruction $ implemented (pop stack)
10:18 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35266
10:23 dalek r35267 | jquelin++ | trunk/languages/befunge (2 files):
10:23 dalek : instruction ` implemented (compare)
10:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35267
10:29 dalek r35268 | jquelin++ | trunk/languages/befunge (2 files):
10:29 dalek : instruction + implemented (addition)
10:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35268
10:31 dalek r35269 | jquelin++ | trunk/languages/befunge (2 files):
10:31 dalek : instruction / implemented (division)
10:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35269
10:33 dalek r35270 | jquelin++ | trunk/languages/befunge (2 files):
10:33 dalek : instruction % implemented (modulus)
10:33 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35270
10:36 dalek r35271 | jquelin++ | trunk/languages/befunge (2 files):
10:36 dalek : instruction \ implemented (swap stack)
10:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35271
10:37 dalek r35272 | jquelin++ | trunk/languages/befunge:
10:37 dalek : clean up old pasm + fix comments
10:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35272
10:37 jimmy masak: have you recieved my message?
10:37 masak jimmy: don't think so. which one?
10:38 masak ah, now I got something :)
10:38 jimmy yes.
10:38 masak ah, makes sense. 你最近怎么样?
10:39 tomyan joined #parrot
10:39 jimmy 还好,现在在上班
10:39 jimmy 你要上班吗?
10:40 dalek r35273 | jquelin++ | trunk/languages/befunge (2 files):
10:40 dalek : instruction . implemented (integer output)
10:40 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35273
10:40 masak 好,好
10:41 moritz that last time I saw such characters was on perlmonks: http://www.perlmonks.org/?node_id=735022 ;-)
10:41 masak jimmy: did you ask whether I want work?
10:41 jimmy I asked whether you are working now.
10:41 dalek r35274 | jquelin++ | trunk/languages/befunge:
10:41 dalek : removing comment about porting in progress
10:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35274
10:42 masak jimmy: I thought 要 meant 'want'.
10:43 masak jimmy: 对,我现在也在上班
10:46 masak lunch &
10:46 dalek r35275 | jquelin++ | trunk/languages/befunge (2 files):
10:46 dalek : instruction @ implemented (end)
10:46 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35275
10:49 dalek r35276 | jquelin++ | trunk/languages/befunge:
10:49 dalek : sub reordering + maths__mul() implemented
10:49 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35276
10:49 dalek r35277 | jquelin++ | trunk/languages/befunge:
10:49 dalek : instruction * implemented (multiplication)
10:49 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35277
10:51 dalek r35278 | jquelin++ | trunk/languages/befunge:
10:51 dalek : cleaning main prog a bit
10:51 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35278
10:58 dalek r35279 | jquelin++ | trunk/languages/befunge (2 files):
10:58 dalek : instruction ? implemented (go away)
10:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35279
11:00 dalek r35280 | jquelin++ | trunk/languages/befunge (2 files):
11:00 dalek : cleaning pseudo random stuff, now done with Random pmc
11:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35280
11:02 cotto joined #parrot
11:02 dalek r35281 | jquelin++ | trunk/languages/befunge:
11:02 dalek : fix vertical if direction
11:02 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35281
11:06 dalek r35282 | jquelin++ | trunk/languages/befunge:
11:06 dalek : fix comments
11:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35282
11:07 dalek r35283 | jquelin++ | trunk/languages/befunge:
11:07 dalek : fix comments
11:07 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35283
11:19 ruoso joined #parrot
11:24 dalek r35284 | jquelin++ | trunk/languages/befunge (2 files):
11:24 dalek : instruction & implemented (integer input) -- not tested
11:25 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35284
11:30 dalek r35285 | jquelin++ | trunk/languages/befunge (2 files):
11:30 dalek : instruction ~ implemented (input char) -- not tested
11:30 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35285
11:36 dalek r35286 | jquelin++ | trunk/languages/befunge:
11:36 dalek : remove legacy pasm comments
11:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35286
11:46 alvar joined #parrot
11:47 riffraff joined #parrot
11:48 gaz joined #parrot
11:58 dalek r35287 | jquelin++ | trunk/languages/befunge:
11:58 dalek : removing unknown instruction catch-all
11:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35287
11:58 dalek r35288 | jquelin++ | trunk/languages/befunge:
11:58 dalek : end doesn't need a flag
11:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35288
11:59 kid51 joined #parrot
12:00 dalek r35289 | jquelin++ | trunk/languages/befunge (2 files):
12:00 dalek : fix io__input_integer call (bad sub name)
12:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35289
12:00 kid51 Is there a problem with our mailing lists?  The last post I see on parrot-dev was dated 9:16 am ET yesterday -- 22 hours ago.
12:01 dalek r35290 | jquelin++ | trunk/languages/befunge:
12:01 dalek : handling division by zero
12:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35290
12:03 dalek r35291 | jquelin++ | trunk/languages/befunge:
12:03 dalek : chomping line when inputing
12:03 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35291
12:20 jimmy joined #parrot
12:20 dalek r35292 | jquelin++ | trunk/languages/befunge:
12:20 dalek : implemented status in debug mode
12:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35292
12:22 ruoso joined #parrot
12:24 dalek r35293 | jquelin++ | trunk/languages/befunge:
12:24 dalek : adding breakpoint implemented
12:24 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35293
12:30 dalek r35294 | jquelin++ | trunk/languages/befunge (2 files):
12:30 dalek : fix col breakpoint checking
12:30 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35294
12:31 dalek r35295 | jquelin++ | trunk/languages/befunge:
12:31 dalek : removing legacy pasm comments
12:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35295
12:38 dalek r35296 | jquelin++ | trunk/languages/befunge:
12:38 dalek : fix breakpoint adding
12:38 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35296
12:39 kid51 okay, I made a successful post on parrot-dev.  So I guess there was simply no activity during those hours.
12:41 dalek r35297 | jquelin++ | trunk/languages/befunge:
12:41 dalek : removing breakpoint implemented
12:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35297
12:42 dalek r35298 | jquelin++ | trunk/languages/befunge:
12:42 dalek : updated changes
12:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35298
12:44 dalek r35299 | jquelin++ | trunk:
12:44 dalek : announcing befunge is working to world
12:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35299
12:50 GeJ jq: bravo
12:51 moritz now you need some more test cases
12:52 jq i'm going to send a mail to parrot@
12:52 Lorn joined #parrot
13:05 cotto joined #parrot
13:15 jonathan hi all
13:15 moritz hi jonathan
13:18 * jonathan does a spectest run on rvar2 while he eats lunch
13:19 * kid51 to $job
13:19 masak ahoj jonathan
13:21 pmichaud hello, jonathan
13:22 jq http://jquelin.blogspot.com/2009/01/b​efunge-on-parrot-interpreter-now.html
13:22 shorten jq's url is at http://xrl.us/bebytm
13:22 Coke_away world, please file helpful bug reports. thanks.
13:23 pmichaud jonathan: we pass all of the non-integration tests except for S12-class/parent_attributes.t and S12-subset/subtypes.t
13:23 pmichaud I know how to fix the first; I haven't looked at subtypes.t yet.
13:24 masak jq++
13:24 pmichaud afk, kids to school
13:25 Whiteknight joined #parrot
13:25 jonathan pmichaud: After nomming sandwich, I'll look at S12-subset/subtypes.t.
13:30 jimmy masak: 要 meant need
13:30 masak jimmy: ah. makes sense.
13:30 masak so "I need to work", right?
13:30 jimmy sometimes meant want
13:31 jimmy 要 sometimes meant 需要, sometimes meant 想要
13:31 moritz it's nice if you can make your needs being your wants also ;-)
13:31 jimmy the former meant need, and the later meant want.
13:31 masak right.
13:32 masak and the meaning of just 要 is determined by context.
13:32 jimmy in perl, it needs context
13:33 jimmy masak: yep
13:33 masak gotcha.
13:35 kj jq++ # befunge revival
13:36 Whiteknight jp++
13:36 moritz karma jq
13:36 purl jq has karma of 77
13:36 masak karma moritz
13:36 purl moritz has karma of 409
13:37 Whiteknight karma Whiteknight
13:37 purl whiteknight has karma of 541
13:37 Whiteknight !!!
13:37 Whiteknight shit, I didn't think it was anywhere near that high
13:37 jimmy karma jimmy
13:37 purl jimmy has karma of 46
13:37 jq funny thing is that jquelin (my svn account) has now more karma than me :-)
13:37 moritz karma jquelin
13:37 purl jquelin has karma of 96
13:38 jimmy karma: masak
13:38 jimmy karma masak
13:38 purl masak has karma of 73
13:38 Whiteknight karma C
13:38 purl c has karma of 7422
13:38 jimmy karma parrot
13:38 purl parrot has karma of 24
13:38 Whiteknight parrot++
13:38 Whiteknight :)
13:38 masak karma Whiteknight
13:38 moritz karma C++
13:38 purl whiteknight has karma of 541
13:38 purl c++ has karma of -80
13:38 masak (c++)--
13:38 Whiteknight (c++)--
13:38 jimmy karma 卓明亮
13:38 purl 卓明亮 has neutral karma
13:39 masak 卓明亮++
13:39 jimmy karma Zhuo Mingliang
13:39 purl zhuo mingliang has neutral karma
13:39 jimmy karma Mai Gao
13:39 purl mai gao has neutral karma
13:39 jimmy maigao++
13:39 * masak prefers to keep all eggs in one basket in this case :)
13:49 jimmy joined #parrot
13:49 jimmy Parrot::OpsFile: Unrecognized line: 'inline op end() :base_core :check_event :flow {
13:49 jimmy '!
13:49 jimmy make: *** [lib/Parrot/OpLib/core.pm] 错误 9
13:50 jimmy I can't run 'make' On ubuntu
13:50 jimmy make: *** [lib/Parrot/OpLib/core.pm] error 9
13:50 moritz jimmy: did you do a 'make realclean' before?
13:51 jimmy yes
13:51 moritz if not, try that first
13:51 mj41 joined #parrot
13:51 jimmy nopaste?
13:51 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
13:51 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others)
13:52 nopaste "jimmy" at 121.34.38.123 pasted "make failed on ubuntu" (9 lines) at http://nopaste.snit.ch/15254
13:54 Coke jimmy: does 'svn st' report any local mods to your checkout?
13:55 dalek r35300 | moritz++ | trunk/languages/perl6/t:
13:55 dalek : [rakudo] add test for ~ in regexes to spectest.data
13:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35300
13:56 jimmy Coke: I don't know. I check out parrot on windows
13:56 moritz why?
13:57 jimmy I usually use windows.
13:57 Coke svn st is just the commandline version of "what local modifications do I have
13:57 Coke "
13:57 Coke If you're using tortoisesvn,you can "check for modifications", IIRC.
13:58 dalek r35301 | Whiteknight++ | trunk/docs/book:
13:58 dalek : [Book] Add more stuff about exceptions and handlers
13:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35301
13:58 jimmy yep, i am using tortoisesvn
13:59 jimmy but i ran make on windows didn't fail
14:00 Coke ... ok. on ubuntu, do you have an svn checkout?
14:00 jimmy yes
14:00 Coke are you using the command line svn client there?
14:00 jimmy no
14:01 Coke ok. however that client works on ubuntu, check for local modifications.
14:01 jimmy using 'svn st'?
14:01 moritz aye
14:02 Coke I am very confused.
14:02 jonathan pmichaud++ # Failed 10/279 test scripts. 70/7933 subtests failed.
14:02 Coke you just said you didn't have the command line svn client there. how did you check out parrot on ubuntu?
14:02 jimmy I had used it. but failed again.
14:02 jimmy Coke: i check out parrot on windows.
14:03 pmichaud jonathan: I'm thinking of just regressing on the integration/ tests
14:03 jimmy but make it on ubuntu
14:03 Coke did you move the source?
14:03 pmichaud the man-or-boy.t test doesn't lend itself to troubleshooting very easily, although I suspect it has something to do with making copies of subs.
14:03 jimmy nope.
14:03 Coke then use the /windows/ svn client to check for local modifications.
14:03 jonathan pmichaud: I'm a tad uncomfortable on that.
14:03 jimmy I installed ubuntu by using wu-bi
14:04 jonathan pmichaud: Because if we're failing those, it means we're likely to fail real world code.
14:04 moritz pmichaud: that test just passes subs around, I don't think it copies them
14:04 pmichaud jonathan: nah, the tests we're failing in integration/ are very non-real-worldish
14:04 jimmy Coke: why it didn't fail on windows?
14:04 jonathan pmichaud: If I can hear that November builds/runs on rvar2, I'll feel a lot more comfortable.
14:04 pmichaud moritz: closures get cloned.
14:05 Coke jimmy: I have no idea.
14:05 pmichaud jonathan: oh, I can test november.
14:05 Coke I'm just trying to find out if it's not building on ubuntu because you've changed anything.
14:05 Coke just ruling things out.
14:06 Coke perhaps the files have windows line endings because you checked them out there, and ubuntu doesn't like that.
14:06 nopaste "jonathan" at 85.216.157.73 pasted "pmichaud - current status on Win32 (local patch making arith fail less epicly)" (17 lines) at http://nopaste.snit.ch/15255
14:06 pmichaud jonathan: you might svn up t/spec, just to make sure.
14:07 pmichaud how does that nopaste compare with trunk?
14:07 jimmy will svn replace line edings with different platform?
14:08 moritz yes
14:08 jonathan pmichaud: Will find out - let me check.
14:08 jonathan pmichaud: I did make spectest, which I saw do an svn up
14:08 pmichaud okay.
14:09 pmichaud sprintf.t #39 is another nan/inf issue.
14:09 AndyA joined #parrot
14:09 jonathan pmichaud: Does any of arith.t fail for you?
14:09 pmichaud jonathan: no.
14:10 alvar joined #parrot
14:10 jonathan pmichaud: OK. I think all the ones that do fail in there are Inf and NaN related.
14:10 jonathan So I'll not worry about thsoe.
14:10 jonathan How is your t\spec\S16-filehandles\io.rakudo
14:10 jonathan ?
14:10 pmichaud it passes for me... but look at the bottom of the test file.
14:10 pmichaud weird.
14:10 pmichaud looks like it forces a fail on Win32
14:11 jonathan pmichaud: Yeah, that looks bad.
14:12 pmichaud I'm fine with todo'ing that test.
14:12 jonathan I vote to remvoe the Win32 test alltogether and fudge it for Pugs.
14:12 pmichaud or that.
14:12 pmichaud whatever works -- I don't have an easy way to test it.
14:12 jonathan unlink on Win32 doesn't to my knowledge have issues.
14:13 jonathan pmichaud: What about t\spec\S03-operators\context-forcers.rakudo?
14:13 pmichaud passes for me.
14:13 jonathan I wonder if it's Inf and NaN again.
14:13 pmichaud more inf/nan
14:13 pmichaud yes.
14:13 alvar joined #parrot
14:13 pmichaud is +"Inf",     Inf, "+ context forcer works (7)";
14:13 pmichaud is +"-Inf",   -Inf, "+ context forcer works (8)";
14:13 pmichaud is +"NaN",     NaN, "+ context forcer works (9)";
14:13 jonathan Right.
14:13 jonathan So skip it.
14:13 jonathan erm
14:14 jonathan I mean, I'll disregard it.
14:14 jonathan t\spec\S03-operators\numeric-context.rakudo is presumably those too?
14:14 pmichaud yes.
14:14 * jimmy is re-trying co parrot on ubuntu && making again.
14:14 donaldh joined #parrot
14:14 pmichaud numeric-context.t is mostly inf/nan tests.
14:15 jonathan Then that leaves me with the two you mentioned and 3 integration tests failing.
14:15 pmichaud I know how to fix parent_attributes.t
14:15 gryphon joined #parrot
14:15 jonathan OK.
14:15 Whiteknight irc logs?
14:15 purl irc logs are nothing like http logs...  very low overhead and storage
14:15 jonathan I'll take on subtypes.t
14:15 pmichaud so if you focus on subtypes we should be in good shape.
14:15 Whiteknight Hey, where are the irc logs stored?
14:15 Whiteknight (I can never remember the damn url)
14:15 pmichaud irclog?
14:15 purl irclog is http://irclog.perlgeek.de/parrot/today or see also: infrared clogs
14:16 kj Whiteknight: there's also a link on the developers section on parrot.org
14:16 kj s/on/in/
14:16 jonathan pmichaud: Oh, odd. harness says
14:16 jonathan t\spec\S12-subset\subtypes.rakudo                       21    6  1-3 22-24
14:16 jonathan But when I run it at the command line, I only get 1 through 3 failing... :-|
14:17 moritz jonathan: maybe a bad plan?
14:17 jonathan moritz: maybe
14:17 pmichaud bad plan, yes.
14:17 pmichaud plan currently says 21
14:17 moritz november fails more tests in rvar than in trunk
14:17 pmichaud moritz: rvar, or rvar2 ?
14:17 moritz rvar2
14:18 pmichaud okay, just confirming.
14:18 donaldh the log url used to be in the motd too
14:18 pmichaud I wonder how many things november did to workaround our param-passing bugs (or relied on our param-passing bugs), though.
14:18 moritz for example t/uri/01.t dies with "still alive
14:18 moritz sorry
14:18 moritz dies with
14:18 moritz Null PMC access in get_string()
14:18 moritz current instr.: 'parrot;Perl6Object;CREATE' pc 619 (src/classes/Object.pir:371)
14:18 moritz after the first test
14:19 pmichaud okay -- I have to run an errand, then will do parent_attributes.t, then will look at November.
14:19 donaldh speaking of which, the motd / Topic is empty
14:19 moritz donaldh: no, it's not ;)
14:19 pmichaud I also have an $otherjob phone call in 1h40
14:20 moritz donaldh: it might be a synchronization problem between the various irc.perl.org servers
14:20 donaldh ah.
14:20 dalek r35302 | jonathan++ | branches/rvar2/languages/perl6/src/parser:
14:20 dalek : [rakudo] Correct sub name that we call. Fixes subtypes.t
14:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35302
14:20 moritz 15:19 -!- Topic for #parrot: Parrot 0.8.2 "Feliz Loro" Released  http://www.parrot.org/news/2008/Parrot-0.8.2
14:21 jimmy after re-co parrot, make works now.
14:22 donaldh jonathan: going back to our real_self discussion from a couple of days ago
14:22 szabgab who is here from legal@parrot ?
14:22 szabgab I got Your message to parrot-directors awaits moderator approval
14:23 donaldh jonathan: the only way real_self could be changed is using memcpy in methods like clone().
14:23 jonathan donaldh: OK. Did you try removing it/references to it?
14:24 donaldh I did.
14:24 donaldh Spectests all pass.
14:24 jonathan Did anything change?
14:24 jonathan OK
14:24 jonathan In that case, I expect it must now be unused.
14:24 donaldh The only behaviour that could possibly change is that gc would mark the original that was cloned, for example.
14:25 donaldh But without real_self it won't.
14:25 donaldh That looked like an unintended side-effect.
14:25 AndyA joined #parrot
14:25 jonathan Sounds like one to me.
14:25 jonathan I'd post the patch to the list to see if anyone objects.
14:25 donaldh If it was intended then it would need to be signposted.
14:30 Whiteknight I'm not sure there's any benefit to GC marking the original after a clone is created
14:30 Whiteknight Unless cloning is a shallower copy then I suspected
14:30 Whiteknight s/shallower/more shallow/
14:33 nopaste "donaldh" at 144.254.91.104 pasted "PATCH: removing real_self from struct PMC" (56 lines) at http://nopaste.snit.ch/15256
14:37 Whiteknight donaldh, I'm testing that patch now
14:38 Whiteknight Maybe you should post something from the list or to trac to get some feedback. There might be a hidden use of this value that I am not aware of
14:40 donaldh Are rt and trac synced?
14:40 moritz no
14:40 donaldh perlbug goes to rt right?
14:40 moritz new patches/tickets should go to trac
14:41 pmichaud ...removing real_self?  I was kinda hoping/wondering if that would be useful for Subs to maintain a pointer to their original PMC
14:42 pmichaud but perhaps that's actually something different.
14:42 jonathan pmichaud: That was about exactly the opposite of what real_self was added for. :-)
14:42 pmichaud jonathan: okay.
14:42 dalek r35303 | Whiteknight++ | trunk/include/parrot:
14:42 dalek : [include] Fix small comment typo
14:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35303
14:42 jonathan pmichaud: subtypes.t is sorted out
14:42 jonathan I'm looking at integration tests now; left pa one to you.
14:42 donaldh I'll create a ticket on trac
14:43 Whiteknight jonathan, what was real_self added for in the first place?
14:44 jonathan Whiteknight: So that when a PMC was acting as just storage for attributes when it was subclassed as a HLL object, we could still dispatch vtable and methods calls back down to the HLL object.
14:44 jonathan So we got overriding right.
14:44 jonathan It worked pretty well.
14:44 jonathan I've no idea, how Allison has it works these days.
14:44 jonathan I've not looked.
14:44 jonathan I *hope* the answer isn't, that it doesn't work.
14:45 jonathan But I imagine we'd have had people complain by now if it didn't work.
14:45 Whiteknight Judging by a quick grep, it really doesn't appear to have any purpose anymore
14:45 jonathan *nod*
14:45 jonathan donaldh tried removing it and there were no ill effects
14:46 donaldh Whiteknight: It gets clobbered whenever the PMC header gets memcpyed e.g. during clone. So more side-effects than code.
14:47 donaldh The bug submission instructions on trac are out of date (still rt) https://trac.parrot.org/parrot​/wiki/NewParrotDeveloperGuide
14:47 Whiteknight yeah, those instructions need major help
14:51 pdcawley joined #parrot
14:54 jonathan pmichaud: ping
14:54 pmichaud jonathan: pong
14:54 dalek r35304 | pmichaud++ | branches/rvar2/languages/perl6/src/classes:
14:54 dalek : [rakudo]:  Restore WHENCE properties on .new.
14:55 dalek : t/spec/S12-class/parent_attributes.t passes again.
14:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35304
14:55 jonathan pmichaud: Question or maybe bug.
14:55 jonathan I have a loop that looks like
14:55 PerlJam jonathan: is that like truth or dare?
14:55 jonathan for prime_factors_mult($n) -> @a  {
14:55 PerlJam :)
14:55 jonathan :)
14:55 jonathan If I do
14:55 jonathan say prime_factors_mult($n).perl;
14:55 jonathan I get things like
14:56 jonathan [[2, 2], [5, 1]]
14:56 jonathan So, an array of arrays of 2 elements
14:56 jonathan However
14:56 pmichaud wait
14:56 jonathan for prime_factors_mult($n) -> @a  {
14:56 jonathan say @a.WHAT;
14:56 jonathan say @a.elems;
14:56 pmichaud [[2, 2], [5, 1]]  doesn't have to be an array of arrays
14:56 pmichaud it could be Lists
14:57 jonathan Hmm, this is likely the problem.
14:57 jonathan We do one iteration of the loop it seems
14:57 pmichaud because List and Array both perl-ify the same.
14:57 dalek r35305 | infinoid++ | trunk (10 files):
14:57 dalek : [cage] Fix some "make codetest" failures (c_code_coda, c_indent, c_parens,
14:57 dalek : linelength, tabs, trailing_space).
14:57 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35305
14:57 jonathan oh no
14:57 dalek r35306 | infinoid++ | trunk/src/charset:
14:57 dalek : [cage] Apply updates from "make headerizer".
14:57 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35306
14:57 jonathan We do an iteation for each of them
14:57 jonathan The thing is that @a.WHAT there gives Array as I'd expect
14:57 jonathan But @a.elems gives 1.
14:57 pmichaud well, yes
14:57 jonathan Where I'd expect 2.
14:57 pmichaud @a forces things into an Array
14:58 pmichaud let's assume that prime factors returns   ((2,2), (5,1))
14:58 pmichaud (which it probably does)
14:58 pmichaud then the for loop evaluates that result in list context
14:58 pmichaud which is flattening
14:58 pmichaud so we end up with (2, 2, 5, 1)
14:58 pmichaud each of those elements is then passed to the block
14:58 jonathan pmichaud: OK, here's a very short example to discuss.
14:58 pmichaud the block has -> @a
14:58 jonathan > my @a = [1,2],[3,4]; for @a -> @b { say @b.elems }
14:58 jonathan 1
14:58 jonathan 1
14:59 jonathan perl6: my @a = [1,2],[3,4]; for @a -> @b { say @b.elems }
14:59 polyglotbot OUTPUT[2␤2␤]
14:59 pmichaud yes ys
14:59 pmichaud I know
14:59 pmichaud we had a discussion about this on #perl6 a little earlier today (more)
14:59 pmichaud consider this one:
14:59 pmichaud sub foo(@a) { say @a.elems; };  foo([1,2,3]);
14:59 jonathan (first result is for rvar2 - this is what underlies the failure in 99problems-31-to-40.rakudo)
15:00 pmichaud current consensus on #perl6 is that this returns 1.
15:00 jonathan Right.
15:00 pmichaud so, your short example would do the same.
15:00 jonathan OK. That would suggest that the test is, therefore, wrong.
15:00 pmichaud yes.
15:01 pmichaud which is why I was thinking of regressing the integration tests.  many are wrong.
15:01 pmichaud because they mis-interpret array parameter passing.
15:01 pmichaud (either that or the rvar2 branch does, but I'm betting it's the tests that are wrong.)
15:02 PerlJam Is there some signature syntax for "unpacking" [1,2,3] into @a automatically in that sub?
15:02 jonathan -> [$a, $b] { ... } # is I think valid Perl 6
15:02 PerlJam (treat it as if you'd done foo(1,2,3) instead)
15:02 jonathan But maybe won't do what you want.
15:02 pmichaud PerlJam: note that foo(1,2,3) is entirely different.
15:02 pmichaud PerlJam: you probably meant  foo((1,2,3))
15:03 PerlJam pm: er, yes thanks  :)
15:03 * pmichaud runs another spectest in rvar2
15:03 jonathan pmichaud: OK, if we're regressing them because they are wrong, that's different to regressing them because we have bugs.
15:04 jonathan And not really regressing in some senses. :-)
15:04 pmichaud jonathan: ...and we don't know yet if the tests are wrong or if we have bugs.
15:04 AndyA joined #parrot
15:04 pmichaud but I don't want to hold the branch to find out.
15:04 pmichaud we have good reason to believe the tests may be wrong :-)
15:04 jonathan Right.
15:04 jonathan OK, I agree.
15:04 jonathan For the merge.
15:05 pmichaud I'm running one final spectest.  If all of the tests sans t/spec/integration/ pass then I think I can start the merge.  And there will be much rejoicing.
15:06 jonathan pmichaud: I think that, other than tests that fail for NaN/Inf reasons, we are looking good on Win32.
15:06 jonathan (modulo integration tests which we agree on regressing on)
15:06 pmichaud This branch has been incredibly productive/useful.
15:07 jonathan Yes.
15:07 jonathan pmichaud++
15:07 pmichaud We can also go through and clear out our unused "helper functions" that we might've missed.  :-)
15:07 jonathan pmichaud: Did you do much with enums?
15:07 * jonathan hasn't looke dyet
15:07 pmichaud no.
15:07 pmichaud didn't touch them at all.
15:08 davidfetter joined #parrot
15:08 jonathan Ah, but they pass...OK.
15:08 pmichaud since they appear to work in the branch, I'll .... right.
15:08 jonathan OK, the problems they have must have been unrelated.
15:08 jonathan erm
15:08 PerlJam git diff master..rvar2 actions.pm     # so very useful to see just the changes :)
15:08 jonathan damm, that's not at all what I mant to type
15:08 jonathan The problems they had must have been related to other things which we've now fixed.
15:08 pmichaud I mainly want to get them to generate code in guts.pir or somewhere like that instead of actions.pm
15:09 jonathan Sure.
15:09 jonathan Once you do that, !keyword_role and !keyword_has can be ripped out of guts.pir, I expect.
15:09 pmichaud (if that ends up making more sense, which I think it does)
15:09 jonathan It may do.
15:09 jonathan But don't want them too dynamic either.
15:10 pmichaud agreed, there's a balance to be struck there.
15:10 jonathan We need to register a bunch of type names from them in the actions.
15:10 jonathan (for type registry stuff)
15:10 jonathan Which I can now work on again. w00t.
15:13 pmichaud I can go clear up a bunch of tickets :-)
15:14 dalek r35307 | pmichaud++ | trunk/languages/perl6/docs:
15:14 dalek : [rakudo]: spectest-progress.csv update: 279 files, 6172 passing, 0 failing
15:14 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35307
15:14 * pmichaud optimistically starts the branch merge even before his spectest run is complete.
15:14 jonathan Go for it. :-)
15:15 particle joined #parrot
15:18 pmichaud yay, no merge conflicts.
15:18 pmichaud now let's see what broke.
15:18 * jonathan wonders how much effort to write actions for http://svn.chrisdolan.net/langu​ages/java/src/parser/grammar.pg
15:20 Whiteknight wow, quite a large grammar
15:21 jonathan Whiteknight: Yeah. But may be able to get some actions together for some of it quite fast.
15:21 jonathan Maybe a little project for one evening on the weekend, over some whisky. :-)
15:22 * jonathan has had a bottle of it left in his care
15:22 * pmichaud would need whiskey, or something stronger, to work on Java.
15:22 jonathan pmichaud: I can handle working on the compiler, but no way am I going to write the tests. ;-)
15:23 Whiteknight Last weekend I threw together the beginnings of a BCPL grammar. One day I'll try to write some actions for that
15:23 jonathan OH NO NOT THAT LANGUAGE!!
15:23 kj wasn't that where B came from?
15:23 * jonathan was lectured by its creator.
15:23 Whiteknight I found a COBOL grammar online and was thinking about converting it, but I don't have that kind of time or energy
15:24 jonathan kj: Apparently.
15:24 kj Whiteknight: haha, I tried that as well :-) Too much work
15:24 jonathan His lectures were enough to make me never want to look at the langague.
15:24 pmichaud "I found a COBOL grammar online and was thinking about converting it, but I don't want repetitive stress injury."
15:24 kj ISTR B is not, or at least very weakly typed
15:24 Whiteknight pmichaud: that too. COBOL isn't just bad for the mind, it's also bad for the fingers
15:24 jonathan "I found a COBOL grammar online and was thinking about converting it, but I did the one for English instead becasue it was easier."
15:24 pmichaud lol
15:25 jonathan kj: I think it was described as untyped.
15:25 Whiteknight "COBOL: Gets the job done, but you die on the inside"
15:25 jonathan kj: It had one type.
15:25 pmichaud so far all of the language tests post-merge are passing.  :-)
15:25 jonathan Which was the 32-bit integer. IIRC.
15:25 kj jonathan: well, that's kind of interesting :-)
15:26 jonathan Well, it was more interesting than the lecture.
15:26 kj java grammar: it's big, but all the alternatives-rules, they're trivial, and that would be a large part
15:27 * jonathan is fascinated with programming language design, but that course only left me feeling I could have delivered it better...
15:31 dalek r35308 | pmichaud++ | trunk (5 files):
15:31 dalek : [core]:  Changes to core merged from rvar2 branch.
15:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35308
15:31 dalek r35309 | pmichaud++ | trunk/compilers/pge/PGE:
15:31 dalek : [pge]:  Merged changes from rvar2 branch.
15:31 dalek : * Updated handling of namespace and grammar options
15:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35309
15:31 dalek r35310 | pmichaud++ | trunk/compilers/pct/src (5 files):
15:31 dalek : [pct]: Merged changes from rvar2 branch.
15:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35310
15:32 pmichaud only thing remaining is merging rakudo itself, and there I'm just waiting for the spectest run to complete.
15:46 * jonathan waits patiently
15:47 * Coke pokes jonathan.
15:47 * Coke pokes jonathan.
15:47 * Coke pokes jonathan.
15:47 * Coke pokes jonathan.
15:48 * jonathan bites Coke's finger
15:49 particle rakudo: my @x = 1, 2, 3; say "2nd is {@x[1]}";
15:49 polyglotbot OUTPUT[2nd is 2␤]
15:50 pmichaud r35311.
15:51 dalek r35311 | pmichaud++ | trunk (25 files):
15:51 dalek : [rakudo]:  Merge rvar2 branch to trunk.
15:51 dalek : This is a major refactor of variable and parameter handling in Rakudo.
15:51 dalek : jonathan++, particle++, and others for assistance with the branch.
15:51 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35311
15:52 jonathan Nice!
15:52 * PerlJam builds.
15:53 jsut|work joined #parrot
15:53 * pmichaud runs a test summary to see what this has done to our test count.
15:53 pmichaud (and to find passing TODOs)
15:55 * jonathan does a make spectest in trunk, so he knows what is broken.
16:00 particle pmichaud++ # i *jut* cancelled spectest in rvar, will build trunk now
16:05 Andy joined #parrot
16:06 jonathan pmichaud: I got some post-merge curiosities. :-|
16:06 jonathan t\spec\S05-metasyntax\regex.rakudo           1   256    14   20  5-14
16:06 jonathan t\spec\S06-multi\type-based.rakudo           1   256    ??   ??  ??
16:06 Andy joined #parrot
16:07 jsut|work joined #parrot
16:10 jonathan particle: Will be curious to know if you see the two fails I just pasted.
16:12 Eevee joined #parrot
16:12 dalek r35312 | infinoid++ | trunk (5 files):
16:12 dalek : [cage] More trailing whitespace fixes.
16:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35312
16:13 pmichaud I show no spectest failures in trunk.
16:13 jonathan Oddness.
16:13 purl i guess oddness is that the icons are on top of the google ads
16:13 * jonathan has no local diffs
16:13 pmichaud did you rebuild parrot and pct?
16:13 pmichaud and pge?
16:13 purl pge is the Parser Grammar Engine
16:13 jonathan I believe so.
16:13 pmichaud hmm.
16:13 jonathan Let me do a realclean just to be sure.
16:14 pmichaud after merge we're down to 6132 passing spectests in trunk.  I can live with that.
16:14 jonathan Have we untodo'd any of the unexpected WIN yet?
16:15 jonathan Hopefully autounfudge will win us something too.
16:16 lu_zero fudge?
16:16 purl i think fudge is http://compsoc.dur.ac.uk/~tsp
16:18 lu_zero o_O
16:18 jonathan Sorry for false alarm.
16:18 jonathan make realclean helped
16:19 jonathan lu_zero: It's tasty. :-)
16:19 pmichaud I'm looking at passing todo's now.
16:21 lu_zero O_o
16:25 Whiteknight fudge is also a tasty confection
16:25 purl okay, Whiteknight.
16:25 Whiteknight fudge is also how we make problems go away
16:25 purl okay, Whiteknight.
16:25 jonathan bbiab
16:29 jan joined #parrot
16:32 polyglotbot joined #parrot
16:32 Infinoid befunge: <@,,,"Hi!"
16:32 polyglotbot OUTPUT[Hi!]
16:33 Infinoid jq++
16:35 Eevee joined #parrot
16:38 AndyA joined #parrot
16:39 jhorwitz joined #parrot
16:40 jq hi Infinoid!
16:41 Whiteknight befunge: >"!iH",,,@
16:41 Whiteknight befunge: >"!iH",,,$
16:42 jq Whiteknight: uh,  your second example is an infinite program
16:42 * Whiteknight doesn't know enough befunge to make this work
16:42 lathos That's a good thing, though, right?
16:42 Infinoid I don't think polyglotbot has a timeout.
16:43 * Infinoid kills it
16:43 polyglotbot OUTPUT[Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H​i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!​Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi​!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H​i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!​Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H
16:43 polyglotbot ..i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi​!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H...
16:43 polyglotbot OUTPUT[Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H​i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!​Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi​!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H​i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!​Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H
16:43 polyglotbot ..i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi​!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H...
16:43 Whiteknight sorry for breaking it
16:43 pmichaud fudge is how we sweep our problems under a suitably large rug.  :-)
16:43 Infinoid its ok.  its not going to be very good for befunge anyway, as we're limited to unefunge and it will strip out some of the whitespace
16:44 Whiteknight how do I make it just go right, print out something, and then stop?
16:44 Infinoid (and I don't know why your first eval didn't work; it looks good to me.)
16:44 jq Whiteknight: stop is @
16:44 Infinoid befunge: "!iH",,,@
16:44 Whiteknight befunge: >"!iH",,,@
16:45 Whiteknight befunge: <"!iH",,,@
16:45 Zaba befunge: 91+"!dlrow olleH">:#,_@
16:45 Whiteknight befunge: <@,,,"!iH"
16:46 Infinoid I think it's just slow.
16:46 Whiteknight you know what would be a fun game? Making well-formed XML that also was valid befunge programs
16:46 Zaba we'll find out not soon then!
16:46 Whiteknight it would be like golfing, only terrible!
16:46 Zaba Whiteknight, it would be pretty easy actually
16:46 jq Infinoid: but some small programs like that don't even take a second!
16:46 Zaba <![CDATA[ v
16:47 Zaba it will go left and go down to _whatever_ is in the cdata block
16:47 Infinoid jq: its running in a virtual machine that's going into swap right now, and also rebuilding another copy of parrot in the background
16:47 jq Infinoid: oh, ok
16:49 Infinoid also, for some reason, >"!iH",,,@ seems to be infinite
16:49 * Infinoid wonders if it's chopping off the last character when loading the program
16:49 Infinoid but if that were true, my example shouldn't work either...
16:50 polyglotbot joined #parrot
16:51 Zaba befunge: 91+"!dlrow olleH">:#,_@
16:52 polyglotbot OUTPUT[Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello world!␤Hello
16:52 polyglotbot ..world!␤Hello world!␤Hello world!␤Hello world!␤He...
16:52 Zaba it does seem to strip the @..
16:53 Infinoid or do a laheyspace loop one character too early
16:53 Infinoid or something.
16:54 Infinoid befunge: "!iH",,,@
16:54 polyglotbot OUTPUT[Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H​i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!​Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi​!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H​i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!​Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H
16:54 polyglotbot ..i!Hi!Hi!Hi!Hi!Hi!Hi!Hi!Hi​!Hi!Hi!Hi!Hi!Hi!Hi!Hi!H...
16:55 Infinoid it's being run as: ./parrot languages/befunge/befunge.pbc /tmp/9ZGpsyfaCt
16:55 Infinoid and the tmpfile does contain the @.  but no newline
16:55 Zaba is it befunge93 or 98?
16:55 Infinoid its befunge93
16:56 Infinoid I can reproduce it on the command line here
16:56 particle Infinoid: what happens if you add the newline?
16:57 Infinoid it works.
16:57 particle well then.
16:57 peters joined #parrot
16:57 peters Hello
16:57 purl hey, peters.
16:57 Infinoid the befunge debugger looks like the @ isn't ending up in the laheyspace
16:57 Infinoid (5,0) - ',' (ord=44) dir=1 - stack=33,105,72
16:57 Infinoid bef>
16:57 Infinoid H(6,0) - ',' (ord=44) dir=1 - stack=33,105
16:57 Infinoid bef>
16:57 Infinoid i(7,0) - ',' (ord=44) dir=1 - stack=33
16:57 Infinoid bef>
16:57 Infinoid !(8,0) - ' ' (ord=32) dir=1 - stack=
16:57 Infinoid bef>
16:58 particle hi there, peters
16:59 Infinoid I think the "chopn line, 1" in load.pir is the culprit
17:00 peters recent commit (r35311) gives a [get_string() not implemented in class 'ResizableStringArray'] when I'm matching a grammar
17:00 peters .. in rakudo
17:00 * peters tries to produce a small test case
17:01 pmichaud peters: how are you matching the grammar?
17:02 peters ('http://foo:bar@localhost:0001/foo/bar/?foo#0' ~~ /^<Grammar::RFC3986::URI>$/).dump;
17:02 pmichaud yes, I need a small test case to track that one down.
17:03 peters I will try to reduce it
17:07 dalek r35313 | infinoid++ | trunk/languages/befunge:
17:07 dalek : [befunge] Don't chop off characters for source files which don't contain a trailing newline.
17:07 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35313
17:07 Infinoid befunge: "!iH",,,@
17:08 polyglotbot OUTPUT[Hi!]
17:08 Infinoid Whiteknight++ # spotting a bug on the very first attempt
17:09 * Whiteknight must be a totally awesome debugger
17:09 Infinoid Whiteknight> bt
17:10 Zaba hm
17:10 Zaba parrot befunge does spaces like sgml, i.e. not as in standards
17:10 Zaba otherwise it passes mycology!
17:13 peters pmichaud: I'm fumbling in the dark (tried some obvious cases without luck), would it be ok if I nopaste my current code?
17:13 hercynium joined #parrot
17:13 szabgab particle: CLA was sent
17:13 Whiteknight befunge: >"!iH",,,@
17:13 polyglotbot OUTPUT[Hi!]
17:13 Whiteknight !!!
17:13 * Whiteknight adds "Befunge Programming" to his resume :)
17:14 * PerlJam wonders what job would have that as a "useful to know" skill
17:14 PerlJam or worse, a _required_ skill
17:14 nopaste "mpeters" at 83.183.129.106 pasted "Grammar/RFC5234.pm" (6 lines) at http://nopaste.snit.ch/15258
17:14 nopaste "mpeters" at 83.183.129.106 pasted "Grammar/RFC5234.pm" (152 lines) at http://nopaste.snit.ch/15259
17:14 nopaste "mpeters" at 83.183.129.106 pasted "uri.p6" (9 lines) at http://nopaste.snit.ch/15260
17:14 Infinoid I use it for AI stuff.  it's a lot easier than most languages, to generate random jibberish and run it
17:15 Infinoid which means you can use genetic algorithms on it, directly
17:16 Infinoid aside from a few corner cases, there's no such thing as a parse error in befunge. :)
17:16 peters pmichaud: It worked before "major" commit
17:17 peters first nopaste should have been titled Grammar/RFC5234.pm
17:18 peters and second Grammar/RFC3986.pm
17:20 Whiteknight Infinoid: that's actually very clever! Using genetic algorithms to generate Befunge programs
17:20 Infinoid Whiteknight: Thanks, been a hobby of mine for years.  Looking to release it to CPAN in the near future.
17:21 Whiteknight Let me know when you do, I'd be very interested to see that
17:21 Infinoid Whiteknight: in the meantime, http://squawk.glines.org/wiki/evfunge is outdated but available.
17:24 pmichaud does rakudo implement ".parse" yet?
17:26 Whiteknight evfunge looks very cool!
17:26 nopaste "mpeters" at 83.183.129.106 pasted "minimal test case for pmichaud" (26 lines) at http://nopaste.snit.ch/15261
17:27 pmichaud having "grammar Foo;"  and "grammar Bar is Foo;"  in the same file is incorrect p6.
17:27 pmichaud needs to be  "grammar Foo { ... }"  and "grammar Bar is Foo { ... }"
17:27 pmichaud oh, sorry, they're in different files
17:27 PerlJam pm: they're in different files.
17:27 pmichaud didn't see that
17:27 pmichaud never mind.
17:27 purl Okie dokie
17:28 peters I missed 'use Grammar::Bar;' in Grammar::Bar but the error is the same
17:29 peters s/use Grammar::Bar/use Grammar::Foo/
17:29 pmichaud okay, checking
17:31 pmichaud shouldn't that just be  <Bar::any> ?
17:31 pmichaud yes, I now get the ResizableStringArray error.
17:31 pmichaud checking.
17:32 * jonathan is back
17:34 pmichaud I wonder how this used to work.
17:36 peters pmichaud: You are right, should have been /^<Bar::any>$/ but the reported error is the same
17:36 pmichaud peters: yes, I see it now.
17:36 pmichaud I don't know why it would've worked before r35311 though.
17:36 peters I can ensure  you it did work before,
17:36 peters my previous nopaste, worked
17:38 tomyan left #parrot
17:38 peters It worked until a couple of hours ago when I decided to svn up and complie
17:39 nopaste "mpeters" at 83.183.129.106 pasted "URI.pm (suck API wise but it did work before)" (142 lines) at http://nopaste.snit.ch/15262
17:39 pmichaud I believe you that it did work, I just don't know why.
17:40 pmichaud looks like it has to do with 'use' semantics
17:40 nopaste "mpeters" at 83.183.129.106 pasted "URI/Grammar.pm (for completeness)" (58 lines) at http://nopaste.snit.ch/15263
17:41 nopaste "pmichaud" at 72.181.176.220 pasted "this version works in current trunk" (21 lines) at http://nopaste.snit.ch/15264
17:42 peters strange, almost the same
17:42 pmichaud right, it has to do with 'use'
17:42 peters true
17:42 pmichaud ah, here we are.
17:43 pmichaud I now see the bug.. just have to decide how to fix.
17:44 peters pmichaud++ =)
17:47 * jonathan digs back into his Hague Grant.
17:47 jonathan My schedule at present is looking fairly empty of stuff next week. So hoping to get in lots of progress and get caught up.
17:48 lathos I'm planning to start hacking on string stuff very soon. It might make sense for me to branch.
17:48 lathos I'm getting my head around ICU at the moment.
17:48 jonathan lathos++ # yay! :-D
17:48 jonathan ICU working it out pretty soon. ;-)
17:48 lathos Argh.
17:51 Whiteknight I was half-interested in setting up an EBCDIC charset, I don't know if ICU supports that
17:55 quatrix joined #parrot
17:55 peters what would it take to convince Failure object to return -1?, index("bar" ) == 0 wont work, would have to use a regex or 'bar' eq  $input.substr(3)
17:56 pmichaud I think that index returns a StrPos
17:56 jq befunge: ">   <",,,,,@
17:56 polyglotbot OUTPUT[<   >]
17:56 pmichaud but regardless, I think you can check for definedness of .index
17:56 jq Zaba: ==> it doesn't do spaces as sgml
17:56 jq Zaba: i guess it's a bug in mycology
17:57 jq (as i indicates in my blog post)
17:57 Zaba jq, maybe.
17:57 peters pmichaud: sure can, but a bit ugly IMHO, if my $pos = .index('bar') && $pos == 0 {}
17:57 Zaba jq, its author is cooperative enough to possibly find out for sure, though
17:57 jq Zaba: i know, i've worked with him to enhance language::befunge (in perl5)
17:57 Whiteknight jq, what's your blog url?
17:58 jq Whiteknight: http://jquelin.blogspot.com
17:58 jq Whiteknight: ... but i sent the content of last post to parrot@
18:01 Whiteknight nice
18:05 Tene jonathan: think you could look at the loadlib stuff sometime?
18:06 jonathan Tene: Got the link to the ticket for it handy?
18:06 peters is C's inet_ntop/inet_pton exposed in any library?
18:06 pmichaud peters:  isn't it just
18:07 peters ok
18:07 pmichaud my $pos = .index('bar');
18:07 * peters was looking fore some existing code to normalize IPv6 hosts
18:07 dalek r35314 | jonathan++ | trunk/languages/perl6/src/builtins (2 files):
18:07 dalek : [rakudo] Get rid of !TYPECHECKPARAM, and make the one thing use it just do the check itself (will go away once we get Perl 6 prelude).
18:07 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35314
18:07 pmichaud $pos // fail 'bar not found'
18:08 quatrix hey, i just started checking out parrot and perl6, what's the correct way to use perl6 with parrot? what i've done is at top of my script "#!/usr/bin/parrot /usr/bin/perl6.pbc", which works, but looks little hackish :)
18:08 PerlJam quatrix: make perl6
18:08 pmichaud quatrix: we still don't have a good #! handler yet
18:08 PerlJam oops
18:08 quatrix so what i'm doing is fine? :)
18:09 PerlJam quatrix: or you could use the perl6 binary as I do.
18:10 pmichaud quatrix: it's about as good as we have at the moment.
18:10 pmichaud jonathan++  # ripping out code we don't need
18:11 pmichaud peters: I know what's causing the bug you're seeing, I just need a bit of time to be able to work it out.
18:11 jonathan pmichaud: Just wait until you see the next patch...
18:11 pmichaud peters: it's my #1 priority bug, if that's helpful.
18:11 peters pmichaud: no hurry, just glad you have identified it
18:12 PerlJam jonathan++ # removing the mud so we can see the beautiful sculpture underneath
18:13 dalek r35315 | jonathan++ | trunk/languages/perl6/src/builtins:
18:13 dalek : [rakudo] Rip out more unused code.
18:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35315
18:13 quatrix PerlJam,  oh, pbc_to_exe, nice! thanks
18:14 peters pmichaud: re .index: given "baz" { when my $pos = .index('foo') && $pos == 0 { ... } when my $pos = .index('foo') && $pos == 0 { ... } default { .. } } # quite ugly IMHO
18:14 quatrix another little question, i'm following some tutorial, that i think was written for pugs, and some of the stuff like 'readline' don't work for me using parrot. what should i make of this?
18:15 pmichaud peters:  only because you're making it ugly :-)
18:15 peters .. if all you want is to match beginning of a string
18:15 pmichaud given "baz".index('foo') { when .defined { ... } default { ... } }
18:16 pmichaud if you want to match the beginning of a string, then
18:17 dalek r35316 | fperrad++ | trunk/languages/lua (2 files):
18:17 dalek : [Lua]
18:17 dalek : - refactor dotty() with FileHandler.readline_interactive()
18:17 dalek : - increment Copyright millesime
18:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35316
18:17 dalek r35317 | jonathan++ | trunk/languages/perl6/src/builtins:
18:17 dalek : [rakudo] One more unused function I missed last time that we can now rip out.
18:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35317
18:17 pmichaud if substr("baz", 0, 3) eq 'foo' { ... }
18:17 pmichaud anyway, I don't design the language, I just implement it.
18:18 pmichaud If you want the return value of .index to be something different, you'll need to ask p6l :-)
18:18 jonathan And now I've ripped a load of stuff out, I'll add some things. :-)
18:20 nopaste "mpeters" at 83.183.129.106 pasted "pmichaud: I ended up using substr() but i whished index() would DWIM" (26 lines) at http://nopaste.snit.ch/15265
18:21 chromatic joined #parrot
18:22 pmichaud why not use regexes for that?
18:23 pmichaud when /^ '../' /
18:24 pmichaud when /^ './' /
18:24 pmichaud when /^ '/.' /
18:24 peters pmichaud: because IMHO it ended up more unreadable: http://nopaste.snit.ch/15266
18:25 peters but then, perhaps I'm a purist ;)
18:25 PerlJam aside from the @output.pop business those all look like you could use subst() on them.  (Note the lack of an "r" :)
18:25 braceta joined #parrot
18:25 pmichaud or even .trans
18:25 pmichaud although I don't know if .trans works on regex -- don't remember.
18:26 pmichaud but .trans allows whole arrays of substitutions to take place, like this is doing.
18:26 braceta joined #parrot
18:28 peters hmm, so it would be possible to rewrite http://nopaste.snit.ch/15266 or http://nopaste.snit.ch/15265 using .trans, I'll look into that tomorrow
18:30 geof joined #parrot
18:31 peters my C implementation was more logical and prettier IMO ;) http://nopaste.snit.ch/15267
18:31 nopaste "pmichaud" at 72.181.176.220 pasted "This version of the matching example works (for peters++)" (30 lines) at http://nopaste.snit.ch/15268
18:32 pmichaud peters: I recommend using the curly forms for now.
18:32 pmichaud In particular, I'm not sure that the semi-forms that you have are valid p6.
18:33 pmichaud I don't know if "use Foo;  module Bar is Foo;"   is allowed.
18:33 peters ok, thanks
18:33 peters pmichaud++
18:33 pmichaud (because a "module" statement using a semicolon has to be the first statement in the file)
18:35 ask_ joined #parrot
18:35 Theory joined #parrot
18:35 pmichaud anyway, lunch and errands -- bbiaw
18:35 peters but: class Bar { is Foo; ... } would be legal?
18:35 PerlJam peters: sure, but then you tried to write perl 6 like it was C  :)
18:36 pmichaud class Bar { is Foo; }   is legal, yes.
18:36 pmichaud Except that we don't know how to parse the "is Foo" part inside of the curlies yet.
18:36 peters ok
18:36 pmichaud it's not clear how STD.pm does it, even.
18:37 jonathan pmichaud: It's parsed as a package_declarator.
18:37 pmichaud jonathan: the 'is' is parsed as a package_declarator?
18:37 jonathan Oh, hmm.
18:37 jonathan OK, does is.
18:37 peters PerlJam: true, I ported p5 C/XS code to p6, I'll try to make it more p6:ish ;)
18:37 jonathan And trusts is.
18:37 jonathan token package_declarator:does { <sym> <.ws> <typename>
18:37 jonathan }
18:37 jonathan I assumed is would be as well.
18:38 pmichaud if 'is' is a package declarator, that kinda blows away   is()  as a function from Test.pm :-)
18:38 jonathan That is true.
18:38 peters PerlJam: but still I would prefer the p5 behavior of index()
18:39 PerlJam only because you're used to it probably.
18:41 PerlJam does rakudo actually implement StrPos and StrLen ?
18:41 peters I can't argue since I'm just a newbi at p6 syntax/language/features
18:41 PerlJam looks like not
18:42 jonathan PerlJam: I don't think so.
18:43 peters rakudo: 'Foo'.index('Bar').WHAT.say
18:43 polyglotbot OUTPUT[Failure␤]
18:44 Whiteknight rakudo: 'Foo'.index('o').WHAT.say
18:44 polyglotbot OUTPUT[Int␤]
18:45 Whiteknight rakudo: 'Foo'.index('o').say
18:45 polyglotbot OUTPUT[1␤]
18:45 * Whiteknight adds "Perl 6 Programming" to his resume :)
18:46 peters rakudo: if 'Foo'.index('Bar') == 0 { say 'Foo' }
18:46 polyglotbot OUTPUT[Use of uninitialized value␤Foo␤]
18:46 Theory joined #parrot
18:56 * particle gets 60 rakudo failures in trunk
18:57 jonathan particle: About the same.
18:57 jonathan It's Nan/Inf stuff.
18:57 particle ayep
18:57 particle i'm looking for the appropriate header to put things in
18:57 jonathan Things like?
18:58 particle PARROT_INFINITY_POSITIVE etc
18:58 particle PARROT_NAN_QUIET
18:59 chromatic include/parrot/datatypes.h
18:59 particle config.h has PARROT_INTVAL_MAX LONG_MAX
18:59 particle interpreter.h has PARROT_INTMAX 9
19:00 particle that's ugly naming, as i assume they're very different things
19:01 PerlJam where's that page that lists the parrot features and things that aren't implemented yet?
19:02 PerlJam never mind
19:02 purl Okie dokie
19:02 * PerlJam still never knows where to look
19:03 PerlJam I was thinking "rakudo" but wrote "parrot" anyway
19:06 dalek r35318 | jonathan++ | trunk (5 files):
19:06 dalek : [rakudo] Start getting the type registry stuff in place. This patch adds (currently stub) add_type and is_type method on Perl6::Grammar and inserts calls to them, following the STD.pm approach. No functional changes.
19:06 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35318
19:08 Theory joined #parrot
19:10 PacoLinux joined #parrot
19:12 Tene jonathan: https://trac.parrot.org/parrot/ticket/150
19:15 jonathan Tene: Thanks. Just going for a pizza now...will look on my return. :-)
19:16 Tene Thank you.
19:25 Coke rakudo todo?
19:25 Coke (aka raktudo.)
19:37 gp5st joined #parrot
19:40 gp5st Hello! so I found my way to http://www.parrotcode.org/docs/ops/ but I can't find where the list of values for each opcode is; i'd like to write/build an extreamly small version of the vm
19:41 gp5st i was thinking of just using p-code, but parrot seems to be a little more fun:)
19:42 chromatic gp5st, what do you mean by "list of values"?
19:45 gp5st opcode values, like exit would be 0x0000
19:46 PerlJam gp5st: so ... what would you use these values for if you had them?
19:47 chromatic include/parrot/oplib/ops.h in a configured Parrot source tree.
19:47 gp5st i want to write a very small vm
19:47 gp5st ah, i guess i didn't even think to look at the current source, i just thought there would be an overarching doc
19:48 gp5st by really small I mean 8k
19:48 PerlJam gp5st: or perhaps src/ops/ops.num
19:48 gp5st and as little memory overhead as humanly possible
19:48 lathos Rotsa ruck.
19:48 PerlJam gp5st: and where does parrot fall in, because it sounds like you're barking up the wrong tree so far :)
19:48 chromatic Do you want to execute Parrot bytecode or Parrot source code?
19:50 PerlJam gp5st: note that parrot has some 1300 or so opcodes.
19:50 gp5st bytecode
19:50 purl bytecode is the actual code that is executed
19:50 gp5st yeah, i know i'm barking up the wrong tree:-p
19:50 gp5st i would like to build an implementation (very simple one) for a microcontroller
19:51 gp5st i'd end up leaving out a lot of the IO system and prob the concurrency one was well, along with other things i deam less important that working:-p but those discisons will come as I write it and study it not before hand
19:52 gp5st i mean, programming embedded devices with perl or ruby or tickle would just be plain fun:)
19:53 lathos Also note that those opcodes often operate on complex object-oriented structures.
19:53 gp5st there also wouldn't be a jit
19:53 gp5st i know
19:53 lathos Well, if you can write a small fast interpreter for running Parrot bytecode, I recommend you call it "Parrot".
19:54 gp5st like i said, i was going to do p-code (from pascal) but this seemed more challenging:)
19:54 gp5st lol
19:54 gp5st well, we'll see how well i do at this
19:54 lathos I'm being serious. The reason Parrot is big and heavy is because it needs to be.
19:54 gp5st 8k is...not forgiving
19:55 gp5st i know, i don't claim to be a better programmer than the rest of everyone; i'll end up probably sacrificing a lot
19:55 gp5st and not having a very good stdlib on chip
19:55 particle gp5st: take a look at examples\c\nanoparrot.c
19:56 gp5st hmm
19:56 gp5st hey
19:56 gp5st sorry
19:56 gp5st got to go
19:56 gp5st thanks
19:56 gp5st ttyl
19:56 lathos Was that a troll?
19:56 chromatic I hope not.
19:56 chromatic I'd like to see Parrot 2.0 get a lot smaller.
19:57 lathos Oh, sure. I'd also love for it to be run faster, on 8k chips, and implemented by a single programmer as a college project. Doesn't mean that's going to happen though.
19:58 Whiteknight I think he was talking about a drastic subset of Parrot
19:59 particle maybe there will be something positive that comes out of it, like compared to parrot, that idea is Real Vaporware
19:59 Whiteknight not just a smaller better one
19:59 particle parrot supposedly has the ability to compile in fewer opcodes and pmc types, but it's never been tested
19:59 lathos Whiteknight: I don't think he understood the magnitude of what he was taking on.
19:59 PerlJam he never said better
19:59 particle would be nice of someone tried
19:59 chromatic 8k is awfully small.
20:00 Whiteknight It's similar to an idea I had a while back of designing a processor that used parrot bytecode natively
20:00 Coke perhaps gnu lightning would be a better fit there.
20:00 Whiteknight I was inspired by a processor design I saw that used Java bytecode natively
20:00 chromatic I told Allison the other day that I think we could drop C for PMCs and opcodes and write everything in terms of a language with 64 or 128 ops.
20:00 lathos How many ops does C have?
20:01 chromatic malloc/free, set value <width>, read value <width>, call by name, goto....
20:01 chromatic compare
20:02 chromatic You could do C with 64 ops.
20:02 chromatic Memory management would be even more painful.
20:02 Whiteknight chromatic, that's not a ad idea, but you'd need to design that language and implement a compiler for it
20:02 Whiteknight s/ad/bad/
20:02 lathos Whiteknight: Right, because more layers of indirection always make Parrot more efficient.
20:02 chromatic This one might not.
20:02 lathos That was sarcasm.
20:02 chromatic Provided we have a working JIT.
20:02 lathos Hrm.
20:03 lathos So, instead of using a language for which we have thirty years of compiler design experience, we get to write our own new language and create a compiler and a JIT for it.
20:03 chromatic If we can avoid using C calling conventions for some things and Parrot calling conventions from other things and C's execution model for some things and Parrot's execution model for other things, we avoid a lot of bottlenecks.
20:03 particle Whiteknight: we can compile it with perl 6!
20:03 Whiteknight chromatic, I like what you're saying and I'd like to subscribe to your newsletter
20:04 chromatic The Smalltalk people have been doing this for some 35 years.
20:04 chromatic I'm not saying it's easy or that it's definitely the best approach for Parrot, but it is possible.
20:04 lathos Or Haskell. Maybe we should write it in Haskell.
20:04 particle let's hire randal
20:04 PerlJam chromatic: it'll sure put a kink in that 1.0 release if you start that now  ;)
20:04 chromatic Oh, I'm definitely not starting this now.
20:04 masak joined #parrot
20:05 Whiteknight on a related note, how are we planning to wean parrot off the Perl 5 build system? What are we going to replace it with?
20:05 chromatic The interesting thing about JIT tracing is that you can inline a lot of calls to backing functions this way.
20:05 jonathan *sigh* We can't even get a "is this number than that number" comparrison to take a bloody sane amount of time under current Parrot.
20:05 PerlJam Whiteknight: parrot!  :)
20:05 jonathan (If it's a PMC.)
20:05 jonathan But I can't be bothered with that discussion again.
20:05 chromatic jonathan, exactly, thanks to the repeated conversions between calling conventions and such.
20:06 jonathan Indeed.
20:06 lathos I don't understand "Parrot calling conventions". Such a thing should not exist.
20:06 Whiteknight lathos, PCC is how PIR subroutines are invoked
20:06 * masak wants speed in Parrot -- the more, the better
20:07 Whiteknight PCC is actually very fast, when you're just jumping from address to address
20:07 chromatic Until you hit Parrot_pass_args.
20:07 lathos Yep, and the original hypothesis was "we can write core bits of Parrot in PIR without loss of speed." That hypothesis has been disproved, so we should now move on.
20:07 Whiteknight it's when you have to call a PIR function from C that takes forever
20:08 jonathan When we did a lookup in a 2D array that gaves us a function pointer and passed values from registers to it using the *C* calling conventions we were fast _and_ it was jittable.
20:08 Whiteknight well, once all the calling conventions get refactored and improved, we should see speed improvements
20:08 PerlJam why does it suddenly sound like there's a revolution brewing?
20:08 jonathan And yes, I'm sure there were reasons why we switched from that.
20:08 jonathan Anyways...
20:08 chromatic I don't know what the reason was for switching between "Look up parameters in known sets of registers" to "Pretend you don't have a register machine and pop registers as if they were on a stack."
20:09 Whiteknight The first way sounds much faster
20:09 lathos Oh, I know the reason.
20:09 chromatic It was.
20:09 * jonathan does something useful other than whining about design decisions he doesn't like and looks at Tene's ticket.
20:09 lathos People didn't actually understand the design.
20:09 lathos And stack machines are far, far easier to implement.
20:10 chromatic I'll say.
20:11 chromatic We should have saved a PMC register for a hash mapping :named names to register positions.
20:11 chromatic There, now we can do named parameters.
20:11 chromatic Slurpy?  We know how to do that.  Same with flat.
20:11 Tene jonathan++
20:12 Whiteknight The calling conventions system is definitely slated for overhaul. If we're going to do it we should definitely do it right
20:13 lathos We *did* do it right.
20:13 Whiteknight okay so we should re-do it right
20:13 masak :)
20:14 chromatic I don't know if I'd call the first version completely right, but I don't know when all of the context information spread out into various bits and pieces of parrot_interpreter_t rather than being in context_t.
20:14 chromatic Certainly any version of the calling conventions that didn't shuffle back and forth between varargs was much, much righter than this version.
20:14 Whiteknight see, I haven't been hacking on parrot to remember any of this stuff
20:15 Whiteknight ...haven't been doing it long enough...
20:16 lathos The bottom of ChangeLog scares me.
20:16 chromatic Not the whole thing?
20:16 lathos And I *still* haven't got string stuff right. It's depressing.
20:17 jonathan Tene: Did you have a patch that got Rakudo using .HLL?
20:17 jonathan Tene: And did this bug show with that patch applied?
20:17 Tene jonathan: yes, I do.  PM asked me to wait until after the rvar merge to apply
20:17 particle rvar is in!
20:17 Tene jonathan: this bug shows with trunk right now
20:19 Whiteknight While we have some people here,are there any objections to applying that real_self patch?
20:19 cjfields joined #parrot
20:19 chromatic +1
20:19 purl 1
20:20 jonathan Tene: Did you try it with Rakudo using .HLL though?
20:20 jonathan +1
20:20 purl 1
20:21 Whiteknight okay, I'm going to put it through
20:21 Tene jonathan: I tried it with .HLL 'parrot' in perl6.pir
20:23 particle looks like headerizer is busted due to some jit changes
20:23 Whiteknight damnit
20:23 particle $ nmake headerizer
20:23 particle Couldn't handle "void call_func(Parrot_jit_info_t *jit_info, void (*addr) (void))" at tools\build\headerizer.pl line 210.
20:23 dalek r35319 | Whiteknight++ | trunk (3 files):
20:23 dalek : [Core] Remove real_self member from PMC structure, because it's currently unused and possibly broken. Patch courtesy donaldh++
20:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35319
20:24 Whiteknight how do you mark a file for headerizer to ignore it?
20:25 particle /* HEADERIZER HFILE: none */
20:25 particle /* HEADERIZER STOP */
20:26 Tene jonathan: do you need me to apply .HLL 'perl6' ?
20:27 Whiteknight actually, I've got a fix coming down the pipeline for it
20:27 Whiteknight just testing it now
20:28 * PerlJam boggles at how amazingly fast git can update his working copy of parrot
20:29 Tene PerlJam: what system are you comparing it to?
20:29 PerlJam I just checked out the very first checkin to see what it looked like and it was nigh on instantaneous.
20:29 * particle boggles at how amazingly persistent git fanboys are
20:29 Infinoid it's not that git is fast, it's just that svn is slow.
20:29 Infinoid cvs is a lot faster than svn, too.
20:29 PerlJam Infinoid: yeah, true.
20:29 jonathan Tene: If it makes no more spectests fail than without it, +1 from me.
20:30 Infinoid that whole-tree locking thing has a ton of overhead
20:30 PerlJam particle: because git is scm done right :)
20:30 particle i think the git mascot should be a penguin in a black turtleneck
20:30 jonathan :-D
20:30 jonathan particle: And a "CHANGE" speech bubble, right?
20:30 pmichaud certainly we should be able to do  .HLL 'parrot'   and still have everything work.
20:31 particle jonathan++
20:31 PerlJam heh
20:31 jonathan pmichaud: In Rakudo?
20:31 jonathan Or in the thing that's using it?
20:31 pmichaud yes, in Rakudo.
20:31 pmichaud adding .HLL 'parrot' to perl6.pir _ought_ to be a no-op.
20:32 pmichaud if it's not, something is probably broken.  :-)
20:32 jonathan Aye, true.
20:33 * jonathan digs into trying to work it out.
20:33 pmichaud yes, switching Rakudo to .HLL 'perl6' is where we want to end up.  But I think a lot of other things have to change internally for that to work, so I'd like to see it as a patch/branch/whatever before putting it in trunk.
20:34 Tene pmichaud: it's a no-op afaict
20:34 pmichaud Tene: even for the load_bytecode issue you've been having?
20:34 Tene pmichaud: it's a no-op for the load_bytecode issues I'm having.
20:34 pmichaud okay.
20:34 pmichaud for some reason I had been thinking it wasn't.
20:35 Tene I can make a test case work when I run load_bytecode in .HLL 'parrot' in the demo.pir file.
20:36 dalek r35320 | Whiteknight++ | trunk/src/jit/i386:
20:36 dalek : [JIT] this file should be ignored by headerize
20:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35320
20:40 pmichaud *sigh*  we're going to have to fix our containers at some point again.  Oh well.
20:40 jonathan pmichaud: How so?
20:41 pmichaud we'll need to distinguish different types of ObjectRef
20:41 pmichaud sometimes we have ObjectRef that act as parameter wrappers, sometimes we have ObjectRef that act like scalars.
20:41 jonathan Ah.
20:41 pmichaud anyway, the current factoring will make that easy to do.
20:42 particle is that decomposable into roles?
20:44 pmichaud might be.
20:45 pmichaud but I might also be able to make the scalar container a subclass of ObjectRef and then do mmd based on it
20:45 pmichaud we'll see.
20:45 jonathan Tene: Writing .HLL 'parrot' makes it work for me...
20:47 Tene jonathan: in perl6.pir ?
20:47 jonathan Tene: No
20:47 jonathan .HLL 'parrot'
20:47 jonathan .sub main :main load_bytecode 'perl6.pbc' say "lived"
20:47 jonathan .end
20:47 jonathan For me (with line breaks inserted) prints "lived" and no errors.
20:47 Tene jonathan: that's the problem.  the issue is that when I run load_bytecode from a different HLL, it fails.
20:48 jonathan However, if I change that to say, HLL
20:48 jonathan oops, PH
20:48 jonathan P
20:48 jonathan Null PMC access in get_string()
20:48 jonathan current instr.: 'parrot;P6metaclass;add_parent' pc 106 (runtime\parrot\library\P
20:48 jonathan 6object.pir:146)
20:48 jonathan I get that.
20:48 Coke I presume p6.pbc starts with a .HLL 'parrot' ?
20:48 jonathan Coke: Think it doesn't have one.
20:48 Tene Coke: not right now.  that's the default.  nothing changes if that's added, though.
20:49 jonathan Tene: But yes, problem is with Perl6Str
20:49 Coke it sounds like there's a lookup in perl6.pbc that going after the current NS instead of the specific one it's in.
20:50 Tene Coke: loadlib in a pbc should work the same regardless of the HLL of the code loading it, no?
20:50 Coke wait, perl6string is a pmc?
20:50 Tene Coke: yes.
20:51 pmichaud Perl6Str might need to be defined in the perl6 hll
20:51 Coke perl6str is defined in the hll 'Perl6'
20:51 Coke shouldn't that be 'parrot' ?
20:51 Coke (until the switch)
20:52 pmichaud it's been working fine as Perl6 :-)
20:52 Tene Interesting.
20:52 jonathan pmichaud: Yeah, but we ain't been trying to make it work from other .HLLs either.
20:52 Coke tene: ticket number?
20:52 Tene Coke: 150
20:52 pmichaud hmmm, I think I'm misunderstanding the issue you all are looking at (I know there are several)
20:53 * Coke wonders if mdiep will return this week.
20:53 pmichaud we're trying to get it so that we can load the perl6.pbc bytecode from an HLL other than 'perl6'?
20:53 Tene pmichaud: yes
20:53 jonathan Right.
20:53 pmichaud okay.
20:53 pmichaud that's different from what I was thinking.
20:53 pmichaud and we run into the problem if perl6.pir is defined .HLL 'parrot'  ?
20:53 Tene pmichaud: no
20:54 pmichaud we get it if perl6.pir is defined .HLL 'perl6' then?
20:54 Tene pmichaud: well, it already is.  that's not relevant.  the .HLL of perl6.pir isn't what mappers.
20:54 pmichaud okay.
20:54 pmichaud I should go read the ticket.
20:54 Tene pmichaud: the problem is when the .HLL of the file *loading* perl6.pbc isn't the same HLL as perl6.pir
20:54 pmichaud and this is true for any .pbc, or just the perl6.pbc ?
20:55 Tene pmichaud: anything that uses loadlib
20:55 nopaste "Coke" at 65.91.151.195 pasted "this works." (9 lines) at http://nopaste.snit.ch/15270
20:55 jonathan Changing the hll line in the Perl6Str PMC to not be there, or to parrot, doesn't help,
20:56 jonathan Coke: Aha.
20:56 pmichaud Tene: loadlib directive, loadlib opcode, or both?
20:56 Tene pmichaud: both
20:56 Tene afaict
20:56 Coke also, tene, you need to use {{{ }}} around code snippets in trac. =-)
20:56 jonathan Coke: That works for me too.
20:56 jonathan OK, my guess is
20:56 pmichaud Tene: okay, thanks for walking me through the problem-to-date.
20:56 Tene https://trac.parrot.org/parrot/ticket/150
20:57 Tene Coke: feel free to edit the ticket.
20:57 jonathan When IMCC hits a .loadlib, it does load it
20:57 jonathan But somehow when we load_bytecode a library that uses one, we somehow miss it.
20:57 Coke tene;already doing so.
20:57 jonathan Oh, but wait
20:57 jonathan That woudln't explain why it does work
20:57 pmichaud jonathan: I dsagree.
20:57 jonathan When you have a different HLL.
20:57 pmichaud because when we do --target=pir, the .loadlib does get run from a load_bytecode opcode
20:58 jonathan *nod*
20:58 pmichaud (when we later run the .pir)
20:58 jonathan That too.
20:58 jonathan Hmm.
20:58 jonathan OK, certainly HLL related then.
20:58 pmichaud my guess is that running loadlib from load_bytecode gets confused about the current HLL
20:59 Coke cd ../
20:59 Coke ww
20:59 pmichaud cd ww/
20:59 pmichaud ..
21:00 Tene sudo getent shadow $USER
21:00 jonathan Does interp->class_hash stay the same, or change when the HLL does?
21:00 Coke Tene: note that a similar problem does not seem to manifest when loading 'tcl.pbc'
21:03 Coke I wonder if perl6 needs to have more .HLL directives spread about.
21:03 pmichaud but currently perl6 is running in the 'parrot' namespace, iiuc
21:03 pmichaud i.e., it doesn't have _any_ .HLL directives.
21:04 Tene Coke: I added .HLL 'parrot' to perl6.pir and it didn't help.
21:04 Coke p6meta = get_hll_global ['Perl6Object'], '$!P6META'
21:04 Coke that's in the sub where string is getting invoked from. you're changing the HLL in effect.
21:04 Coke It's not surprising that it doesn't work.
21:04 pmichaud ...changing the hll in effect?  how so?
21:04 Coke pmichaud: ... in his original code, he sets an HLL and then loads perl6.pbc
21:05 pmichaud yes, but perl6.pbc still retains its original .HLL, yes?
21:05 pmichaud it doesn't take on the .HLL of whatever is loading it.
21:05 Coke You'd expect that, yes.
21:05 jonathan I'd hope taht's the case...
21:05 Tene It *does* keep its .HLL
21:06 Tene otherwise this wouldn't work:
21:06 Tene perl6: eval('(write "OMG!")', :lang<pheme>);
21:06 polyglotbot RESULT[undef]
21:06 Tene ... heh.
21:07 jonathan OK< it's subtle.
21:07 Tene I really need to make that fail more verbosely.
21:07 jonathan We are somewhat loading the Perl6Str.
21:07 jonathan Because if I add before the call into P6Object that fails
21:07 jonathan $P0 = new 'Perl6Str'
21:07 jonathan $S0 = typeof $P0
21:07 jonathan say $S0
21:07 bacek joined #parrot
21:07 jonathan (eg in Str.pir)
21:07 jonathan Then it prints Perl6Str
21:08 Coke k.
21:08 jonathan So, how does P6Object look up a parent that it's passed?
21:08 * jonathan goes to look
21:08 Tene pmichaud: should the PMCs set HLL 'perl6' instead of 'Perl6' ?
21:09 pmichaud Tene:  I have no idea.  I think I copied from Tcl.
21:09 pmichaud jonathan: P6Object shouldn't really care, though, as it's also in the 'parrot' namespace.
21:09 jonathan These lines worry me a little.
21:09 jonathan item = get_root_global $P0, $S0
21:09 jonathan self.'add_parent'(item, 'to'=>parrotclass)
21:10 TimToady consider the full name of a language probably includes :ver and :auth
21:12 jonathan It is looking it up as parrot;Perl6Str.
21:13 jonathan Which is what we'd expect.
21:13 jonathan Which implies that the PMC is getting stuck in the wrong place.
21:14 jonathan (The lookup of it under parrot;Perl6Str gives null, just to be clear.)
21:14 Coke p6object's new_class makes some stuff up if hll isn't present.
21:14 Coke is it possible that that snippet of code is behaving incorrectly?
21:15 jonathan Coke: Possibly, but since Perl6 doesn't declare a HLL at the moment, trying to look the PMC up in parrot;Perl6Str would, you'd expect, work.
21:16 Coke the problem isn't with Perl6Str, it's with Str, near as I can tell.
21:16 Coke er.
21:16 Coke (nevermind, the code is IN str, but that's getting found and invoked)
21:22 jonathan Thing is, I'm struggling to see where the PMC gets a namespace entry.
21:23 Coke trying to find the parent class in get_parrotclass is unexpectedly returning a null pmc there.
21:25 jonathan Coke: Yes.
21:25 jonathan That's what I wrote above. :-)
21:25 jonathan However, I'm no closer at all to why. :-(
21:34 Tene jonathan: does it find it under parrot;Perl6Str when run directly?
21:34 GeJ Good morning everyone
21:35 donaldh joined #parrot
21:36 jonathan Tene: With no .HLL or with .HLL 'parrot', yes.
21:37 jonathan Tene: So it looks to be something to do with where dynpmcs that get loaded are inserted into the NS.
21:37 jonathan However, I'm having little luck finding the code that does that.
21:38 Tene is it Parrot_register_HLL_lib ?
21:39 jonathan looking
21:40 Tene Wait, that can't be right.
21:40 jonathan Tene: I don't think so - don't see it doing anything like that.
21:41 dalek r35321 | util++ | trunk/docs/pct:
21:41 dalek : [docs] Typo - s/ precendence / precedence / in pct_optable_guide.pod
21:41 jonathan I'm rather confused how it works normally.
21:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35321
21:41 Tene Yeah, was just thinking out loud.  That rarely leads to useful help.
21:41 jonathan :-)
21:43 pmichaud it's possible that it doesn't load dynpmcs into the NS
21:44 pmichaud or that it's loading them into the wrong NS
21:45 Tene I really need to fix this compulsion to spew into IRC whenever I'm working on code.
21:45 jonathan pmichaud: But we find them there usually.
21:46 jonathan So think it's loading them into the wrong NS
21:46 jonathan But I can't find the code that does that!
21:47 pmichaud I suspect "load into NS" isn't exactly correct.
21:47 pmichaud My guess is that it makes the NS entry at the point of the oo_get_class call, when it can't find anything.
21:48 pmichaud src/oo.c:222
21:49 jonathan ooooh....
21:49 jonathan pmc.c
21:49 jonathan comment at line 734
21:49 jonathan Maybe relevant.
21:50 pmichaud there are also many issues with sending arrays to the various class/related opcodes
21:50 pmichaud see TT #8, as well as the recent discussion between Allison and me on parrot-dev
21:55 Infinoid for how much IRC discussion my earlier mention of TT#138 (requesting a git.parrot.org) caused, I'm surprised the ticket only seemed to get a single comment, and it was a negative one.
21:55 * Infinoid starts passing out penguins in black turtlenecks
21:56 pmichaud Infinoid: I have no opinion either for or against moving to git.
21:56 pmichaud If it will be a disruption to our current development progress, then -1.
21:56 pmichaud If it involves taking tuits away from someone who we need to be doing other things, then -1.
21:57 Infinoid those are reasonable comments.  I just wish they were on the ticket.  (would starting a flame war on the mailing list be easier?)
21:57 pmichaud feel free to add them.  :-)
21:58 pmichaud for the past week+ I've been very focused on getting the rvar branch working, and so haven't had tuits to spare to respond to things not directly related to that.
21:58 pmichaud (this is still true, fwiw.)
21:58 pmichaud or, another way of looking at it, I tend to prioritize handling rakudo-specific tickets before getting to the "generic Parrot" ones.  :-)
21:59 Infinoid understandable.
21:59 Infinoid if it helps, tests passed here after this morning's merge
22:00 jonathan If git is going to make my life as a Win32 developer harder, I'd rather skip it. If somebody sets up a Parrot repo under GIT and there are binaries (no, I can't be bothered with compiling my own GIT, and we shouldn't make that a barrier to entry for Win32 developers) that run on Win32 (no, not cygwin, I don't do my primary development there), I'm happy to test it out.
22:01 jonathan I don't mind learning how to use GIT. But I do mind things that get in my way.
22:01 Coke I'd be willing to pay a small price for getting better merge support.
22:01 jonathan Coke: I too would like the better merge support, *if* it's not going to make everything else harder.
22:01 masak git is very nice.
22:02 Coke so we keep hearing. =-)
22:02 Infinoid I want a git server with an svn gateway, so that in most cases you won't even need the binary.  (it does have a learning curve which I don't feel is absolutely necessary for everyone to climb.)
22:02 donaldh There are msys git binaries available for Win32
22:02 Coke perhaps it would be a good idea to add a wiki page.
22:02 jonathan donaldh: Sounds encouraging, then.
22:03 jonathan Tene: I ain't getting much further with tracking this down, beyond that reference.
22:04 Coke so the root cause seems to be that .loadlib's effect works at runtime, but not at load_bytecode time?
22:04 pmichaud I echo jonathan++'s comment, I don't at all mind learning how to use git, if there's an easy source of materials with which to do that.  When I moved from cvs to svn, having the red-bean book was invaluable.
22:04 Tene Coke: the problem is the same if you use the loadlib op at runtime.
22:04 pmichaud Coke: and load_bytecode does work in some instances.
22:05 Tene Coke: I do all of my merges through git-svn
22:05 Coke pmichaud: (having the book) I think if we're entertaining switching, we should probably go a little further for our existing svn committers and give them a tutorial.
22:05 Coke tene: that doesn't mean anything to me though, in terms of answering the question on the ticket.
22:06 jonathan Coke: It appears that PMCs get associated with the wrong namespace.
22:06 jonathan And then the lookup fails.
22:07 pmichaud Coke: (tutorial) that would work for me also.
22:07 Tene Coke: I wrote up a tutorial at chromatic's request.  I'm still waiting on feedback about whether that's what he wanted and where to post it.
22:07 Coke Tene: ... on the wiki?
22:07 pmichaud Tene: just post it on the wiki, and let us all look at it :-)
22:07 Tene What wiki?  Where?
22:07 Coke trac.parrot.org
22:08 chromatic Go ahead and post it.
22:08 Tene Coke: my merge comment was just pointing out that you can already use git's merge instead of svn's merge.
22:08 Tene trac has a wiki?  /me looks.
22:08 Coke trac IS a wiki.
22:08 pmichaud trac *is* a wiki.
22:08 jonathan Tene: Yes, that's what it is.
22:08 * Coke smacks pmichaud.
22:08 * pmichaud wonders how many times he can duplicate what Coke says :-)
22:08 Coke "you owe me a coke."
22:09 pmichaud "I only drink Dr. Pepper"
22:09 nopaste "jonathan" at 85.216.157.73 pasted "tene - apply this patch, and compare output with the various examples - should be revealing" (20 lines) at http://nopaste.snit.ch/15271
22:09 pmichaud s/\.//
22:13 Tene https://trac.parrot.org/pa​rrot/wiki/git-svn-tutorial
22:15 Tene go add comments and requests for more information
22:16 * donaldh wonders if we're DDOSing svn.perl.org yet.
22:17 Tene jonathan: I can try to do that tonight.
22:17 jonathan s/slashdot effect/git effect/
22:18 jonathan Tene: OK. I want to do a little more on Rakudo stuff today. But hopefully I've tracked it down somewhat enough to give you more clues.
22:18 jonathan Basically though, that shows that we register PMCs with the wrong namespace.
22:18 Tene I can offer a tarball of the git repository up until now, if someone wants the whole history.
22:18 Infinoid I've got one of those too
22:20 Infinoid actually I've got a git server that I can make publically available, that syncs against svn.perl.org once every 10 minutes
22:21 Tene nice
22:26 mberends joined #parrot
22:27 Infinoid commits are the problem, though.  a bidirectional gateway would be preferred
22:36 Whiteknight joined #parrot
22:40 Limbic_Region joined #parrot
22:45 riffraff joined #parrot
22:51 riffraff I have two tests for my tiny language: one goes throu Parrot::Test::Harness normally, and I minimally implemented TAP so it works fine. But I have an example directory and some script to check the results, in ruby, is there a way I could make it part of the normal test run ? (bar relying on cardinal :)
22:56 riffraff it seems that the exec arg to test::harness allows me to run a script before each test, but i'd need to run it just once
22:58 pdcawley joined #parrot
23:15 riffraff mh works with two use nstructions, though the path seems messed up, cool :)
23:17 dalek r35322 | util++ | trunk/tools/util:
23:17 dalek : [tools] Typo - s/hueristic/heuristic/ in pgegrep
23:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35322
23:28 jonathan pmichaud: ping
23:30 pmichaud jonathan: pong
23:31 jonathan pmichaud: I'm playing with class registry stuff.
23:31 jonathan Well, type reg.
23:31 jonathan I've hit upon a bit of an issue.
23:31 jonathan STD.pm calls add_type when it sees a type name.
23:31 jonathan In, say, a package_def
23:32 jonathan Trouble is, if we then go and stick something in the namespace, and it turns out to be a class Foo is also { ... } we clobber what's already there.
23:32 jonathan I guess we can just check for that, mind...
23:32 jonathan Hmm...why didn't I think of that before. :-|
23:32 pmichaud yes, I would only stick something there if it doesn't already exist.
23:32 jonathan OK, that'd solve that issue.
23:32 jonathan I am also however seeing weird issues.
23:32 purl okay, jonathan.
23:32 jonathan Like
23:33 jonathan get_hll_namespace returning null
23:33 pmichaud for...?
23:33 jonathan in !meta_trait
23:33 jonathan Where we looked up the namespace, then get_class'd it.
23:33 pmichaud in meta_trait?
23:33 pmichaud or meta_create?
23:34 jonathan *Sometimes* in !meta_create too.
23:34 jonathan But in !meta_trait for sure.
23:34 jonathan In !meata_trait, looking up with get_hll_global to get the proto and then get_parrotclass'ing it works.
23:34 pmichaud that would seem to happen only if it's passed a type name that doesn't exist yet.
23:34 jonathan *but* I think that's hiding an underlying problem.
23:35 leto joined #parrot
23:35 jonathan It's the same issue we were hitting before, when I had the clean-up code.
23:35 jonathan (Or rather, it's the reason I had the cleanup code.)
23:35 jonathan I really don't want that, though... :-(
23:35 pmichaud me either.
23:35 pmichaud I'd need an example to work from.
23:35 jonathan I can give you my diff.
23:36 pmichaud okay, that works.
23:36 jonathan Or actually, I can commit something close to what I want to commit.
23:36 pmichaud as long as it doesn't break spectest :-)
23:36 jonathan But that doesn't actually install anything in the ns.
23:37 jonathan OK, one moment...
23:39 jonathan pmichaud: OK, ci'd.
23:39 dalek r35323 | jonathan++ | trunk (5 files):
23:39 dalek : [rakudo] Get an UnderConstructionProto class added, and create it. However, don't put it in the namespace just yet - that causes breakage.
23:39 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=35323
23:39 jonathan In src/parser/methods.pir see line below # XXX Uncomment this to see breakage.
23:41 jonathan Tiny example that shows it: perl6.pbc -e "class A { }; class B is A { }"
23:45 pmichaud looking
23:48 TiMBuS joined #parrot
23:49 pmichaud I wonder if p6object's "register" method is refusing to overwrite an existing object.
23:49 pmichaud no, that doesn't seem right.
23:49 jonathan I did investigate that path.
23:49 jonathan I put in some debug statements.
23:49 jonathan I looked like register was doing the right thing.
23:49 pmichaud yeah, I'm pretty sure that it is.
23:50 jonathan Not to mention that if you change the meta_trait cdoe to look up the protoobject, it finds the right thing (not an UnderConstructionProto, but rather what it's meant to find).
23:51 jonathan I think it may be some weird thing with namespaces being typed, but you wrote a test case for that last time around that suggested not too. :-S
23:51 pmichaud yeah, I don't think it's that.  We would have seen many other weird errors long before this.
23:51 jonathan Aye.
23:52 jonathan But that leaves me out of guesses. :-(
23:52 kid51 joined #parrot
23:52 pmichaud oh!
23:53 pmichaud wait, maybe no.

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

Parrot | source cross referenced