|
Parrot 4.3.0 "In Which..." | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 18 April 2012. |
|||
|
00:02
alvis joined
02:29
nbrown joined
02:34
nbrown joined
02:39
nbrown_ joined
02:46
nbrown joined
02:56
nbrown joined
03:01
nbrown_ joined
03:15
nbrown joined
03:20
nbrown_ joined
06:13
bacek joined
06:16
bacek joined
07:05
fperrad joined
08:12
JimmyZ joined
|
|||
| dalek | p/toqast: f3190cf | jonathan++ | src/QAST/Compiler.nqp: Actually return register syntax from RegAlloc. |
08:44 | |
| p/toqast: 3dce35c | jonathan++ | src/QAST/Compiler.nqp: Sketch out QAST::BVal compilation. |
09:08 | ||
|
09:11
fperrad joined
|
|||
| dalek | p/toqast: 2a08246 | jonathan++ | src/QAST/Compiler.nqp: First crack at QAST::Stmt and QAST::Stmts. |
09:27 | |
|
09:55
lucian__ joined
10:25
alvis joined
|
|||
| dalek | p/toqast: 6b2e5b2 | jonathan++ | src/QAST/Compiler.nqp: Start to sketch out QAST::Block handling; loads more to do, of course. |
10:29 | |
| p/toqast: 17cc5c8 | jonathan++ | src/QAST/Compiler.nqp: Various fixes to QAST::Block.new(QAST::IVal.new(:value(42))) style things now actually compile to runnable code. |
|||
| p/toqast: 4aed1c0 | jonathan++ | src/QAST/Compiler.nqp: Only use ucs4 for regex engine internal strings; encode normal ones as PAST::Compiler does. |
10:54 | ||
| p/toqast: 95641b4 | jonathan++ | t/qast/qast.t: Start a test file for QAST. |
11:04 | ||
| p/toqast: 2e28049 | jonathan++ | / (3 files): Start to sketch out infrastructure for halding operations. |
11:36 | ||
|
11:42
PacoAir joined
12:15
fperrad joined
|
|||
| dalek | p/toqast: e2aea7e | jonathan++ | src/QAST/Operations.nqp: 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 | |
| p/toqast: 2e32225 | jonathan++ | t/qast/qast.t: Add a test for the add_i operation on two QAST::IVals. |
|||
|
12:35
kid51 joined
13:30
whiteknight joined
13:44
jashwanth joined
|
|||
| whiteknight | good morning, #parrot | 13:47 | |
|
14:00
Khisanth joined
|
|||
| dalek | kudo/nom: a527e09 | moritz++ | t/spectest.data: run new filestat.t test file |
14:52 | |
| kudo/nom: 80f140f | moritz++ | src/core/Array.pm: use native int iterator variable in Array.REIFY |
|||
|
14:54
fperrad joined
15:04
lateau joined
|
|||
| dalek | p/toqast: 814d395 | jonathan++ | src/QAST/Compiler.nqp: Fix typo. |
15:13 | |
| p/toqast: 8475b80 | jonathan++ | t/qast/qast.t: Test ops within ops. |
|||
| kudo/nom: f649408 | moritz++ | t/spectest.data: run new accessors test file |
15:34 | ||
| p/toqast: 2d62455 | jonathan++ | src/QAST/Operations.nqp: Check argument counts to nqp ops. |
15:57 | ||
|
16:17
jashwanth joined
|
|||
| dalek | kudo/nom: dfea6b3 | moritz++ | tools/autounfudge.pl: fix PERL6LIB handling in autounfudge.pl |
16:25 | |
| whiteknight | I think I've got NQP figured out | 16:29 | |
| the bootstrapping process can be a little tricky when Parrot makes a change like that | 16:30 | ||
| 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
|
|||
| whiteknight | of course, as soon as I say that, it doesn't work | 16:39 | |
| benabik | :-( | 16:40 | |
| dalek | p/toqast: 37cbc8f | jonathan++ | src/QAST/ (2 files): Start getting the coercion infrastructure in place; it complains about the (many) cases it doesn't know. |
16:42 | |
|
16:45
jsut joined
16:49
contingencyplan joined
|
|||
| whiteknight | ah, I think I need to make bootstrap-files | 17:05 | |
| 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 | ||
| although that's a small issue | |||
| benabik | `.param options :slurpy :named` in PIR is `var options [slurpy, named]` in winxed, right? | 17:12 | |
| Hm. I guess I can skip the var. | |||
| whiteknight | yes | 17:15 | |
| you can skip the var, I don't like to | |||
| 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:16 | ||
| benabik | 'foo' :multi(_) has to be foo[multi('_')], right? | 17:17 | |
| benabik is playing with PCT in Winxed just for fun. | |||
| whiteknight | yes | ||
| 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. | ||
| 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 | |
| if you want specific classes, you have to use the old, messy syntax | |||
| benabik | Oh. `function foo[multi('_')](bar)` is `multi foo(var bar)` ? | ||
| Huh. PCT.Dumper appears to use multi sig shorter than the length of their parameters. | 17:19 | ||
|
17:20
jsut joined
|
|||
| benabik | `:multi(['PGE';'Match'])` becomes `multi(class PGE.Match)`? Or will that not work if Winxed doesn't know about the class? | 17:22 | |
| class ['PGE', 'Match'] ? | 17:23 | ||
| I think I understand how Winxed is parsed, but reverse engineering the syntax from the code is not simple. | 17:24 | ||
| Ew. `function padre_item[multi(class ['PGE', 'Match'])](var obj, var name)` | 17:25 | ||
| whiteknight | function padre_item[multi(class PGE.Match, _)] (var obj, var name) | 17:27 | |
| We do need a better syntax here. If you make suggestions, I can make patches | |||
| benabik | Does that work if PGE.Match isn't in the same file? I thought Winxed needed declarations for classes | ||
| What does Parrot's multi dispatch do if the sig is shorter than the parameter list? | 17:28 | ||
| whiteknight | it should match, yes | ||
| benabik: When in doubt, expect Parrot's MMD system to do the wrong thing | |||
| benabik | .sub 'padre_item' :multi(_) | ||
| .param pmc obj | |||
| .param pmc name | |||
| whiteknight | hmm, weird | ||
| Oh, I think the MMD system is prefix based | 17:29 | ||
| benabik | Ah. | ||
| So it matches the prefix and then lets the normal dispatch handle the extra params? | |||
| class not found near class: `function padre_item[multi(class PGE.Match, _)](var obj, var name) {` | 17:32 | ||
| whiteknight | I think so, yes | 17:34 | |
| benabik | Yeah. class PGE.Match fails because it doesn't know what PGE.Match is. | 17:39 | |
| whiteknight | pre-declare the class | ||
| benabik | I have to add a declaration for it. :-/ | ||
| I thought class ['PGE','Match'] would avoid that, but it doesn't. | 17:40 | ||
| 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`. | 17:50 | ||
| whiteknight | hmm, I hadn't seen that behavior before | 18:00 | |
| try string s = string(obj.Str()); | 18:01 | ||
| (which is ugly, I know) | |||
| benabik | Same thing. | ||
| Actually, if I omit the string, it does a little bit of checking on the return value. | 18:02 | ||
| int i = int(obj.to()); does the same thing (return to a PMC, set int reg) | |||
| whiteknight | yeah, that doesn't work | 18:03 | |
| benabik | hm? | ||
| 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 | ||
| benabik | Does trying to get a PMC first cause issues? | 18:04 | |
| It won't autobox? | |||
| 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? | ||
| It's extra work, but I'm more concerned if it's broken | |||
| whiteknight | yeah, PCC automatically boxes/unboxes | ||
| which is why winxed should probably not try to do that itself | 18:07 | ||
| benabik | ah | ||
| So it's duplicating what PCC can do in the best case and doing extra work in the worst | |||
| whiteknight | yes | ||
| benabik | And that extra work includes allocating PMCs, which is LTA. | ||
| whiteknight | :(string s) = foo() works as expected | 18:09 | |
| benabik | That's... interesting | ||
| whiteknight | winxed -c -o- -e ":(string s) = Foo.bar()" | ||
| that's for multi-returns | |||
| 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() | ||
| yes | |||
| benabik | gist.github.com/2465856 | 18:13 | |
| That seemed to work pretty well, except for the whole :() = bit. | 18:15 | ||
| Hm. multi(class 'ResizablePMCArray') gives me "Winxed;Compiler;ClassSpecifierStr not supported yet here" | 18:19 | ||
| 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:31 | ||
| And I can't follow what it's doing well enough to do it myself. :-( | 18:36 | ||
|
18:37
jsut joined
18:42
jsut_ joined
18:47
jsut joined
|
|||
| nine | whiteknight: swtch.com/~rsc/talks/threads07/# | 18:59 | |
| benabik | Hm. The POD for PCT.Grammar.ast() talks about overriding PGE.Match.item() | 19:46 | |
| 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:06 | ||
| Using the quotes as-is parses, but fails in PIR. (Winxed puts quotes around the quotes: ''!make'') | 20:07 | ||
| Hm. I'm guessing that's actually just a bug. I think the quotes is how it's supposed to be done. | 20:08 | ||
| Hm. Dumper.pir doesn't seem to work. | 20:12 | ||
| compilers/pct/src/PCT/Dumper.pir I mean. | 20:13 | ||
| Good news is that the winxed version fails identically. :-/ | |||
| Okay, experimenting done for now. I'll let NotFound++ deal with the issues I've already found. :-) | 20:56 | ||
|
21:01
jsut joined
21:09
whiteknight joined
|
|||
| whiteknight | good evening, #parrot | 21:10 | |
|
21:10
jsut_ joined
21:15
jsut joined
21:20
jsut_ joined
22:33
jsut joined
22:44
jsut joined
|
|||
| dalek | sella/gh-pages: 6b92406 | Whiteknight++ | / (2 files): [Json] +docs for Json |
22:50 | |
| sella: 3117364 | Whiteknight++ | src/unstable/json/ (7 files): [Json] Add documentation for Json |
|||
| sella: 1fc8245 | Whiteknight++ | / (25 files): [Json] Json is now stable |
|||
|
22:50
jsut_ joined
23:01
jsut joined
23:07
jsut_ joined
23:31
Hunger joined
23:58
jsut joined
|
|||