»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by Juerd on 28 August 2009. |
|||
00:06
satrac joined,
satrac left
00:07
tak11 left
|
|||
jnthn | OK, night all - may be here in the morning before I head for the airport... | 00:07 | |
00:12
cdarroch left
00:15
andy_ left
|
|||
diakopter | @tell japhb ping | 00:15 | |
lambdabot | Consider it noted. | ||
00:16
SmokeMachine left
00:18
japhb joined
|
|||
colomon | rakudo: for <a b c> -> $x { say $x; } | 00:20 | |
p6eval | rakudo b51d94: ( no output ) | ||
colomon | rakudo: for ("a", "b", "c") -> $x { say $x; } | ||
p6eval | rakudo b51d94: ( no output ) | ||
00:23
Limbic_Region left
00:27
SmokeMachine joined
|
|||
pmichaud | p6eval may need to bump the timeout a bit | 00:28 | |
rakudo: for 1..3 -> $x { say $x; } | |||
p6eval | rakudo b51d94: OUTPUT«123» | ||
pmichaud | rakudo: for <a b c> -> $x { say $x; } | ||
p6eval | rakudo b51d94: OUTPUT«abc» | ||
colomon | pmichaud: I was testing the syntax because it was flopping on me in my test code. Of course, turned out to be a missing ) on the previous line. | 00:33 | |
ruoso | hmm... I was just presented with an interesting challenge | 00:37 | |
how to, using regex, match all the possible selections of two "a" in "aaaa". i.e.: aa.. a.a. a..a .a.a ..aa | 00:38 | ||
and .aa. | |||
jeekobu | In Perl6? :exhaustive or something... and a.*a | 00:45 | |
phenny | jeekobu: 02 Sep 10:06Z <masak> tell jeekobu thanks for a nice explanation of an alternative algorithm. actually, some of my early labyrinth programs used that (or a very similar) technique. I found that it was biased towards long corridors and depended on the starting position. your algorithm doesn't seem to have that problem, though. | ||
ruoso | jeekobu, yeah... Perl 6 | ||
00:46
meppl left
|
|||
jeekobu | perlcabal.org/syn/S05.html#line_460 | 00:49 | |
Although I'm not sure I completely understand what you want to match (all substrings with two a's?) | |||
00:50
tak11 joined
|
|||
jeekobu | rakudo: "aaaa" ~~ m:ex/(a.*?a)/; say "@()" | 00:50 | |
p6eval | rakudo b51d94: ( no output ) | 00:51 | |
jeekobu | rakudo: "aaaa" ~~ m/(a.*?a)/; say "@()" | ||
p6eval | rakudo b51d94: OUTPUT«@()» | ||
jeekobu | rakudo: "aaaa" ~~ m/(a.*?a)/; say @() | ||
p6eval | rakudo b51d94: ( no output ) | ||
jeekobu | hm | ||
00:54
synth^2 left
|
|||
jeekobu | I guess all substrings with exactly two a's would be [^a]*a[^a]*a[^a]*, with :ex, translated into p6. | 00:55 | |
00:56
synth joined
|
|||
pugs_svn | r28187 | colomon++ | [t/spec] Refactor sin tests a bit more, and add a full set of sin tests on Rats. | 01:00 | |
01:01
synth left,
synth joined
01:06
FCO joined
|
|||
syntheticore | how does one implement the === operator in perl6? | 01:06 | |
Is read that ~~ is implemented indirectly through ACCEPTS | 01:07 | ||
and declaring a multi sub infix:<===> gives me a Null PMC access | |||
01:07
SmokeMachine left
01:12
s1n left
|
|||
FCO | reakudo: $a="aaaaa"; ($a.split(//) X $a.split(//)).grep("aa").elements | 01:13 | |
rakudo: $a="aaaaa"; ($a.split(//) X $a.split(//)).grep("aa").elements | |||
p6eval | rakudo b51d94: OUTPUT«Confused at line 2, near "(//) X $a."in Main (src/gen_setting.pm:3454)» | ||
FCO | sorry! | ||
01:26
syntheticore left,
meppl joined
01:27
agentzh joined
01:35
synth left,
synth joined
01:37
s1n joined
01:46
alester joined
|
|||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m:ex/(.*)(a)(.*)(a)(.*)/; say ~@() | 01:53 | |
p6eval | rakudo b51d94: OUTPUT«Colons cannot be used as delimiters in quoting constructs at line 2, near ":ex/(.*)(a"in Main (src/gen_setting.pm:3454)» | ||
pmichaud | rakudo doesn't understand : flags on regexes yet | ||
ruoso | any work around? | ||
pmichaud | you're trying to get all matches? | 01:54 | |
ruoso | all possible matches | ||
yes | |||
pmichaud | rakudo: my $a = 'aaaa'; $a ~~ m:ex/(.*)(a)(.*)(a)(.*)/; while $/ { say $/; $/.next; } | ||
p6eval | rakudo b51d94: OUTPUT«Colons cannot be used as delimiters in quoting constructs at line 2, near ":ex/(.*)(a"in Main (src/gen_setting.pm:3454)» | ||
pmichaud | oops | ||
rakudo: my $a = 'aaaa'; $a ~~ /(.*)(a)(.*)(a)(.*)/; while $/ { say $/; $/.next; } | |||
p6eval | rakudo b51d94: ( no output ) | 01:55 | |
pmichaud | hmmm | ||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/(.*)(a)(.*)(a)(.*)/; say ~@() | ||
pmichaud | rakudo: my $a = 'aaaa'; $a ~~ /(.*)(a)(.*)(a)(.*)/; say $/; | ||
p6eval | rakudo b51d94: ( no output ) | ||
pmichaud | rakudo: my $a = 'aaaa'; $a ~~ /(.*)(a)(.*)(a)(.*)/; say $/; | ||
ruoso | rakudo? | ||
p6eval | rakudo b51d94: OUTPUT«aaaa» | ||
pmichaud | rakudo's running a bit slower now due to some parrot changes; I think we need to bump the timeout | ||
rakudo: my $a = 'aaaa'; $a ~~ /(.*)(a)(.*)(a)(.*)/; say $/; $/.next; say $/ | 01:56 | ||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/(.*)(a)(.*)(a)(.*)/; say $/.perl | ||
p6eval | rakudo b51d94: OUTPUT«aaaaaaaa» | ||
rakudo b51d94: OUTPUT«Match.new( # WARNING: this is not working perl code # and for debugging purposes only ast => "aaaa", Str => "aaaa", from => 0, to => 4, positional => [ Match.new( ast => "aa", Str => "aa", from => 0, to => 2, ), Match.new( ast => "a", | |||
.. St… | |||
pmichaud | if we end up with two rakudo processes at the same time, they'll tend to cancel each other out | ||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/(.*)(a)(.*)(a)(.*)/; say @($/).join: "," | ||
p6eval | rakudo b51d94: OUTPUT«aa,a,,a,» | 01:57 | |
pmichaud | rakudo: my $a = 'abacada'; $a ~~ /.*a.*a.*/; while $/ { say $/; $/.next; } | ||
p6eval | rakudo b51d94: OUTPUT«abacadaabacadaabacadaabacadabacaabacadaabacadaabacadabacaabacadaabacadabacaabacababacadabacadabacadabacadbacaacadaacadaacadaacadacacadaada» | ||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/(.*)(a)(.*)(a)(.*)/; say @($/).join: "," while $/.next | 01:58 | |
p6eval | rakudo b51d94: OUTPUT«Null PMC access in get_bool()in Main (/tmp/WoT9189uL5:2)» | ||
ruoso | oosp | ||
pmichaud | @($/) isn't likely to do what you're wanting | 01:59 | |
lambdabot | Unknown command, try @list | ||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/(.*)(a)(.*)(a)(.*)/; { say @($/).join: ","; $/.next } while $/; | ||
p6eval | rakudo b51d94: OUTPUT«aa,a,,a,a,a,a,a,a,a,,a,aa,a,,a,,a,aa,a,,a,a,a,a,a,a,a,,a,,a,aa,a,,a,a,a,,a,a,a,,a,,a,a,a,,a,,a,a,a,,a,,a,,a,» | ||
pmichaud | depending on what you're wanting | ||
anyway, ".next" is PGE's method on a match object to say "give me the next match" | |||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/.*(a).*(a).*/; { say @($/).map({ $_.pos }).join: ","; $/.next } while $/; | 02:00 | |
p6eval | rakudo b51d94: OUTPUT«Method 'pos' not found for invocant of class 'Match'» | ||
pmichaud | rakudo: my $a = 'a man, a plan, a canal, panama'; $a ~~ /a./; while $/ { say $/.from; $/.next; } | 02:01 | |
p6eval | rakudo b51d94: OUTPUT«037111518202527» | ||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/.*(a).*(a).*/; { say @($/).map({ $_.from }).join: ","; $/.next } while $/; | ||
p6eval | rakudo b51d94: OUTPUT«2,31,31,21,20,30,2» | ||
ruoso | interesting... there are some matches missing | 02:02 | |
pmichaud | I think it's because p6eval may be timing out | ||
ruoso trying locally | |||
ah... indeed | 02:03 | ||
pmichaud | gist.github.com/180689 | ||
ruoso | it's still interesting that it finds duplicates | 02:04 | |
pmichaud | sure, of course | ||
you asked for exhaustive :-) | |||
ruoso | but why do we get a match twice/ | ||
? | |||
pmichaud | for 1,2 | ||
you're matching | |||
both "aaa" and "aa" | 02:05 | ||
look at it this way: | |||
ruoso | rakudo: my $a = 'aaaa'; $a ~~ m/^.*(a).*(a).*$/; { say @($/).map({ $_.from }).join: ","; $/.next } while $/; | ||
pmichaud | my $a = 'abcd'; m/.*(.).*(.).*/ | ||
p6eval | rakudo b51d94: OUTPUT«2,31,31,20,30,20,1» | ||
ruoso | ahá! | ||
pmichaud++ | 02:06 | ||
;) | |||
02:08
agentzh1 joined
02:09
xomas left
02:13
cognomore left
02:14
cognominal left
02:15
Whiteknight left
02:17
cognominal joined
02:26
justatheory left,
agentzh left
|
|||
TimToady | phenny: tell syntheticore sets should be defined in terms of === so that sets of objects work; === should autothread; === is defined as $x.WHICH eqv $y.WHICH to compare identity | 02:28 | |
phenny | TimToady: I'll pass that on when syntheticore is around. | ||
02:30
FCO left
02:36
synth left
02:55
markjreed joined
02:56
meppl left
|
|||
markjreed | rakudo: for «a b c» { .say } | 02:57 | |
p6eval | rakudo b51d94: OUTPUT«abc» | ||
markjreed | That's what I thought. Only the REPL has the encoding issue.... | 02:58 | |
02:59
alester left
03:00
markjreed left
03:02
sri_kraih left,
sri_kraih joined
03:06
SmokeMachine joined
03:08
agentzh1 left
03:11
jaldhar joined
03:20
donaldh left,
donaldh joined
03:21
dukeleto_ joined
03:23
jaldhar left,
jaldhar joined
03:24
xomas joined
03:26
alester joined
03:27
alester left,
justatheory_ joined
03:31
SmokeMachine left
03:33
markjreed joined,
ihrd left
|
|||
markjreed | rakudo: %*ENV.values[0].perl.say | 03:34 | |
p6eval | rakudo b51d94: OUTPUT«""» | ||
03:36
alester joined
|
|||
markjreed | rakudo: my %h = { 'a' => 1, 'b' => 2 }; %h.values[0].perl.say | 03:37 | |
p6eval | rakudo b51d94: OUTPUT«1» | ||
markjreed | rakudo: my %h = { 'a' => 1, 'b' => 2 }; %h.values.perl.say | 03:40 | |
p6eval | rakudo b51d94: OUTPUT«[1, 2]» | ||
03:41
markjreed left
03:49
SmokeMachine joined
04:01
meppl joined
04:24
payload left
04:25
stephenl1 joined
04:30
asciiville joined
04:36
alester left,
stephenlb left
04:38
tak11 left
04:47
jaldhar left
04:48
jaldhar joined
04:56
asciiville left
05:13
payload joined
|
|||
pmichaud | TimToady: for contextual variables, after we scan outward and reach the GLOBAL package, do the symbols in GLOBAL retain the twigil or do we strip it at that point? | 05:17 | |
i.e., would $*FOO look for GLOBAL::<$FOO> or GLOBAL::<$*FOO> ? | 05:18 | ||
05:24
reqamst left
05:32
frew__ left
06:07
flip913 joined
|
|||
flip913 | In S12 I found has $.fur handles (s/^furget_/get_/); | 06:11 | |
But if the intention is that the get_ functions of fur should be named furget_ in this class, isn't that the wrong way? | 06:12 | ||
ie. shouldn't that be s/get_/furget_/? | |||
06:15
justatheory_ left
06:22
stephenl1 left
06:27
iblechbot joined,
rfordinal left,
dukeleto_ left
06:36
zloyrusskiy left
06:37
justatheory joined
06:38
zloyrusskiy joined
06:47
justatheory left
06:50
ihrd joined
|
|||
Matt-W | Good morning | 07:04 | |
mberends | good morning Matt-W, are you at work early? | 07:06 | |
07:13
drbean left,
rfordinal joined
|
|||
Matt-W | not really | 07:17 | |
on time for a change :) | |||
well, on intended time, 8am might be considered early by some | |||
I have a singing lesson afterwards though, so I can't be too late leaving today | 07:18 | ||
mberends | :) | ||
07:20
donaldh left
07:21
donaldh joined,
eMaX joined
|
|||
buu | 8am! | 07:25 | |
What a terrifying prospect. | |||
Matt-W | Ah but I get to leave at 4pm | 07:30 | |
07:31
raig joined
07:34
viklund joined
|
|||
viklund | Hello all, | 07:34 | |
there's a lot more ppl here now ;) | |||
Matt-W | it happens | 07:36 | |
the word gets around | |||
viklund | indeed it does | 07:37 | |
07:38
Eevee left
07:39
drbean_ joined
|
|||
BooK | by the way, I don't see any link to a vector-graphics file for camelia | 07:41 | |
how are we supposed to change the colors or make a variant? | |||
07:45
reqamst joined
07:49
carlin left
07:50
carlin joined,
carlin_ joined
|
|||
carlin | BooK: svn.pugscode.org/pugs/misc/camelia.svg | 07:51 | |
07:51
Su-Shee joined
|
|||
Su-Shee | good morning. :) | 07:51 | |
07:51
drbean joined
07:54
buubot left
07:55
buubot joined
|
|||
BooK | carlin: ah of course. thanks | 07:57 | |
08:05
jferrero joined
08:06
drbean_ left
08:08
orafu joined
|
|||
flip913 | Anyone for help with S12? | 08:19 | |
08:20
drbean left,
agentzh joined
|
|||
Matt-W | possibly... | 08:20 | |
flip913 | Matt-W: Here we go ... | 08:21 | |
In S12 I found "has $.fur handles (s/^furget_/get_/);" | |||
But if the intention is that the get_ functions of fur should be named furget_ in this class, isn't that the wrong way? | |||
ie. shouldn't that be s/get_/furget_/? | |||
Or do I just don't understand that, and it is meant that the fur class has its methods named furget_? | 08:22 | ||
But that would be a bit strange, I think. | |||
Matt-W | I read that as saying that the class declaring the has responds to furget_ methods, but translates them into get_ methods when it passes them along to $.fur | 08:25 | |
so you call $obj.furget_foo and it delegates to $obj.fur.get_foo | |||
flip913 | Ah, so the "incoming" side is the function that should be called, and "handles" just specifies how to transform the name ... | 08:26 | |
Ok, understood. | |||
Matt-W | I think so, yes | ||
flip913 | I thought that's some kind of import declaration - "take all methods on $.fur, and import them with changed names into me." | ||
Another one? | 08:27 | ||
Matt-W | no, handles is more about 'pass these methods along' than 'bring these methods in' | ||
flip913 | There's "multi sub fib(0) { return 0; }" | ||
"multi sub fib(1) { return 1; }" | |||
and similar | |||
Matt-W | yup | ||
08:27
cognominal left
|
|||
flip913 | Is there a short way to define the type of the parameter? | 08:27 | |
08:28
drbean joined
|
|||
Matt-W | Well in that case the type's defined by the type of the constant used in the signature | 08:28 | |
spinclad | multi sub fib(Int 0) {...} | ||
flip913 | So that fib(0) and fib(0.0) and fib(Rat(1/3)) can do different things | ||
spinclad | i venture | ||
Matt-W | spinclad: it's possible... | ||
std: multi sub fib(Int 0) { ... } | |||
p6eval | std 28187: OUTPUT«===SORRY!===Multiple prefix constraints not yet supported at /tmp/8S9l7r11u5 line 1:------> multi sub fib(Int 0⏏) { ... } expecting any of: type_constraint whitespaceFAILED 00:02 39m» | ||
Matt-W | interesting | 08:29 | |
08:29
dukeleto joined
|
|||
Matt-W | std: multi sub fib (Int $i where { $i == 0 }) { ... } | 08:29 | |
spinclad | std: multi sub foo(Cat Dog $pet) {...} | ||
p6eval | std 28187: OUTPUT«ok 00:03 41m» | ||
std 28187: OUTPUT«===SORRY!===Unable to parse signature; couldn't find final ')' at /tmp/6M8LkknuS6 line 1:------> multi sub foo(Cat ⏏Dog $pet) {...} expecting any of: constraint param_sep parameter trait type_constraint | |||
..typenameFAILED 00:02 39m» | |||
Matt-W | so that's a possible albeit clunky alternative | ||
you just use a where clause | |||
I think that's quite likely for any seriously complicated case | 08:30 | ||
flip913 | And I'd believe that this is supposed to do type casting ... if only a fib(0) is defined, a call with "$x=0.0; fib($x)" should work, too (in absence of something more specific), no? | ||
Matt-W | rakudo: multi fib(0) { say "0"; }; multi fib($x) { say "x"; }; $x = 0.0; fib($x); | 08:31 | |
p6eval | rakudo b51d94: OUTPUT«Symbol '$x' not predeclared in <anonymous> (/tmp/nQNsS7bvSz:2)in Main (src/gen_setting.pm:3454)» | ||
Matt-W | rakudo: multi fib(0) { say "0"; }; multi fib($x) { say "x"; }; my $x = 0.0; fib($x); | ||
p6eval | rakudo b51d94: OUTPUT«x» | ||
Matt-W | looks like it doesn't | ||
spinclad | std: multi sub fib(Int $ where * == 0) {...} | ||
p6eval | std 28187: OUTPUT«===SORRY!===Preceding context expects a term, but found infix = instead at /tmp/hES7cAZ8wW line 1:------> multi sub fib(Int $ where * ==⏏ 0) {...}FAILED 00:03 43m» | ||
Matt-W | rakudo: multi fib(0) { say "0"; }; multi fib($x) { say "x"; }; my $x = 0.0; fib($x); say $x.WHAT; | ||
p6eval | rakudo b51d94: OUTPUT«xNum()» | ||
Matt-W | mmm yes, it doesn't automatically cast Num to Int | ||
because it could lose precision | |||
flip913 | rakudo: multi a(0) { say 0; } multi a(1) { say 1; } a(1.0); | 08:32 | |
Matt-W | rakudo: multi fib(0.0) { say "0"; }; multi fib($x) { say "x"; }; my $x = 0.0; fib($x); say $x.WHAT; | ||
p6eval | rakudo b51d94: OUTPUT«Confused at line 2, near "multi a(1)"in Main (src/gen_setting.pm:3454)» | ||
rakudo b51d94: OUTPUT«0Num()» | |||
flip913 | rakudo: multi a(0) { say 0; }; multi a(1) { say 1; }; a(1.0); | ||
spinclad | std: multi sub fib(Int $ where (* == 0)) {...} | ||
p6eval | rakudo b51d94: OUTPUT«No applicable candidates found to dispatch to for 'a'in Main (/tmp/hWDnGkIQJm:2)» | ||
std 28187: OUTPUT«ok 00:03 40m» | |||
Matt-W | so it looks like fib(0.0) and fib(0) are distinct | ||
flip913 | rakudo: multi a(0) { say 0; }; multi a(1) { say 1; }; a(2); | ||
Matt-W | so that's basically what you wanted | ||
p6eval | rakudo b51d94: OUTPUT«No applicable candidates found to dispatch to for 'a'in Main (/tmp/EukkhzC3Y3:2)» | ||
flip913 | rakudo: multi a(0) { say 0; }; multi a(1) { say 1; }; a(0); | ||
p6eval | rakudo b51d94: OUTPUT«0» | ||
flip913 | rakudo: multi a(0) { say 0; }; multi a(1) { say 1; }; multi a(Num $a) { a(Int($a));}; a(0.0); | 08:33 | |
p6eval | rakudo b51d94: OUTPUT«invoke() not implemented in class 'Integer'in sub a (/tmp/yW9ZjQTgYv:2)called from Main (/tmp/yW9ZjQTgYv:2)» | ||
flip913 | ok, I think I'm convinced | 08:34 | |
still, another one ;-) | |||
(I expect you can tell that I'm reading this currently ;-) | |||
There are subsets ... | |||
the example is "subset Positive of Int" | |||
Matt-W | It's okay, this kind of thing helps my understanding as well | ||
flip913 | are subsets hierarchical, so that a "Positive of Int" is distinct of a "Positive of Num"? | 08:35 | |
Or are these more like roles, so that the same restriction can be mixed to another type as well? | |||
(Like Rat, too) | |||
The way I'm reading that it should be hierarchical, but the names must not conflict | 08:36 | ||
Matt-W | Positive of Int would be different to Positive of Num | ||
but you couldn't have both, because the names would collide | |||
as they're both called Positive | |||
flip913 | So we'd need a "PositiveInt of Int" and a "PositiveRat of Rat" and a "PositiveNum of Num" with the same constraint | ||
08:36
ihrd left
|
|||
Matt-W | yes | 08:36 | |
flip913 | Well, there could be a macro | 08:37 | |
Matt-W | PositiveInt is usually called Natural though :) | ||
flip913 | no, the names would still collide | ||
and what do you do to NegativeInt? | |||
Matt-W | Unnatural? :P | ||
don't know if there's a proper name for that set | 08:38 | ||
flip913 | No, not the name ... | ||
But I'm wondering whether there should be some way to clone a class hierarchy with a constraint | |||
so eg. clone "Num" with all below (Int, Rat, etc.), all with a common constraint | 08:39 | ||
Maybe I'm just confused, but I'm not sure about type casts between subsets (from PositiveInt to PositiveNum eg) | |||
rakudo: subset PI of Int where { * > 0 }; | 08:40 | ||
p6eval | rakudo b51d94: ( no output ) | ||
flip913 | rakudo: subset PI of Int where { * > 0 }; subset PN of Num where { * > 0 }; my PI $pi=3; my PN $pn=3.2; say $pn > $pi; | 08:41 | |
p6eval | rakudo b51d94: OUTPUT«1» | ||
flip913 | ok, that works | ||
rakudo: subset PI of Int where { * > 0 }; subset PN of Num where { * > 0 }; my PI $pi=3; my PN $pn=3.2; say $pn < $pi; | |||
p6eval | rakudo b51d94: OUTPUT«0» | ||
flip913 | rakudo: subset PI of Int where { * > 0 }; subset PN of Num where { * > 0 }; my PI $pi=3; my PN $pn=3.2; say $pn == $pi; | ||
p6eval | rakudo b51d94: OUTPUT«0» | ||
flip913 | rakudo: subset PI of Int where { * > 0 }; subset PN of Num where { * > 0 }; my PI $pi=3; my PN $pn=3.2; say PI($pn) == $pi; | ||
p6eval | rakudo b51d94: OUTPUT«invoke() not implemented in class 'Integer'in Main (/tmp/Jqw50v2zYF:2)» | ||
Matt-W | I'm not sure how that works | 08:42 | |
08:42
carlin_ left
|
|||
flip913 | rakudo: subset Integer::Positive of Int where { * > 0 }; subset Num::Positive of Num where { * > 0 }; my Integer::Positive $pi=45; | 08:42 | |
p6eval | rakudo b51d94: ( no output ) | ||
flip913 | rakudo: subset Integer::Positive of Int where { * > 0 }; subset Num::Positive of Num where { * > 0 }; my Integer::Positive $pi=-45; | ||
Matt-W | It's possible it could look up to the parent type for the conversion to the parent type of the new subset, and then see if it satisfies the subset constraint of the target type... | ||
p6eval | rakudo b51d94: ( no output ) | ||
flip913 | oops? I'd expect an error | 08:43 | |
rakudo: subset Integer::Positive of Int where { * > 0 }; subset Num::Positive of Num where { * > 0 }; my Integer::Positive $pi=-45; say $pi; | |||
p6eval | rakudo b51d94: OUTPUT«-45» | ||
Matt-W | hmm | ||
flip913 | ok, subsets don't work yet | ||
Matt-W | that's a bug, I think | ||
subsets partially work | |||
flip913 | rakudo: subset PI of Int where { * > 0 }; my PI $pi=-3; say $pi; | 08:44 | |
p6eval | rakudo b51d94: OUTPUT«-3» | ||
flip913 | well, at least it seems to be possible to use some namespace-like hierarchy for the subset names, to avoid confusion | ||
rakudo: subset PI of Int where { * > 0 }; my PI $pi=1; say $pi; $pi--; say $pi; | |||
p6eval | rakudo b51d94: OUTPUT«10» | ||
flip913 | neither init nor run time checks | 08:45 | |
08:45
carlin left
08:49
carlin joined
|
|||
flip913 | Matt-W: Thanks for the attention, time and effort! | 08:49 | |
I'll be back with more questions, I think. | |||
Matt-W | Feel free | 08:50 | |
08:50
flip913 left
|
|||
moritz_ | good morning | 08:58 | |
Matt-W | hey moritz_ | 08:59 | |
Guten Morgen | |||
or is it Morgan | |||
I always got them confused | |||
Morgen is tomorrow? | |||
moritz_ | "Morgen" is both morning and tomorrow | 09:00 | |
"Morgan" is the name of a witch in the King Arthur tale, I believe ;-) | |||
09:02
drbean left,
drbean joined
09:07
drbean left,
drbean joined
09:09
huf_ joined
09:10
huf left,
huf_ is now known as huf
09:21
cotto left,
cognominal joined
|
|||
moritz_ | I finally figured out how to draw circle arcs of arbitrary angle in SVG | 09:23 | |
which means that I can prototype a pie chart plotter for SVG::Plot | 09:24 | ||
Juerd | SVG++ | 09:34 | |
moritz_ | indeed | ||
I've been doing quite some fun stuff with it lately | 09:35 | ||
Juerd | I like how SVG brings graphics within Perl6's reach already. | ||
09:42
ruoso left
|
|||
Su-Shee | why don't you fellows not just bind Cairo? | 09:44 | |
moritz_ | because I kinda like SVG ;-) | 09:45 | |
arnsholt | Also, I think outputting SVG is a lot easier than binding to a C library | 09:46 | |
moritz_ | and so far my experiences with binding libs are small, and not very encouraging | ||
09:49
drbean left
10:01
agentzh left
|
|||
Matt-W | I looked into the Parrot binding stuff for C libraries | 10:02 | |
it didn't look much fun | |||
10:05
drbean joined
|
|||
moritz_ | I have a blog post about SVG stuff with a little bit Perl 6 content | 10:07 | |
should I post it in the perl 6 category, so that it shows up on planetsix? | 10:08 | ||
or in misc/, so that you're not bothered with 70% SVG content? | |||
10:10
sharada joined
|
|||
cognominal | rakudo: say eval "@a", :lang<perl5> | 10:17 | |
p6eval | rakudo b51d94: OUTPUT«» | ||
cognominal | rakudo: say eval "\@a", :lang<perl5> | ||
p6eval | rakudo b51d94: OUTPUT«» | ||
moritz_ | rakudo: say eval '3', :lang<perl5> | ||
p6eval | rakudo b51d94: OUTPUT«» | ||
moritz_ | I suspect that the blizkost build is broken | ||
cognominal | yes, that what I wanted to check | 10:18 | |
10:19
jferrero left
|
|||
moritz_ | rakudo: say %*VM<config><prefix> | 10:20 | |
p6eval | rakudo b51d94: ( no output ) | ||
Juerd | moritz_: perl6 category because it shows how perl6 is useful already :) | ||
moritz_ | rakudo: say eval '3', :lang<perl5> | ||
Juerd | It's like calling a module SVG even though it's just doing XMLish stuff :) | ||
p6eval | rakudo b51d94: OUTPUT«» | ||
10:20
jferrero joined
|
|||
moritz_ | Juerd: I'll do it, thanks | 10:21 | |
10:43
[particle]1 joined
10:44
sharada left,
buubot left,
Su-Shee left,
SmokeMachine left,
sri_kraih left,
zamolxes left,
RonOreck left,
michaelr left,
sjohnson left,
hugme left,
jrtayloriv left,
tylerni7 left,
[particle] left,
allbery_b left,
larsen left,
c1sung left,
pnu left,
clkao left,
ilbot2 left,
avar left,
hcchien left,
moritz_ left,
cls_bsd left,
araujo left,
dalek left,
charsbar_ left,
hcchien_ joined
10:45
clkao joined,
RonOreck joined,
RonOreck left,
araujo joined,
dalek joined,
sharada joined,
buubot joined,
Su-Shee joined,
SmokeMachine joined,
sri_kraih joined,
zamolxes joined,
RonOreck joined,
[particle] joined,
charsbar_ joined,
tylerni7 joined,
jrtayloriv joined,
hugme joined,
cls_bsd joined,
moritz_ joined,
larsen joined,
ilbot2 joined,
c1sung joined,
pnu joined,
sjohnson joined,
allbery_b joined,
avar joined,
michaelr joined,
irc.freenode.net sets mode: +ooo araujo moritz_ sjohnson,
RonOreck left,
avar left,
avar joined,
larsen left
10:46
michaelr left,
michaelr joined
10:51
RonOreck joined
10:52
pmurias joined
10:54
larsen joined
10:58
[particle] left
10:59
abra joined
11:00
hanekomu joined
11:01
carlin left
|
|||
moritz_ | oh wow, I managed to get a "Null PMC access in isa()" on the last line of my script, which is a ccomment | 11:08 | |
rakudo: say [+] "1 2 3" | 11:10 | ||
p6eval | rakudo b51d94: OUTPUT«1 2 3» | ||
moritz_ | rakudo: my @a = [1, 2], [3, 4]; | 11:13 | |
p6eval | rakudo b51d94: ( no output ) | ||
moritz_ | rakudo: my @a = [1, 2], [3, 4]; my @b := @a[0]; say [+] @b | ||
p6eval | rakudo b51d94: OUTPUT«1 2» | ||
moritz_ | I expected that to print 3 | ||
but it seems the binding doesn't dereference | 11:14 | ||
bug in rakudo, or bug in my expectation? | |||
rakudo: my @a := [1, 2]; say [+] @a | 11:15 | ||
p6eval | rakudo b51d94: OUTPUT«1 2» | ||
moritz_ | same here | ||
11:20
donaldh left,
donaldh joined
11:31
masak joined
|
|||
viklund | hello masak ;) | 11:33 | |
11:33
carlin joined
|
|||
cognominal | rakudo: my %a; %a{1} ='a'; say (keys %a)[0].WHAT | 11:35 | |
p6eval | rakudo b51d94: OUTPUT«Str()» | ||
cognominal | hash keys must still be strings in Perl 6? | 11:36 | |
Juerd | By default, yes | 11:37 | |
rakudo my %a{Any}; %a{1} = 'a'; %a.keys.[0].WHAT.say; | 11:38 | ||
rakudo: my %a{Any}; %a{1} = 'a'; %a.keys.[0].WHAT.say; | |||
p6eval | rakudo b51d94: OUTPUT«Confused at line 2, near "{Any}; %a{"in Main (src/gen_setting.pm:3454)» | ||
Juerd | Not implemented apparently | ||
See S09, "To declare a hash that can take any object as a key rather than just a string or integer" | |||
cognominal | ok | 11:39 | |
11:39
rfordinal left
|
|||
masak | viklund: be greeted, oh viklund. | 11:41 | |
viklund: long time no hackathon... | 11:42 | ||
viklund | masak: indeed | 11:46 | |
masak | how's life and family? | ||
did you come here due to a prophetic dream you had last night? | 11:47 | ||
did I figure in it? :) | |||
viklund | ah, no, my parental leave is over so now I'm Back At Work | 11:49 | |
otherwise, good, Alva started day-care a week ago and it works like a charm | |||
Just thought i'd pop in and see what's happening (noticed that the channel has grown) | 11:50 | ||
masak | it has. | ||
we're working on a deadline nowadays. | 11:51 | ||
everyone has something to do, it seems. | |||
viklund | yes, sounds like fun! | ||
masak | it kinda is. | ||
cognominal | rakudo: my %a{*}; %a{1} ='a'; say (keys %a)[0].WHAT | ||
p6eval | rakudo b51d94: OUTPUT«Confused at line 2, near "{*}; %a{1}"in Main (src/gen_setting.pm:3454)» | ||
masak | cognominal: NYI. | ||
cognominal: same for a lot of stuff from S09. | 11:52 | ||
11:55
zloyrusskiy left
|
|||
masak | I'm currently reading PGE source, and greatly enjoying myself. | 11:57 | |
pmichaud++ | |||
12:01
SmokeMachine left
12:03
takadonet joined
|
|||
takadonet | morning all | 12:03 | |
masak | o/ | 12:04 | |
12:07
drbean_ joined
|
|||
mberends | hi masak, did you dream about proto? | 12:08 | |
masak | mberends: hm, that might be why I woke up in a cold sweat... :) | 12:09 | |
moritz_ | Null PMC access in find_method() | 12:10 | |
in method SVG::serialize (SVG.pm:5) | |||
now that's interesting... | |||
masak | indeed. | 12:11 | |
moritz_: care to submit a bug report? | |||
moritz_ | sub empty { for 1..3 { 4 } }; | 12:12 | |
SVG.serialize(empty()); | |||
that triggers the bug | |||
masak: I will, once I figured out what causes it | |||
masak | nice catch. | 12:13 | |
I'd suggest both minimizing it for a Rakudobug, and submitting a bug report to the SVG github bug tracker. | |||
12:15
drbean left
|
|||
masak | rakudo: sub foo { for 1 {} }; sub bar($x) {}; bar(foo) | 12:16 | |
p6eval | rakudo b51d94: OUTPUT«Null PMC access in find_method()in sub bar (/tmp/Wf45L47gN6:2)called from Main (/tmp/Wf45L47gN6:2)» | ||
masak | there's the bug. | ||
moritz_ | just found the same, only with a method | ||
moritz_ submits | 12:17 | ||
masak | the error occurs in dispatch. | ||
thus making it hard to fix from SVG.pm itself. | |||
moritz_ | I won't submit a SVG bug then | ||
masak | at most, we could warn about it in the README or Pod or something. | 12:18 | |
moritz_ | rakudo: sub foo { }; sub bar($x) {}; bar(foo) | ||
12:18
agentzh joined
|
|||
p6eval | rakudo b51d94: ( no output ) | 12:18 | |
moritz_ | sent. | 12:19 | |
masak | moritz_++ | 12:20 | |
12:22
drbean joined
|
|||
masak | Google-searching on Perl 6, I just found www.programmersheaven.com/2/Perl6-FAQ | 12:25 | |
it's complete and very informative, but 2 years old... | |||
I can't see that it even mentions Rakudo. :/ | 12:26 | ||
moritz_ | and spam in the comments | ||
cognominal | jnthn++ # again | 12:27 | |
masak | ah, missed the spam. | ||
"We will be updating this FAQ over time to include more answers; particularly answers to your suggestions!" | |||
perhaps I should try and make some... | |||
12:29
iblechbot left
|
|||
moritz_ | who has write access to that page? | 12:29 | |
12:34
agentzh left,
drbean_ left
12:35
drbean left
12:40
drbean joined
12:47
viklund left
12:50
viklund joined
12:51
zamolxes left
12:52
drbean left
12:54
drbean joined,
drbean left,
ruoso joined
12:57
eMaX left
13:01
abra left
13:03
jferrero left
13:05
sri_kraih_ joined
13:06
Eevee joined
13:08
pmurias left
|
|||
takadonet | Programmersheaven was my first tutorial on Perl6 | 13:09 | |
13:09
drbean joined
|
|||
moritz_ | I think mine too | 13:11 | |
masak | the Apocalypses were my first. :) | 13:12 | |
13:15
drbean_ joined
|
|||
moritz_ just produced a colorful pie chart with SVG::Plot | 13:16 | ||
how could I write tests for SVG::Plot? | |||
13:18
SmokeMachine joined,
drbean left
|
|||
moritz_ | I don't want to test for the exact output structure | 13:19 | |
13:19
eMaX joined
|
|||
moritz_ | because every small modification will change that | 13:19 | |
13:19
sri_kraih left,
sri_kraih_ is now known as sri_kraih,
drbean joined
|
|||
masak | moritz_: perhaps write something that loosely matches on the XML tree? | 13:23 | |
moritz_ | masak: that's an idea, but I would only get *very* loose informations | ||
like "is this text included as a label somewhere" | 13:24 | ||
13:24
drbean_ left
|
|||
masak | I've been thinking of writing an XPath matcher for a while now... haven't had the concentration to begin such a project in earnes. | 13:24 | |
[particle]1 | what do you want to test? | ||
masak | s/nes/nest/ | ||
moritz_ | [particle]1: it would be ideal if I could test that now two text elements overlap, for example | ||
13:24
[particle]1 is now known as [particle]
|
|||
moritz_ | or overlap with axis, labels | 13:24 | |
or are outside the canvas | |||
or something | 13:25 | ||
13:25
drbean_ joined
|
|||
moritz_ | but thats... hard | 13:25 | |
because I use coordinate transforms | |||
[particle] | non-trivial | ||
moritz_ | and I don't know the size of the text until it's rendered | ||
masak | "knowing the size of text" seems to be the recurring limitation of SVG... | ||
[particle] | you may get hints from Test::Image::GD | 13:26 | |
moritz_ | basically a sensible piece of test code would be orders of magnitudes harder than writing the module itself, it seems | ||
[particle] | s/::GD// | ||
masak | moritz_: only because we don't have the plumbing for it. | ||
moritz_ | masak: well, it needs quite some plumbing | 13:27 | |
basically an SVG renderer | |||
and some geometrical algorithms which search for overlaps | 13:28 | ||
masak | nod. | 13:29 | |
Matt-W | masak: people who react to the image of Perl 6 haven't been entranced by the language itself yet, but an image that people don't like might prevent that from happening because they'll never look | 13:31 | |
13:32
_jaldhar joined,
eMaX left
13:34
drbean_ left,
molaf joined,
drbean_ joined
|
|||
masak | Matt-W: granted. | 13:35 | |
but anything could be a turnoff. | |||
Matt-W | True, but image is something that's very, well, visible | ||
masak | this guy is turned off by dashes: twitter.com/mcmire/status/3743953120 | ||
(I'm not, I like them) | 13:36 | ||
Matt-W | I find it liberating | ||
someone I told about said it looks like infix:<-> | |||
moritz_ | masak: SVG.pm doesn't escape text - should it? | ||
Matt-W | so I gave them the rant about whitespace around operators | ||
masak | Matt-W: that seems to be the prevailing attitude of colour coders out there, too. | 13:37 | |
moritz_: yes, definitely. | |||
Matt-W | colour coders? | ||
masak | moritz_: seems you got your bug report, then. :) | ||
Matt-W: hm, color coding algorithms. in editors. | |||
moritz_ | masak: I'd submitted a patch, not a bug report... | ||
masak | moritz_++ | ||
13:37
drbean left
|
|||
Matt-W | masak: oh, people writing syntax highlighters | 13:38 | |
masak | Matt-W: no, the syntax highlighters themselves. :) never mind. | ||
Matt-W | oh | ||
I don't know | |||
perl6.vim handles it fine :) | |||
masak | exception, not rule. :) | ||
Matt-W | to be honest, if having - in identifiers makes more people space their operators nicely I'm all for it | 13:39 | |
literal | hm, does that guy know that he can use ' too? :P | 13:41 | |
masak | I'll let him know. :) | ||
twitter.com/carlmasak/status/3756861260 | 13:42 | ||
literal | hehe | 13:43 | |
colomon | I have to admit dashes in identifiers strikes me as a bit weird (in though I'm sure I did it in Lisp back in the day), but I've an operator spacer ever since my days programming in Forth, so I've glad that's looking to be the Perl6 standard. | 13:44 | |
13:44
jaldhar left
|
|||
masak | not so much a standard as a simple rule-of-thumb to keep out of trouble. :) | 13:46 | |
rakudo: say 42*42 | |||
p6eval | rakudo b51d94: OUTPUT«1764» | ||
colomon | Yeah, I meant standard in the SOP sense, not the spec sense. | ||
masak | rakudo: my $foo = 42; say 42*$foo*42 | ||
p6eval | rakudo b51d94: ( no output ) | ||
literal | the only thing that worries me is that I hope the builtins settle on a good convention, so people won't mix up the dashes and underscores when trying to remember method/parameter names | ||
masak | aye. | ||
Matt-W | yes | ||
needs to stick to one or the other | |||
makes the language look nicer too | 13:47 | ||
and then we can pattern our third-party libraries after it as well | |||
Form is currently a mixture | |||
I need to switch to one or 'tother | |||
[particle] prefers using shift only for operators and metachars | 13:48 | ||
13:48
snarkyboojum joined
|
|||
[particle] | words should be lowercase, and shift-free | 13:48 | |
s/words/terms/ | |||
Matt-W | at least on an english keyboard... | ||
Matt-W wonders which layouts need shift or some other modifier to get - | |||
moritz_ | masak: how would you like your SVG.pm patch? bug tracker? nopaste? mail? | 13:51 | |
please don't say "pull request" | 13:52 | ||
masak | bug tracker, please. | ||
the other two are fine as well, but the bug tracker has the extra advantage of being tied to the project page itself. | |||
moritz_ | github.com/masak/svg/issues/#issue/1 | 13:56 | |
13:56
drbean_ left,
snarkyboojum left
|
|||
Matt-W | github has an issue tracker?? | 13:56 | |
masak | :) | ||
since a few months back, yes. | 13:57 | ||
literal | since a few months ago, yeah | ||
damn | |||
Matt-W | cool | 13:58 | |
has anybody tested what I did to Form on my holidays yet? | |||
masak | I've read the diff... | ||
haven't tried the actual phenotype yet. | |||
moritz_: applied, pushed, closed. thanks! | 14:01 | ||
moritz_ | masak: I think attributes should be escaped too | ||
masak: (just occured to me) | |||
14:02
jan__ left
|
|||
colomon | Github lets you make comments on patches, as well, as I discovered last night. | 14:02 | |
masak | moritz_: waitwait, what was it you just espaced? text? :) | ||
moritz_ | masak: yes | 14:03 | |
masak should look more closely before writing commit comments | |||
I'll see if I can fix the attr values myself. | 14:04 | ||
moritz_ | shouldn't be all that hard ;-) | ||
14:06
drbean joined
14:08
molaf left
|
|||
masak | it wasn't. :) done. | 14:09 | |
14:11
pmurias joined
|
|||
pmurias | ruoso: hi | 14:11 | |
ruoso | hi pmurias | 14:12 | |
14:14
Psyche^ joined
|
|||
pmurias | ruoso: one problem with setting a custom opcode is that the runloop uses the result of the previous opcode as the current one | 14:14 | |
ruoso | but you can manipulate it | ||
which is what you're going to do inside $interpreter.goto | 14:15 | ||
pmurias | how? | ||
14:15
drbean left
|
|||
pmurias | ruoso: it's done after the opcode does it's stuff | 14:17 | |
ruoso | pmurias, the code that calls $interpreter.goto is never a regular opcode | ||
that always happen in SMOP land | |||
so you're free to replace the current interpreter state entirely | 14:18 | ||
(as Coro::State does) | |||
14:20
nihiliad joined
|
|||
pmurias | Coro does C stack hackery | 14:20 | |
14:22
drbean joined
|
|||
ruoso | we might need to preserve that hackery | 14:22 | |
14:28
drbean left,
drbean_ joined
14:29
Patterner left,
Psyche^ is now known as Patterner
14:30
zamolxes joined
14:33
KyleHa joined
|
|||
araujo | hello there guys | 14:34 | |
morning | |||
moritz_ | good localtime() | ||
pmurias | hi | ||
araujo | :) | ||
14:39
jrtaylor joined
|
|||
pmurias | ruoso: i don't think i understand the way the runloops should interact sufficiently to implement the interaction myself, i could help with the tedious bits if you were willing to attempt it | 14:42 | |
14:42
drbean_ left,
jrtayloriv left
14:43
jrtaylor left
14:44
jrtayloriv joined
14:47
drbean_ joined
14:50
frew_ left
14:51
frew_ joined
|
|||
ruoso | pmurias, hmm... Ok... I think we still can work on making the p5sv before integrating the runloops | 14:52 | |
pmurias | we could use the old runloop intergration as a start | 14:56 | |
15:00
justatheory joined
|
|||
ruoso | pmurias, yeah... I think so | 15:04 | |
15:05
drbean__ joined
|
|||
pmichaud | good morning, #perl6 | 15:06 | |
ruoso | good morning pmichaud | 15:07 | |
masak | pmichaud: god morgon. | 15:08 | |
moritz_ | moritz.faui2k3.org/tmp/pie-fail.svg I think proper pie chart plotting is harder than it looks at first sight ;-) | ||
masak | good start, though. | ||
I see about three possible improvement to make right away. :) | 15:09 | ||
15:09
IRSeekBot joined
|
|||
masak | is the code public somewhere? | 15:09 | |
moritz_ | masak: in a minute it is ;-) | ||
masak | pmichaud: when you're available, I have a few small questions about PGE. | 15:10 | |
moritz_ | masak: it's in SVG::Plot now, the example was generated by plot.pl | ||
hugme: add masak to svg-plot | |||
hugme | moritz_: successfully added masak to svg-plot | ||
moritz_ | masak: and you're a commiter. Welcome ;-) | ||
masak | \o/ | ||
hugme++ | |||
[particle] | who runs hugme? | 15:11 | |
masak | moritz_++ does. | ||
[particle] | hugme should hug people after adding them to projects | ||
15:11
xomas left
|
|||
[particle] | there's no reason to decouple those functions :) | 15:11 | |
moritz_ | [particle]: nice idea ;-) | ||
@karma hugme | 15:12 | ||
lambdabot | hugme has a karma of 1 | ||
moritz_ | masak: I'm going to work on the text align thing first | ||
masak | moritz_: in fact, the 'successfully added' message could be replaced by a hug and a 'welcome!' | ||
[particle] | hugme++ | ||
masak: just what i was thinking | |||
moritz_ | masak: aye | ||
15:13
larsen left,
dukeleto left,
lisppaste3 left,
leedo left,
jjore left,
jrockway left
|
|||
moritz_ | '* hugme hugs masak and welcomes him or her to svg-plot' | 15:13 | |
masak | eww, 'him or her'... | ||
moritz_ | "it"? ;-) | ||
masak prefers '...and says welcome...' | |||
15:13
drbean_ left
|
|||
moritz_ | ok | 15:13 | |
pmichaud | masak: I'm available for PGE questions | ||
moritz_ | anyway, text aligning first, then hugme patches. | ||
masak | pmichaud: is 'ternary:' a fossil? | 15:14 | |
15:14
leedo joined
|
|||
pmichaud | no. | 15:14 | |
15:14
jrockway joined,
larsen joined
|
|||
masak | what does it do? | 15:14 | |
pmichaud | it allows parsing of ternary operators :) | 15:15 | |
it's left there for non-Perl6 languages to use | |||
15:15
dukeleto joined,
lisppaste3 joined,
jjore joined
|
|||
pmichaud | because otherwise parsing a ternary can be kind of... tricky. | 15:15 | |
masak | but no language actually uses it? | ||
pmichaud | NQP does. | ||
masak | ah. | ||
pmichaud | certainly any language that has the traditional ? : syntax is likely to use it. So I suspect pynie uses it also. | 15:16 | |
masak | that explains it. I was only looking at examples withing the compilers/PGE directory. | ||
pmichaud | and perhaps cardinal as well. | ||
15:17
donaldh left
|
|||
masak | next question: PGE::Exp and all its subtypes all inherit from PGE::Match, yes? and PGE::Match inherits from Capture? | 15:17 | |
pmichaud | currently, yes. That whole hierarchy will likely change soon. | 15:18 | |
15:18
drbean joined
|
|||
masak | ok. | 15:18 | |
pmichaud | ultimately PGE::Exp will be a descendent class of Capture | ||
(with potentially some intermediates in-between) | |||
masak | but it's the properties of Capture that allows different values to be set in the PGE::Exp objects, right? | ||
15:18
jan__ joined
|
|||
pmichaud | sure, a Capture is an array+hash | 15:18 | |
masak | exactly. | ||
and, in PIR, a writeable one, it seems. | 15:19 | ||
I've found no way to modify a Capture from Perl 6. | |||
pmichaud | well, internally we have to have some way to build a capture :) | ||
masak | sure, sure. | ||
in Perl 6 you have to build it all at once, I guess. | |||
pmichaud | there's a good chance that PGE::Exp and friends will become subclasses of PAST::Node somehow | ||
moritz_ | so basically a PGE capture is a Perl 6 cursor | ||
masak | pmichaud: that sounds intriguing. | 15:20 | |
pmichaud | (and PAST::Node is already a subclass of Capture) | ||
well, PGE::Exp are basically ast nodes for regular expressions | |||
masak | so this 'subclass Capture' is kind of a pattern in Parrot compilers? | ||
moritz_ | (even I understodd that ;-) | ||
pmichaud | Captures are incredibly useful... it's a pattern in the compiler toolkit | 15:21 | |
masak | ok. | ||
pmichaud | it's especially useful anytime you need attribute trees | ||
(trees where the nodes have children and a set of attributes) | |||
masak | next question: I don't understand the corou bits yet, but they seem to be used for backtracking. | ||
pmichaud | they are. | ||
here's an example: | |||
rakudo: my $a = '0abc0def0ghi'; $a ~~ /0./; say $/; $/.next; say $/ | 15:22 | ||
p6eval | rakudo b51d94: OUTPUT«0a0d» | ||
pmichaud | (yes, .next is not Perl 6 standard) | ||
masak | ooh, interesting. :) | 15:23 | |
pmichaud | the match object keeps track of the state of the match. the coroutine allows us to exit with a successful match, but then we can jump back into the coroutine in order to pick up matching from where we left off | ||
we have to have this for subrules | |||
regex { abc <subrule> def } | |||
masak | could Perl 6 be made to emulate the coroutine behaviour... besides using gather/take? | 15:24 | |
pmichaud | if 'def' doesn't match, we have to backtrack into <subrule> at the point where it left off in order to try the other alternatives | ||
15:24
drbean left,
drbean joined
|
|||
moritz_ | masak: actually that's what TimToady used in his early attempts to make STD.pm run on pugs | 15:25 | |
masak | ah, so the coroutines allow you to "pause" the subrule matching, and continue it later? | ||
15:25
drbean left
|
|||
masak | that sounds very much like continuations to me. | 15:25 | |
pmichaud | masak: yes | ||
[particle] | '* hugme hugs masak. Welcome to svg-plot!' | ||
pmichaud | it is built on continuations, yes | ||
masak | [particle]: nod. | ||
I still would very much like something like that in Perl 6. | 15:26 | ||
pmichaud | (emulating in Perl 6) the answer there would probably be to examine what Cursor is doing in STD.pm | ||
15:26
Su-Shee left
|
|||
pmichaud | I'll be able to answer a bit more directly after I've moved PGE to be more Cursor-like (should be this month) | 15:26 | |
masak | I think it's a bit limiting to only have that wonderful behaviour through gather/take. it's much more useful than that. | ||
pmichaud: I'll be following along closely. | |||
15:30
drbean joined
15:31
drbean left
15:35
drbean joined
15:36
sri_kraih left,
drbean__ left
|
|||
moritz_ | bah. It seems that firefox-3.0 doesn't properly implement the dominant-baseline attribute in SVG. | 15:37 | |
15:37
colomon left
15:38
sri_kraih joined
15:39
drbean left
|
|||
masak | throw them a TODO ticket! :) | 15:39 | |
15:39
molaf joined,
drbean joined
|
|||
moritz_ | when last I found a NYI feature in the SVG renderer I discovered that 3.5 already had it | 15:40 | |
masak | moritz_: what does 'WIP' stand for in one of your svg-plot commit comments? | ||
moritz_ | masak: "work in progress" | ||
masak | ah. :) | 15:41 | |
15:41
fraterm_work joined
|
|||
masak | as opposed to finished and immaculate? :) | 15:41 | |
moritz_ | as opposed to "enough implemented that the next comit might wait another couple of days" | ||
masak | ah, a partial commit. | 15:42 | |
moritz_ | moritz.faui2k3.org/tmp/pie-better.svg # text-anchor at work - much better | 15:43 | |
afk | 15:44 | ||
masak | aye, definitely better. | ||
I'm going to try and do something about the colours. | |||
moritz_ | that would be awesome | ||
pmichaud | bikeshedding already? | ||
masak | pmichaud: bikeshedding would be _talking_ about changing the colours. :) | 15:45 | |
moritz_ | afk | ||
15:45
drbean left
15:46
drbean joined
|
|||
pmichaud | masak: isn't that what you just did above? ;-) | 15:46 | |
masak | (dang!) | ||
15:48
molaf left
|
|||
pmichaud | is it possible for anything to appear outside of the 'CORE' namespace? | 15:49 | |
or is CORE the ultimate root of all... names? | 15:50 | ||
never mind, I found the relevant text in S02 | 15:52 | ||
TimToady | there's a sense in which the current lexical scope is the root of all names, but eventually it gets to CORE, and that leads to GLOBAL and PROCESS | 15:57 | |
pmichaud | right | ||
TimToady | except | ||
pmichaud | essentially I'm trying to figure out what the package structures are | ||
TimToady | I'm thinking that GLOBAL and PROCESS should really be hanging off of UNIT | ||
thing is, every compilation unit has its own idea of what GLOBAL means | 15:58 | ||
pmichaud | the key thing I was looking for was that CORE isn't a package | ||
TimToady | so those have to be meshed as a form of linkage | ||
except insofar as you might get to it via GLOBAL::<$?PARENT> or some such | 15:59 | ||
but yes, packages and lexnamepads are a bit different | |||
pmichaud | GLOBAL::<$?PARENT> would be able to get to a lexical scope? hmmmm | 16:00 | |
TimToady | packages contain variables directly, while lexnamepads contain locations in the real lexpad | ||
pmichaud | oh, lexnamepad is a new term for me | ||
TimToady | well, we need to distinguish the lexpad that is the symbol table from the cloned lexpad for a closure | 16:01 | |
pmichaud | god it | ||
got it | |||
TimToady | we've been calling both of those lexpads, to great confusion | ||
Perl 5 count them as two different things | |||
pmichaud | so lexnamepad is sort of the schema or template for the lexical symbols declared within a closure | ||
TimToady | in P5, the scratch pads are all indexed by offset | 16:02 | |
pmichaud | and the lexpad is the actual name bindings at runtime | ||
TimToady | and the 0th scratch pad happens to contain names instead of containers | ||
it's and array of arrays of entries | |||
*an | |||
pmichaud | sure, I see how p5 does it | 16:03 | |
TimToady | so the names just happen to have the same offset in the 0th pad as the actual variable in the nth pad | ||
pmichaud | makes sense to me | ||
TimToady | and cloning involves adding another n+1th pad | ||
but it's partly because of that structure that the concepts were muddled in my head | |||
so I ended up calling them both lexpads | 16:04 | ||
pmichaud | in Parrot our "lexnamepad" is called a LexInfo | ||
TimToady | that works | ||
16:04
lollan joined
|
|||
TimToady | lexsymtab is a bit unweildy | 16:04 | |
pmichaud | so one can talk about the LexInfo of a sub or block without having to have an instantiated LexPad | ||
chip++ came up with LexInfo, I believe | 16:05 | ||
(as a name, as well as the implementation design for Parrot) | |||
TimToady | anyhoo, I've been trying to keep packages and lexinfos as similar as possible | ||
except for the extra indirection, which STD doesn't worry abou tyet | |||
pmichaud | okay, that helps | ||
I can at least build an approximation of much of this now; it will likely take us a few iterations in Rakudo to get it to match the spec | 16:06 | ||
I left a question for you in backscroll, also -- will repeat it here | |||
lollan | Hi guys, I've just read the presentation about SMOP it's kind of WoW. | ||
TimToady | so probably the difference is just between carrying a pointer to the container vs an index to the container in the lexpad | 16:07 | |
16:07
xomas_ joined
|
|||
TimToady | World of Warcraft? | 16:07 | |
16:07
hanekomu left
|
|||
pmichaud | 05:17 <pmichaud> TimToady: for contextual variables, after we scan outward and reach the GLOBAL package, do the symbols in GLOBAL retain the twigil or do we strip it at that point? | 16:07 | |
05:18 <pmichaud> i.e., would $*FOO look for GLOBAL::<$FOO> or GLOBAL::<$*FOO> ? | |||
I'm guessing the latter, based on other things I've read | |||
namely, PROCESS::<%*ENV> | 16:08 | ||
16:08
alester joined
|
|||
pmurias | lollan: which one? | 16:08 | |
TimToady | thinking how they'll be used in the main program (which starts in GLOBAL package), we may need a way for the starless form to work | 16:10 | |
pmichaud | ....we want all variables declared in the main program to be contextual? | ||
lollan | pmurias: it's called Perl6 is just a SMOP. | ||
pmichaud | (that's fine.... just verifying) | ||
TimToady | if they say 'my $*FOO' then we know they mean the UNIT scope, but if they say 'our $*FOO', they mean GLOBAL:<$*foo>, but it installs a lexical alias | 16:11 | |
which could conceivably cause trouble | |||
lollan | it gets you exited about joining but my level is way too low lol | ||
pmichaud | I'm thinking about the case of 'our $FOO' | 16:12 | |
TimToady | but if they say our $FOO in the GLOBAL package, they probably would like to access it | ||
there's always $GLOBAL::FOO, but | |||
maybe 'our $*FOO' shouldn't alias into MY | |||
seems strange | |||
pmichaud | agreed; I was wondering about our $*FOO last night | 16:13 | |
TimToady | now thinking about always losing the * in the package | ||
doesn't help if they declare 'our $*FOO' in GLOBAL, but it helps if they say our $FOO | 16:14 | ||
and we lose the star for the %ENV fallback | |||
pmichaud | so, PROCESS::<%ENV> ? | ||
TimToady | so maybe it makes sense to lose the star at the lexical->package transition instead | ||
pmichaud | that's where I was initially headed when it occurred to me the star would be in the packages | 16:15 | |
TimToady | that's what I'm thinking is maybe the best way | ||
pmichaud | previously Rakudo has not had the star in its package symbols (but that heralds from when the * twigil meant 'global' and not 'contextual') | ||
TimToady | well maybe it should stay that way | 16:16 | |
pmichaud | I can try it sans-star and report if I run into any problems | ||
it won't be hard to switch | |||
TimToady | sounds good | ||
masak | phenny: tell moritz_ that I refined the colors of SVG::Plot a bit. | 16:19 | |
phenny | masak: I'll pass that on when moritz_ is around. | ||
16:19
rfordinal joined
16:22
M_o_C joined
|
|||
pmichaud | how tied is %*ENV to the underlying environment? (more) | 16:26 | |
for example, if I do | |||
%*ENV<xyz> = 1.5; say %*ENV<xyz>.WHAT | |||
do I get "Num()" or "Str()" ? | 16:27 | ||
(or "Rat()") | 16:29 | ||
16:29
_jaldhar left,
cotto joined
|
|||
masak | I could argue either for "what you put in" or "Str". | 16:30 | |
pmichaud | so can I, thus the question. :) | 16:31 | |
moritz_ | masak: thanks | 16:32 | |
phenny | moritz_: 16:19Z <masak> tell moritz_ that I refined the colors of SVG::Plot a bit. | ||
masak | pmichaud: the former solution feels both more permissive and simpler. | 16:33 | |
pmichaud | sooooo | ||
if I did: %*ENV<xyz> = $regex.match($foo); | 16:34 | ||
then %*ENV<xyz> would give me back the match object, but subprocesses would see the stringification of the match object in their environment | |||
masak | 对. yes. | 16:35 | |
pmichaud | do we have to deal with the possibility of binding ? | ||
%*ENV<xyz> := $a; $a++; # ??? | 16:36 | ||
16:37
ruoso left,
stephenlb joined
|
|||
pmichaud | oh, wait, that probably answers it altogether | 16:37 | |
pmichaud looks | |||
masak | it feels to me that is a question pertaining to all special kinds of Associative things, not just the %*ENV hash. | ||
pmichaud | in the case of %*ENV, we have the possibility of | 16:38 | |
my %*ENV = ('xyz' => foo); run("bar"); | |||
which to me says that the sub program should see an environment consisting _only_ of 'xyz' => 'foo' (modulo my syntax error above) | 16:39 | ||
16:40
[particle]1 joined
|
|||
pmichaud | which means we probably need to set the environment at the point of the run call | 16:40 | |
as opposed to trying to do it at the point of the declaration/assignment | |||
masak | as long as &run is the only point where that is needed... | ||
pmichaud | there are others | ||
basically anytime we find ourselves bouncing into external (non-Perl 6) libraries or subprocesses | 16:41 | ||
masak | nod. | ||
16:43
zamolxes left,
[particle] left
|
|||
moritz_ finds it somewhat pleasing that one of the colors in SVG::Plot survived masak++'s revision ;-) | 16:45 | ||
masak | moritz_: I started from that one, and aligned the other ones to that color. :) | 16:46 | |
16:46
synth joined
|
|||
moritz_ | masak: it would have been fine by me if you had altered them all, added more or whatever | 16:47 | |
pmichaud | ...can I see pretty pictures? | ||
or do I have to clone+install+run to do that? | |||
moritz_ | pmichaud: just a second | ||
pmichaud wants to bikeshed too!! :) | 16:48 | ||
moritz_ | moritz.faui2k3.org/tmp/pie-even-better.svg | ||
pmichaud: bikeshed patches are very welcome ;-) | |||
pmichaud | interesting | 16:49 | |
masak | moritz_: wow, how do you calculate the line lengths? | 16:50 | |
16:50
synth left,
synth joined
|
|||
moritz_ | masak: simply alternating | 16:50 | |
masak | oh :) | ||
pmichaud | heh! | ||
interesting heuristic | 16:51 | ||
moritz_ | the next revision makes the dashes grey | ||
masak | I think in the general case, one must MCMCMC a little to make the things not collide. | ||
moritz_ | MCMCMC? | 16:52 | |
masak | en.wikipedia.org/wiki/Markov_chain_Monte_Carlo | ||
16:52
fraterm__ joined
|
|||
masak | don't recall just now what the last 'MC' stood for. | 16:52 | |
16:52
fraterm_work left
|
|||
masak | the term I was after is really 'hill climbing'. | 16:53 | |
moritz_ | Mäsak, Carl | ||
masak | :P | ||
moritz_ | ;-) | ||
masak | is this an elaborate ruse to make me make more commits? :P | ||
16:53
ooo joined
|
|||
moritz_ | could be, but I'd never admit it. | 16:53 | |
masak | also wise. | ||
arnsholt | What are the semantics of | in |%_? | 16:56 | |
moritz_ | foo(%a) passes one positional parameter | ||
foo(|%a) passes all pairs in %a as named arguments | |||
s/parameter/argument/ | |||
arnsholt | Yeah, that's what I thought | 16:57 | |
Then I'm doing something else wrong =) | |||
pmichaud | rakudo's support for | is still a bit shaky sometimes | ||
masak | any particular reason we don't use * on the calling side for flattening? :) | ||
pmichaud | hmmm? | 16:58 | |
moritz_ | masak: yes, ETOOMANYUSESOF* | ||
pmichaud | oh, yes. | ||
originally it was * | |||
it got changed | |||
masak | it didn't work? | ||
pmichaud | if we use * on the calling side, we lose Whatever | ||
masak | oh. | ||
moritz_ | do we? | ||
TimToady | certainly | ||
synth | but but thats operator overloading | ||
masak | I don't immediately see why. | ||
moritz_ | does term:<*> conflict with prefix:<*>? | ||
pmichaud | can't have * in both prefix and term position | ||
TimToady | can't have term/infix ambig | ||
masak | oh, right. | 16:59 | |
now I see it. :) | |||
moritz_ too | |||
TimToady | at best, Whatever could respond to .() | ||
same as types | |||
[particle]1 | just overload x to multiply numbers | 17:00 | |
TimToady | and other values | ||
17:00
[particle]1 is now known as [particle]
|
|||
moritz_ | *($a) is currently specced as identity | 17:00 | |
don't know if I like it | |||
TimToady | that's kind of a fossil, currently | ||
moritz_ | *($a) could also mean $_.($a) | ||
pmichaud | I'm not sure that I like *($a) at all.. not sure why it's there | 17:01 | |
arnsholt | At any rate, I'm overriding .parse($str) in my Grammar, and dispatch with nextwith($str, |%_) | ||
17:01
ooo left
|
|||
pmichaud | arnsholt: it's very unlikely that nextwith will work with parse | 17:01 | |
moritz_ | pmichaud: @array_of_closures.sort: *.(5) is just too tempting ;-) | ||
arnsholt | When I try to run it, I get "invalid arg type in named portion of args\nin method SQL::Grammar::parse (./lib/SQL/Grammar.pm:120)" | ||
pmichaud | because the built-in .parse isn't a rakudo multimethod | ||
(it will eventually work, yes; it just doesn't work today) | 17:02 | ||
arnsholt | Right. That's what I feared | ||
pmichaud | perhaps moving the parse method from builtins into the setting would work | ||
anyway, feel free to file a rt ticket that 'nextwith doesn't work with .parse' | 17:04 | ||
17:05
masak left
|
|||
arnsholt | Yeah, I'll do that | 17:05 | |
In the meantime, any suggestions for calling Grammar's parse from my subclass? | 17:06 | ||
moritz_ | maybe you can try to get it by introspection? | ||
see the t/spec/S12-introspection/*.t test for what is implemented | 17:07 | ||
pmichaud | I don't have an immediate suggestion, no. Sorry bout that | 17:08 | |
perhaps you could call your method something other than 'parse' for the time being? | |||
(I don't like that answer either) | |||
arnsholt | Well, it's a better idea than doing nothing =) | 17:09 | |
17:09
frew__ joined
|
|||
pmichaud | let me see how hard it'll be to move parse | 17:09 | |
arnsholt | Huh. A more barebones thing gets me a Null PMC access | 17:10 | |
pmichaud | oh! | ||
Grammar.parse is visible | |||
so you might be able to do | |||
Grammar::parse(self, $str, |%)) | 17:11 | ||
s/)// | 17:12 | ||
that might fail when Parrot fixes its method definitions to not automatically stick them in the namespace, but it'll work for now | |||
17:14
abra_ joined
|
|||
pmichaud | (and hopefully by the time Parrot does its fix we'll have already fixed Grammar::parse) | 17:14 | |
arnsholt | Hmm. But now $/ isn't set correctly. Any way to do that? | 17:15 | |
pmichaud | not easily | 17:16 | |
we don't have OUTER:: implemented yet to be able to do that rebinding | |||
er, CALLER:: | |||
arnsholt | 'k. That's pretty easy to work around though. I'll just return $/ from the overriding .parse | 17:17 | |
pmichaud | although there's a _chance_ that we can start to get CALLER:: to work now that Parrot has its contexts as PMCs | ||
afk, lunch | 17:21 | ||
17:24
payload left
17:26
frew_ left
|
|||
pmichaud | just a note here that having contextuals automatically look up values in %*ENV makes me a tiny bit uncomfortable (more) | 17:26 | |
it reminds me a bit of PHP's 'register_globals' and/or its superglobals, which of course have been huge sources of security problems | 17:27 | ||
afk, lunch | 17:28 | ||
17:32
abra_ left
17:34
abra joined
|
|||
moritz_ | pmichaud: same here (uncomfortable) | 17:41 | |
17:51
payload joined
|
|||
s1n | rakudo: class A { has $.foo = 'bar'; multi method foo(Str $test) { say $test }}; my $a = A.new; $a.foo("oh hai") | 17:56 | |
p6eval | rakudo b51d94: OUTPUT«push_pmc() not implemented in class 'Sub'» | ||
s1n | rakudobug? | ||
17:57
synth left
|
|||
moritz_ | known bug | 17:58 | |
Ovid++ reported it a few months back | |||
hm | |||
oh wait | |||
I think in Ovid's case it was not a mulit method, just a single one (iirc) | 17:59 | ||
s1n: I'm not sure. So in case of doubt, please report | |||
has $.foo installs a method foo | 18:00 | ||
but IMHO it should be a multi | |||
s1n submits | |||
18:09
lollan left
|
|||
japhb | git question: How do you map from a path name to a file in a working copy back to the associated SHA-1 (without recomputing the hash, I mean)? | 18:11 | |
lambdabot | japhb: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
japhb | diakopter, pong (sorry, didn't see your message earlier) | ||
18:14
colomon joined
18:26
Confield joined
18:29
__ash__ joined
|
|||
__ash__ | is there a way in perl6 rakudo to drop down to PIR | 18:29 | |
18:31
Psyche^ joined
|
|||
alester | Today's sad sad sad commentary: www.reddit.com/r/programming/commen...?context=3 | 18:33 | |
18:35
molaf joined
|
|||
s1n | alester: why do you engage with these people? it's like they're getting some sort of validation by spewing that garbage | 18:36 | |
alester | The people that say it's bad if it's feminine? | ||
s1n | alester: yes, it's one thing to not like a butterfly, but to make slurs and say that we need Satan for a mascot because it's masculine?? that seems like a waste of time to even talk to them | 18:37 | |
alester: that's some of the most immature conjecture i've read about perl6, i don't think there's anything you can say to convince them to remove their head from their bum | 18:39 | ||
alester | I didn't reply to the 2nd guy. | ||
pioto | what's the 'auth' about in: grammar STD:ver<6.0.0.alpha>:auth<perl.org>; | 18:42 | |
author? | |||
s1n | i wouldn't even converse with them, besides, it's not like larry is going to change it so what do they expect to happen? | ||
alester | s1n: I'm not optimizing for my own time. | 18:43 | |
s1n | -Ofun? | ||
alester | I don't expect that the initial guy is going to change his mind. However, I do expect that others will read it. | ||
huf | there, i added more gasoline to that reddit thread :) | 18:45 | |
s1n | huf: i concur | 18:47 | |
18:48
Patterner left,
Psyche^ is now known as Patterner
18:50
pnu left
|
|||
huf | i still think the string "Perl6" in fixed font is the best logo you could hope for ;) i'd be fine with any mascot | 18:50 | |
moritz_ | more bikeshedding. Just what we need. | 18:52 | |
alester | It's outside bikeshedding. | 18:53 | |
cognominal | The Rorschach test is of no use of anymore because of the wikipedia, hopefully we have TimToady and the camelia | 18:54 | |
japhb | pioto, "author(ity)" -- whoever "owns" that release, in some sense | ||
18:54
literal left
18:55
literal joined
|
|||
pioto | japhb: that seems like a very vague concept. what's the utility? | 18:55 | |
18:55
literal left
|
|||
moritz_ | cognominal: the Rorschach test can still be used to identify exterme personalities. And that's what it's always been good for | 18:55 | |
japhb | pioto, I don't know all the reasons off the top of my head, but the simplest one that comes to mind is knowing which side of a fork you're following. It's like namespacing the version numbers. | 18:56 | |
18:56
pnu joined
|
|||
pioto | right. "fork isn't a dirty word anymore" | 18:56 | |
18:56
literal joined
|
|||
pioto | so, autodie would check that it has the right autodie by checking the auth? | 18:57 | |
err, the right Fatal | |||
18:57
literal left
|
|||
pioto | (i dunno if they actually forked it, or what, but that's the only example that popped to mind) | 18:57 | |
18:57
literal joined
|
|||
japhb | pioto, when you 'use', it grabs the right one, according to your spec. | 18:58 | |
You can have both installed on the system. | 18:59 | ||
In fact, you can even use both of them in the same process! | |||
pioto | oww. | ||
but, not in the same scope, presumably. | |||
japhb | (For example, if two different modules used by your main program wanted different forks of some module they both depend on.) | ||
pioto | rather, that wouldn't likely do what you want. | ||
yeah, ok. makes sense. | 19:00 | ||
19:02
M_o_C left,
pnu left
|
|||
cognominal | moritz, my point is that comments about the camelia tells a lot about the people who make them | 19:06 | |
alester | Any comment that starts "I'm no homophobe..." | ||
moritz_ | cognominal: that's a valid point | 19:07 | |
19:07
__ash__ left
19:08
M_o_C joined
|
|||
pmichaud | back from lunch | 19:11 | |
I think one can use two same-named modules in the same scope even... but everything ends up having to be longnamed in order to do that | 19:14 | ||
(i.e., it wouldn't be all that pretty :-) | |||
s1n | ahahaha, i made a quickie logo with my horrid gimp skills: s1n.dyndns.org/perl6.jpg | 19:16 | |
pmichaud | I like it | 19:17 | |
I'm not so sure about the UPC code, though :) | 19:18 | ||
s1n | it was true with perl5 and it'll be true with perl6 :) | ||
yeah that was just me learning how to take something off and add my own text | |||
i'm sure there are others with better artistic skills than i that could re-image that | |||
19:18
pnu joined
19:22
icwiener joined
19:29
M_o_C left
19:32
jferrero joined
19:33
pnu left
19:40
drbean left,
drbean joined
19:41
__ash__ joined
19:42
__ash__ left
19:43
abra left
19:50
pnu joined
|
|||
cognominal | sln, "made in indonesia", is that some Java in disguise? | 19:52 | |
19:52
rfordinal left
19:53
cdarroch joined
19:55
quietfanatic left
19:56
sharada left
19:58
iblechbot joined
|
|||
Tene | pmichaud: re twitter: eh? | 20:02 | |
TimToady | subliminal advertising, I guess | 20:03 | |
Tene | the 'rakudo' account on twitter seems to be nonsense. | ||
pmichaud | ohhhh | ||
I'm playing with twirssi -- sent the tweet to the wrong place | 20:04 | ||
fixing | |||
TimToady | twirssi?!?! | ||
but will it do the cute face pictures? | |||
pmichaud | twirssi is an extension to irssi that allows tweets and updates in irssi | 20:05 | |
I already have an alias to send twitter messages to @rakudoperl from my irssi window, I accidentally triggered it | |||
(removing that alias now :-) | |||
TimToady | you should tweet an unsubscribe now to undo whatever you did | 20:06 | |
Tene | obviously | 20:07 | |
pmichaud | heh | ||
I removed the tweet; we'll just let everyone else guess | |||
20:08
donaldh joined
20:09
pmurias left
|
|||
pmichaud | afk, fetching ice cream | 20:09 | |
[particle] | ^ git fetch icecream | 20:11 | |
20:13
synth joined
20:16
rfordinal joined
20:18
sharada joined
|
|||
dalek | kudo: 3db3e37 | moritz++ | build/gen_setting_pm.pl: [build] be a bit more idiomatic in gen_setting_pm.pl |
20:24 | |
20:42
takadonet left
20:57
icwiener left
20:58
frederico joined
20:59
rfordinal left,
donaldh left
21:00
jlmoko joined
21:02
timbunce joined
21:03
zamolxes joined,
ruoso joined
|
|||
timbunce | The graph of Rakudo Spectest Progress on rakudo.org/status seems oddly compressed in the horizontal axis. The image is much wider than the graph. Any reason for that? Is it possible to get a wider version? | 21:05 | |
moritz_ | timbunce: the reason is that GD::Graph does no sub pixel rendering | ||
timbunce: rakudo.de/ has a non-stacked version plotted with gunplot | 21:06 | ||
timbunce: I can also try to use SVG::Plot to generate one that's a bit wider, if that's of any help | |||
timbunce | moritz_: the rakudo.de version will do me nicely - thanks! | 21:07 | |
21:11
PacoLinux left,
frederico left
|
|||
moritz_ | I pushed a new branch to github, split-gen-setting | 21:13 | |
it's a step towards compiling each setting file separately | 21:14 | ||
21:14
PacoLinux joined
|
|||
pmichaud | moritz_: (haven't looked at the branch) fwiw, I think I'd like the src/gen_* files to go into their own subdirectory | 21:16 | |
I was going to do it that way to begin with, but I let other folks talk me out of it at the time. | |||
moritz_ | pmichaud: my branch uses src/gen_setting/*.pm for now | 21:17 | |
pmichaud | *.pir, you mean? | ||
moritz_ | *.pm | ||
pmichaud | what's the purpose of the *.pm files? | ||
moritz_ | adding a 'no Main;' to each | ||
pmichaud | oh | ||
that's going to change anyway | 21:18 | ||
moritz_ | so I don't need the step I've beeon working on. Great. | ||
pmichaud | perhaps better would be to just add "no Main;" to each of the src/setting/*.pm files directly | ||
moritz_ | aye | ||
anyway, off to bed now | |||
pmichaud | ultimately they'll need to say 'CORE' instead | 21:19 | |
moritz_ | will work a bit on it tomorrow | ||
21:20
Whiteknight joined
21:21
synth left
21:28
nihiliad left
21:35
masak joined
|
|||
masak | in response to a tweet of mine saying that people are shocked by Perl 6's image because they are used to programming languages which take themselves too seriously, I got this back from a good friend of mine, who happens to be female: twitter.com/giiku/status/3762841239 | 21:37 | |
someone willing to make a picture for such a t-shirt? :) | |||
sharada | This person has protected their tweets. ??? | 21:38 | |
pmichaud | I can't see the response | ||
masak | oh, dang. | ||
Tene | I don't know what it says, but I'll take any photos you want. | ||
masak | the tweet was "@carlmasak Hell, if anything, it's not enough. I know I'd get a Perl 6 t-shirt if it sported a cute manga-style girl with butterfly wings." | 21:39 | |
Tene | ah, "make", not "take" | ||
Tene reading fail. | |||
masak | :) | ||
21:39
_timbunce joined
|
|||
Tene | I'll pass it on to one of my gfs. She likes manga-style drawing. | 21:39 | |
masak | excellent. | 21:40 | |
21:40
timbunce left,
_timbunce is now known as timbunce
|
|||
pmichaud | if given an image, I can put it on the t-shirt shop, too :) | 21:41 | |
masak | pmichaud: in t/compilers/pge/perl6regex/rx_quantifiers, lines 208-210, should '**?' in the test description perhaps be '**' instead? (copy/paste error?) | ||
PerlJam | (masak's friend)++ | ||
21:41
tak11 joined
|
|||
masak | should I tell her that we're working on a t-shirt for her? | 21:42 | |
pmichaud | masak: Yes. | ||
yes to test description, that is | |||
masak | gotcha. | ||
pmichaud | as far as "working on t-shirt".... I can't do anything until there's an image :) | 21:43 | |
PerlJam | I wonder if I could get my brother to draw such a thing. | ||
masak | draw several! it'll probably need to go through some iterations anyway, just like everything else. | ||
21:43
fraterm__ left
|
|||
masak | pmichaud: I can try and patch it if you like. I haven't had Parrot commit access for quite some time. | 21:46 | |
pmichaud | masak: I can take care of it, no problem (and thanks -- masak++) | 21:47 | |
I have the file open already :) | |||
masak | goodie. | ||
21:50
M_o_C joined
|
|||
PerlJam | I just talked to my brother on the phone and he's going to try to draw a manga-style girl with butterfly wings that look just like Camelia's. | 21:52 | |
pmichaud | cool | ||
PerlJam | (He's kinda shy about his drawing though he does it quite prolificly) | ||
pmichaud | we don't have to give him credit if he doesn't want it :) | ||
PerlJam | heh | ||
Well, I figure since he's always drawing *something*, why not try to direct him towards drawing something *useful* to us. :) | 21:53 | ||
pmichaud | PerlJam: agreed! | 21:54 | |
I can certainly forward royalties, if any show up :) | |||
mberends | does the latest Rakudo commit pass all spectests? 36 scripts fail here after realclean etc. | 21:55 | |
colomon | Last I checked, arith.t was failing a bunch of tests. | ||
PerlJam | btw, I don't know how many of you have played with Padre, but I'm liking it more and more. It's got some quirks, but it's also got some really neat features. (and it is only at 0.45) | ||
colomon | Think that was yesterday? | ||
pmichaud | mberends: it sometimes requires doing a complete rebuild of parrot | 21:56 | |
i.e., remove any parrot and parrot_install subdir and try again | |||
Parrot's "make realclean" isn't always as really clean as we'd like it to be | |||
PerlJam | make super-duper-clean | ||
masak | make splode | 21:57 | |
mberends | pmichaud: thanks, will do. super-duper-extra-ultra-clean | ||
colomon | rakudo: say sin(pi/2.0 + 0i); | ||
p6eval | rakudo 3db3e3: OUTPUT«1» | ||
pmichaud | anyway, I've been doing builds and spectests against parrot trunk (+ my modifications) all morning w/o significant failure | ||
colomon | rakudo: say sin(pi/2.0 + 1i) | ||
pmichaud | (right now I'm working on contextuals. it's taking longer than I had planned) | ||
p6eval | rakudo 3db3e3: OUTPUT«0.957871453708344» | ||
PerlJam | gah, now my facial hair smells like BBQ and I'll be salivating for the rest of the day unless I get it to not smell that way | 21:58 | |
pmichaud | PerlJam: try tomato paste | ||
colomon | Oooo, do we still have the bug where Complexes mysteriously turn to Nums? | ||
pmichaud | I hear that takes the... oh, wait, that's for eliminating skunk smell | ||
colomon: Parrot likes to do that, unfortunately :-( | |||
PerlJam | pmichaud: I could pour Dr Pepper on my face .... it's acidic just like tomato paste :) | 21:59 | |
colomon | pmichaud: It's great when the complex has a 0 imaginary part, but sucks the rest of the time. | ||
pmichaud | Parrot's "get_number" function for Complex PMCs likes to return the magnitude of the imaginary vector | ||
colomon | I wanted to check because I was getting mysterious successes for sin(Complex). | ||
pmichaud | so yes, works great when $foo.im == 0, bites us when it's not. | ||
22:00
angoladon joined
|
|||
colomon | Okay, just wanted to check on that quickly. Still working on getting an improved suite of sin tests when I get the chance. Should have a pretty full set soon, then I'll take a look at actually making them work. :) | 22:01 | |
afk | |||
22:04
Whiteknight left
|
|||
PerlJam | "sin tests"? Is that like when the snake tempts you to eat the fruit of knowledge? | 22:04 | |
22:06
angoladon left
|
|||
pmichaud | afk, travel | 22:13 | |
masak | PerlJam: it must be, if you ask me. they're like ordinary TAP tests, but instead of 'ok' and 'not ok', you have 'well, one bite cannot hurt' and 'get behind me, serpent', respectively. and there's no plan. | 22:14 | |
22:15
KyleHa left
22:19
alester left
22:27
molaf left
22:28
SmokeMachine left
22:29
dukeleto left
|
|||
colomon | rakudo: say sin(-3.0 + 0i); say sin(-3.0); | 22:34 | |
p6eval | rakudo 3db3e3: OUTPUT«0.141120008059867-0.141120008059867» | ||
colomon | rakudo: say sin(-3.92699 + 0i); say sin(-3.92699); | 22:35 | |
p6eval | rakudo 3db3e3: OUTPUT«-0.7071062034890930.707106203489093» | ||
22:37
timbunce left
|
|||
masak | mmm... in any project, as soon as you start passing tests, it feels like you're _doing_ something. | 22:38 | |
I think that's what I like about TDD the most, that right from the start, you're doing something. | |||
colomon | TDD is definitely keen for this sort of math library work. It's just the right level of testing for it. | 22:41 | |
22:41
iblechbot left
22:42
cdarroch left
22:45
sharada left
22:53
rbaumer joined
|
|||
TimToady | it also tends to flush out spec issues right at the beginning | 22:53 | |
masak | speaking of which... | 22:56 | |
what's the behaviour of calling &break outside of a block of some kind? | 22:58 | ||
Juerd usually writes code without any specification or even a clue as to where the project's going | |||
TDD doesn't really work when there's no clarity over how things should behave :) | 22:59 | ||
masak | even without a spec, there can still be clarity as to specific use cases :) | 23:01 | |
why, this Monday, I threw together github.com/masak/perl6-literate -- and I wrote/implemented three tests for it. that's all it needed, but I'm really glad I did it that way. | 23:02 | ||
the third test contained a surprise which I probably would have found 'the hard way' had I not used TDD. | 23:03 | ||
23:03
dukeleto joined
|
|||
masak | time for some beauty sleep. & | 23:11 | |
23:11
masak left
23:50
tomd joined
23:51
tomd left
|