Camelia, the Perl 6 bug

IRC log for #parrot, 2012-04-22

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 alvis joined #parrot
02:29 nbrown joined #parrot
02:34 nbrown joined #parrot
02:39 nbrown_ joined #parrot
02:46 nbrown joined #parrot
02:56 nbrown joined #parrot
03:01 nbrown_ joined #parrot
03:15 nbrown joined #parrot
03:20 nbrown_ joined #parrot
06:13 bacek joined #parrot
06:16 bacek joined #parrot
07:05 fperrad joined #parrot
08:12 JimmyZ joined #parrot
08:44 dalek nqp/toqast: f3190cf | jonathan++ | src/QAST/Compiler.nqp:
08:44 dalek nqp/toqast: Actually return register syntax from RegAlloc.
08:44 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/f3190cf118
09:08 dalek nqp/toqast: 3dce35c | jonathan++ | src/QAST/Compiler.nqp:
09:08 dalek nqp/toqast: Sketch out QAST::BVal compilation.
09:08 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/3dce35c2a0
09:11 fperrad joined #parrot
09:27 dalek nqp/toqast: 2a08246 | jonathan++ | src/QAST/Compiler.nqp:
09:27 dalek nqp/toqast: First crack at QAST::Stmt and QAST::Stmts.
09:27 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2a082466cd
09:55 lucian__ joined #parrot
10:25 alvis joined #parrot
10:29 dalek nqp/toqast: 6b2e5b2 | jonathan++ | src/QAST/Compiler.nqp:
10:29 dalek nqp/toqast: Start to sketch out QAST::Block handling; loads more to do, of course.
10:29 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/6b2e5b2cb3
10:29 dalek nqp/toqast: 17cc5c8 | jonathan++ | src/QAST/Compiler.nqp:
10:29 dalek nqp/toqast: Various fixes to QAST::Block.new(QAST::IVal.new(:value(42))) style things now actually compile to runnable code.
10:29 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/17cc5c89e4
10:54 dalek nqp/toqast: 4aed1c0 | jonathan++ | src/QAST/Compiler.nqp:
10:54 dalek nqp/toqast: Only use ucs4 for regex engine internal strings; encode normal ones as PAST::Compiler does.
10:55 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4aed1c0cc3
11:04 dalek nqp/toqast: 95641b4 | jonathan++ | t/qast/qast.t:
11:04 dalek nqp/toqast: Start a test file for QAST.
11:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/95641b4602
11:36 dalek nqp/toqast: 2e28049 | jonathan++ | / (3 files):
11:36 dalek nqp/toqast: Start to sketch out infrastructure for halding operations.
11:36 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2e28049110
11:42 PacoAir joined #parrot
12:15 fperrad joined #parrot
12:18 dalek nqp/toqast: e2aea7e | jonathan++ | src/QAST/Operations.nqp:
12:18 dalek nqp/toqast: Get a very first cut (with lots of comments about what's left) of nqp operations that map to PIR opcodes in place.
12:18 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/e2aea7ef34
12:18 dalek nqp/toqast: 2e32225 | jonathan++ | t/qast/qast.t:
12:18 dalek nqp/toqast: Add a test for the add_i operation on two QAST::IVals.
12:18 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2e3222542a
12:35 kid51 joined #parrot
13:30 whiteknight joined #parrot
13:44 jashwanth joined #parrot
13:47 whiteknight good morning, #parrot
14:00 Khisanth joined #parrot
14:52 dalek rakudo/nom: a527e09 | moritz++ | t/spectest.data:
14:52 dalek rakudo/nom: run new filestat.t test file
14:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a527e09edf
14:53 dalek rakudo/nom: 80f140f | moritz++ | src/core/Array.pm:
14:53 dalek rakudo/nom: use native int iterator variable in Array.REIFY
14:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/80f140f282
14:54 fperrad joined #parrot
15:04 lateau joined #parrot
15:13 dalek nqp/toqast: 814d395 | jonathan++ | src/QAST/Compiler.nqp:
15:13 dalek nqp/toqast: Fix typo.
15:13 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/814d395a77
15:13 dalek nqp/toqast: 8475b80 | jonathan++ | t/qast/qast.t:
15:13 dalek nqp/toqast: Test ops within ops.
15:13 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/8475b80757
15:34 dalek rakudo/nom: f649408 | moritz++ | t/spectest.data:
15:34 dalek rakudo/nom: run new accessors test file
15:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f6494082df
15:57 dalek nqp/toqast: 2d62455 | jonathan++ | src/QAST/Operations.nqp:
15:57 dalek nqp/toqast: Check argument counts to nqp ops.
15:57 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/2d62455ae3
16:17 jashwanth joined #parrot
16:25 dalek rakudo/nom: dfea6b3 | moritz++ | tools/autounfudge.pl:
16:25 dalek rakudo/nom: fix PERL6LIB handling in autounfudge.pl
16:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dfea6b312c
16:29 whiteknight I think I've got NQP figured out
16:30 whiteknight the bootstrapping process can be a little tricky when Parrot makes a change like that
16:32 whiteknight I have to update NQP to use the new PackfileView PMC first with Parrot master, then switch over to the eval_pmc branch
16:32 benabik Interesting.
16:38 wagle joined #parrot
16:39 whiteknight of course, as soon as I say that, it doesn't work
16:40 benabik :-(
16:42 dalek nqp/toqast: 37cbc8f | jonathan++ | src/QAST/ (2 files):
16:42 dalek nqp/toqast: Start getting the coercion infrastructure in place; it complains about the (many) cases it doesn't know.
16:42 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/37cbc8f066
16:45 jsut joined #parrot
16:49 contingencyplan joined #parrot
17:05 whiteknight ah, I think I need to make bootstrap-files
17:08 whiteknight it would be nice if it had a make help target, so I could have found bootstrap-files without having to read the Makefile source
17:08 whiteknight although that's a small issue
17:12 benabik `.param options :slurpy :named` in PIR is `var options [slurpy, named]` in winxed, right?
17:12 benabik Hm.  I guess I can skip the var.
17:15 whiteknight yes
17:15 whiteknight you can skip the var, I don't like to
17:16 whiteknight I want to create a friendlier syntax for slurpy and named parameters in winxed, but I haven't figured out what I want it to be yet and I haven't put a patch together yet
17:17 benabik 'foo' :multi(_) has to be foo[multi('_')], right?
17:17 * benabik is playing with PCT in Winxed just for fun.
17:17 whiteknight yes
17:17 benabik Well, not just for fun.  If I'm writing PACT in Winxed I need to know the syntax much better than I do now.
17:18 whiteknight But you don't need to do that. Winxed will automatically put together a multi for PSNI types if you have multiple subs of the same name in a namespace
17:18 whiteknight if you want specific classes, you have to use the old, messy syntax
17:18 benabik Oh. `function foo[multi('_')](bar)` is `multi foo(var bar)` ?
17:19 benabik Huh.  PCT.Dumper appears to use multi sig shorter than the length of their parameters.
17:20 jsut joined #parrot
17:22 benabik `:multi(['PGE';'Match'])` becomes `multi(class PGE.Match)`?  Or will that not work if Winxed doesn't know about the class?
17:23 benabik class ['PGE', 'Match'] ?
17:24 benabik I think I understand how Winxed is parsed, but reverse engineering the syntax from the code is not simple.
17:25 benabik Ew.  `function padre_item[multi(class ['PGE', 'Match'])](var obj, var name)`
17:27 whiteknight function padre_item[multi(class PGE.Match, _)] (var obj, var name)
17:27 whiteknight We do need a better syntax here. If you make suggestions, I can make patches
17:27 benabik Does that work if PGE.Match isn't in the same file?  I thought Winxed needed declarations for classes
17:28 benabik What does Parrot's multi dispatch do if the sig is shorter than the parameter list?
17:28 whiteknight it should match, yes
17:28 whiteknight benabik: When in doubt, expect Parrot's MMD system to do the wrong thing
17:28 benabik .sub 'padre_item' :multi(_)
17:28 benabik .param pmc obj
17:28 benabik .param pmc name
17:28 whiteknight hmm, weird
17:29 whiteknight Oh, I think the MMD system is prefix based
17:29 benabik Ah.
17:29 benabik So it matches the prefix and then lets the normal dispatch handle the extra params?
17:32 benabik class not found near class: `function padre_item[multi(class PGE.Match, _)](var obj, var name) {`
17:34 whiteknight I think so, yes
17:39 benabik Yeah.  class PGE.Match fails because it doesn't know what PGE.Match is.
17:39 whiteknight pre-declare the class
17:39 benabik I have to add a declaration for it.  :-/
17:40 benabik I thought class ['PGE','Match'] would avoid that, but it doesn't.
17:50 benabik Winxed seems to assume all methods return PMC.  Converting `$S0 = obj.'Str'()` to `string s = obj.Str()` gives me `$P1 = $P0.'Str'() ; set $S0, $P1`.
18:00 whiteknight hmm, I hadn't seen that behavior before
18:01 whiteknight try string s = string(obj.Str());
18:01 whiteknight (which is ugly, I know)
18:01 benabik Same thing.
18:02 benabik Actually, if I omit the string, it does a little bit of checking on the return value.
18:02 benabik int i = int(obj.to()); does the same thing (return to a PMC, set int reg)
18:03 whiteknight yeah, that doesn't work
18:03 benabik hm?
18:03 whiteknight We'll have to talk to NotFound about that. I suspect the optimizer should assume return of a string and allow PCC to give us something different
18:04 benabik Does trying to get a PMC first cause issues?
18:04 benabik It won't autobox?
18:06 whiteknight what do you mean?
18:06 benabik If the method returns an int, and Winxed tries to pull out a pmc, will it still work?
18:06 benabik It's extra work, but I'm more concerned if it's broken
18:06 whiteknight yeah, PCC automatically boxes/unboxes
18:07 whiteknight which is why winxed should probably not try to do that itself
18:07 benabik ah
18:07 benabik So it's duplicating what PCC can do in the best case and doing extra work in the worst
18:07 whiteknight yes
18:07 benabik And that extra work includes allocating PMCs, which is LTA.
18:09 whiteknight :(string s) = foo() works as expected
18:09 benabik That's...  interesting
18:09 whiteknight winxed -c -o- -e ":(string s) = Foo.bar()"
18:09 whiteknight that's for multi-returns
18:10 benabik Yeah, but it'll still do the wrong thing in the case of `i - int(obj.to())`
18:10 whiteknight :(var foo, string bar, int baz = 4) = Foo.bar()
18:10 whiteknight yes
18:13 benabik https://gist.github.com/2465856
18:15 benabik That seemed to work pretty well, except for the whole :() = bit.
18:19 benabik Hm.  multi(class 'ResizablePMCArray') gives me "Winxed;Compiler;ClassSpecifierStr not supported yet here"
18:31 benabik I think the multi syntax needs to be extended to deal with strings.  Because `new ['Foo', 'Bar']` bypasses the scope search but `multi(class ['Foo','Bar'])` doesn't.
18:36 benabik And I can't follow what it's doing well enough to do it myself.  :-(
18:37 jsut joined #parrot
18:42 jsut_ joined #parrot
18:47 jsut joined #parrot
18:59 nine whiteknight: http://swtch.com/~rsc/talks/threads07/#
19:46 benabik Hm.  The POD for PCT.Grammar.ast() talks about overriding PGE.Match.item()
20:06 benabik Ah, yes, the fun of converting hand PIR to something else.  What's the winxed for `mob.'!make'(literal)` ?  I have no idea how to call a method with ! in its name.
20:07 benabik Using the quotes as-is parses, but fails in PIR.  (Winxed puts quotes around the quotes: ''!make'')
20:08 benabik Hm.  I'm guessing that's actually just a bug.  I think the quotes is how it's supposed to be done.
20:12 benabik Hm.  Dumper.pir doesn't seem to work.
20:13 benabik compilers/pct/src/PCT/Dumper.pir I mean.
20:13 benabik Good news is that the winxed version fails identically.  :-/
20:56 benabik Okay, experimenting done for now.  I'll let NotFound++ deal with the issues I've already found.  :-)
21:01 jsut joined #parrot
21:09 whiteknight joined #parrot
21:10 whiteknight good evening, #parrot
21:10 jsut_ joined #parrot
21:15 jsut joined #parrot
21:20 jsut_ joined #parrot
22:33 jsut joined #parrot
22:44 jsut joined #parrot
22:50 dalek Rosella/gh-pages: 6b92406 | Whiteknight++ | / (2 files):
22:50 dalek Rosella/gh-pages: [Json] +docs for Json
22:50 dalek Rosella/gh-pages: review: https://github.com/Whiteknig​ht/Rosella/commit/6b9240675c
22:50 dalek Rosella: 3117364 | Whiteknight++ | src/unstable/json/ (7 files):
22:50 dalek Rosella: [Json] Add documentation for Json
22:50 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/31173641b3
22:50 dalek Rosella: 1fc8245 | Whiteknight++ | / (25 files):
22:50 dalek Rosella: [Json] Json is now stable
22:50 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/1fc824561e
22:50 jsut_ joined #parrot
23:01 jsut joined #parrot
23:07 jsut_ joined #parrot
23:31 Hunger joined #parrot
23:58 jsut joined #parrot

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

Parrot | source cross referenced