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