»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released! Set by diakopter on 6 September 2010. |
|||
00:01
pythonian4000afk is now known as pythonian4000
00:03
rvrgs left
|
|||
takadonet | nuts $/ not used in s/// ! | 00:04 | |
00:05
pythonian4000 is now known as pythonian4000afk
|
|||
colomon | "starwars gaming league"? | 00:08 | |
takadonet | yes | 00:09 | |
colomon: starfighters.com/lsf/ | 00:10 | ||
It's dead and gone now but the site still up | |||
colomon was once playing in three different Star Wars RPG games (using three different sets of rules). | |||
oooo, X-Wing vs Tie Fighter! | |||
takadonet | does rakudo have mod working yet? | 00:11 | |
colomon | mod? as far as I know that's been working for about four months now. | 00:12 | |
rakudo: say 35234 mod 7 | |||
p6eval | rakudo d49eea: OUTPUT«3» | ||
takadonet | .... not working for me... | ||
colomon | what are you trying to do with it? | ||
takadonet | $tabstop + $offset mod $tabstop | ||
colomon | do you know if they are actual Ints? | 00:13 | |
(and why not use % instead of mod?) | |||
takadonet | nevermind forgot sigil! | ||
it was not working either but that's because of the missing sigil | 00:14 | ||
colomon | The Mystery of the Missing Sigil | ||
colomon is far too tired, and therefore a bit punchy | 00:15 | ||
takadonet | still need to pos of matches within a s/// | ||
00:16
rvrgs joined
|
|||
colomon | maybe do it as a split instead? | 00:16 | |
takadonet | thinking of it | ||
but need :g which does not work with split.... | |||
probably wrong about that | 00:17 | ||
i'll get it | |||
colomon | what's the expression you're trying to get? | ||
takadonet | getting all the position of each tab in a string | 00:18 | |
colomon | split on \t with the :all modifier? | 00:19 | |
that will give you the match before any changes you make to the string, though... | |||
takadonet | might be enough | ||
00:20
jhuni left
|
|||
colomon | it will only return Match objects for the \t's (strings for the bits in between), but that will get you the starting position of each. | 00:21 | |
00:22
starcoder left,
starcoder joined
00:24
pythonian4000afk is now known as pythonian4000
00:25
risou left
00:26
rgrau_ left
|
|||
takadonet | rakudo: my @a="\t\tx".split(/\t/,:all); for(@a) -> $x { say $x.WHAT } | 00:31 | |
p6eval | rakudo d49eea: OUTPUT«Str()Match()Str()Match()Str()» | ||
takadonet | that normal right? | ||
colomon | yes | ||
takadonet | k | ||
colomon | that's what I was trying to say in my last sentence. | ||
takadonet | colomon: thanks for being patience :( | 00:34 | |
:) | |||
00:34
johnjohn101 joined
|
|||
takadonet | it's either Perl 6 or playing starcraft 2.... | 00:35 | |
00:35
masonkramer joined
00:36
rvrgs left
|
|||
takadonet | it works!!!! | 00:37 | |
colomon | \o/ | ||
afk # toddler bath time | 00:38 | ||
jackyboy | hey how do you write to a file handle? | ||
colomon | $fh.say | 00:39 | |
jackyboy | hmm i tried that and it gave me an error | 00:41 | |
gist.github.com/646099 | 00:42 | ||
I get the error: Confused at line 6, near $outFile.s | |||
takadonet | need '()' around the hello world if you use the post fix way | 00:44 | |
00:49
masonkramer left,
masonkramer_ joined,
jackyboy left
00:51
jackyboy joined
|
|||
jackyboy | argh my anti-virus software reset my pc | 00:51 | |
:S | |||
so does anyone know why writing to a filehandle doesn't seem to work? | |||
takadonet | oh | 00:52 | |
need '()' around the hello world if you use the post fix way | |||
00:52
johnjohn101 left
|
|||
takadonet | i.e: $outFile.say("Hello World"); | 00:52 | |
00:53
johnjohn101 joined
|
|||
jackyboy | ooo i see | 00:53 | |
thanks mate | |||
i thought the spec states it didn't need them | |||
bugger | |||
masonkramer_ | waitaminutee.... | 00:54 | |
takadonet | it works.... talk to one of the experts when they are online :) | ||
masonkramer_ | is there no way to declare that a parameter must be something that does a certain role? | 00:55 | |
jackyboy | ahahaha | 00:57 | |
oh dear | |||
$fh.say("Hello world"); works but $fh.say ("Hello World"); doesn't | |||
i wonder if that is intentional | |||
mason: I guess there would be | 00:58 | ||
masonkramer_ | how would I declare a method that operates on an Iterable | 01:02 | |
something like, and I'm just making this up: | |||
method foo($a does Iterable) { } | |||
01:04
TiMBuS left
01:05
tylercurtis joined
01:06
kiithroen joined
01:09
TiMBuS joined
|
|||
avuserow | jackyboy: also try: $fh.say: "Hello world"; | 01:22 | |
rakudo: $*STDOUT.say: "hi world"; | 01:23 | ||
p6eval | rakudo d49eea: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in 'Mu::say' at line 1256:CORE.setting in main program body at line 22:/tmp/oDWxwGN3n6» | ||
avuserow | maybe not implemented yet or I have the syntax slightly off | ||
01:25
QinGW joined,
bjarneh joined
|
|||
jackyboy | yeah avuserow I don't think that form has been implemented yet | 01:25 | |
it didn't work for me when i tried | |||
avuserow | anyway, I think there will be some nicer syntax you can use to avoid the parens | 01:26 | |
01:37
molaf left
|
|||
colomon | $fh.say is already implemented and working. | 01:39 | |
$*STDOUT isn't right, and that "Too many positional parameters passed" is what you get instead of an undeclared variable error at the moment. :( | |||
rakudo: $*OUT.say: "hello world"; | 01:40 | ||
p6eval | rakudo d49eea: OUTPUT«hello world» | ||
01:41
whiteknight left
|
|||
colomon | masonkramer_: method foo(Iterable $a) { } | 01:43 | |
I've been doing that all over the ABC code lately. | |||
colomon is not sure he fully groks roles, but he is enjoying using them. | |||
masonkramer_ | colomon: Alright, thanks. I was worried there for a moment | ||
colomon | no worries | 01:44 | |
;) | |||
01:48
florz left
01:49
molaf joined
01:55
tylercurtis left
01:56
takadonet left
01:58
tylercurtis joined,
tylercurtis left
01:59
flussence_ joined
02:00
florz joined,
kiithroen left
02:01
flussence left
02:08
kiithroen joined
|
|||
jackyboy | One final question of the day: what is the command line argument variable in perl6? @*ARGS doesn't seem to work. | 02:18 | |
? | |||
02:20
emoken joined
|
|||
colomon | @*ARGS works fine (just checked) | 02:25 | |
02:34
kiithroen left,
kiithroen joined
|
|||
colomon | rakudo: my %h = a => 2, b => 3, c => 31; for %h -> $a { say $a; } | 02:35 | |
p6eval | rakudo d49eea: OUTPUT«a 2b 3c 31» | ||
colomon | huh. Hash does Iterable, but that's not in the spec? | 02:45 | |
jackyboy | colomon: Thanks mate. It does indeed. I wonder why I was having so many problems this morning with it | 02:46 | |
02:48
envi joined
02:56
kiithroen left
02:57
kiithroen joined
03:00
kiithroen left
03:02
agentzh joined
|
|||
colomon | rakudo: class A { has $.a; }; my $a = A.new(:a(10)); say $a.perl; $a.a = 20; say $a.perl; | 03:04 | |
p6eval | rakudo d49eea: OUTPUT«A.new(a => 10)Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/a18USoldmT» | ||
colomon | rakudo: class A { has $.a is rw; }; my $a = A.new(:a(10)); say $a.perl; $a.a = 20; say $a.perl; | ||
p6eval | rakudo d49eea: OUTPUT«A.new(a => 10)A.new(a => 20)» | ||
colomon | rakudo: class A { has $.a is rw; method blue($g) { $!a = $gl } }; my $a = A.new(:a(10)); say $a.perl; $a.blue(20); say $a.perl; | 03:06 | |
p6eval | rakudo d49eea: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
colomon | rakudo: class A { has $.a is rw; method blue($g) { $!a = $g; } }; my $a = A.new(:a(10)); say $a.perl; $a.blue(20); say $a.perl; | ||
p6eval | rakudo d49eea: OUTPUT«A.new(a => 10)A.new(a => 20)» | ||
colomon | rakudo: class A { has $.a; method blue($g) { $!a = $g; } }; my $a = A.new(:a(10)); say $a.perl; $a.blue(20); say $a.perl; | ||
p6eval | rakudo d49eea: OUTPUT«A.new(a => 10)A.new(a => 20)» | ||
03:11
kiithroen joined
|
|||
sorear | good * #perl6 | 03:12 | |
03:14
jackyboy left
03:15
bjarneh left,
orafu left
03:16
bobkare left
03:19
bobkare joined
03:31
kanishka left
03:40
patch_ is now known as patch
03:44
emoken left
03:46
kanishka joined
03:51
kanishka left
04:07
sftp left
04:16
silug left
04:20
patspam joined
04:29
kanishka joined
04:35
patspam left
04:43
johnjohn101 left
04:51
kiithroen left
|
|||
dalek | ecs: 32511f7 | TimToady++ | S02-bits.pod: [S02] be more explicit about iterating sets/bags The intent has always been that when you use a set or bag as a list, it behaves as a list of its keys, regardless of any underlying hash interface it might also respond to. You must use .pairs explicitly to get the hash pairs out of a set or bag as a list. |
04:57 | |
05:03
nymacro joined
|
|||
sorear | TimToady \o/ | 05:04 | |
05:49
pythonian4000 is now known as pythonian4000afk
05:52
kaare joined
05:53
kaare is now known as Guest85079
05:54
flussence_ left,
araujo left,
colomon left,
lue left,
Tene left,
f00li5h left,
thepler left,
literal left
05:55
lue joined
05:57
Tene joined,
Tene left,
Tene joined
05:58
f00li5h joined
06:05
wtw joined
06:06
flussence joined
06:13
araujo joined
06:14
thepler joined
06:15
jasonmay left
06:16
colomon joined
06:17
literal joined
06:18
jasonmay joined
06:30
meppl joined
06:32
pythonian4000afk is now known as pythonian4000
06:39
uniejo joined,
uniejo left
06:49
pythonian4000 is now known as pythonian4000afk
|
|||
dalek | ecs: 60aef3a | TimToady++ | S (5 files): Adjust proto semantics to address various concerns The concerns in question are admirably laid out in: 6guts.wordpress.com/2010/10/17/wres...-dispatch/ With the new design, proto routines are no longer thought of as being called directly, but are generic. Instead they are instantiated into "dispatch" routines (where "dispatch" is the same semantic slot as "only", distinguished only to differentiate them from true "only" routine so that we can calculate candidate sets correctly (to which true "only" routines are opaque but "dispatch" routines are transparent). In all other respects a dispatch routine is just an autogenerated "only". (It is not anticipated that a user would ever want to write a dispatch directly, but I could be wrong.) Each instantiated dispatch routine manages its own candidate list. We also allow for a proto to be autogenerated if none is found in the outer context. This should fix complaints about required "proto" declarations, I hope. |
06:56 | |
TimToady | well, jet lag has to be good for something... | 07:03 | |
07:07
justatheory left
07:11
zulon joined
07:22
kst left
07:27
kst joined
07:41
mavrc joined
07:46
timbunce joined
|
|||
diakopter | TimToady: g'morn | 07:48 | |
07:48
srikanthj joined
|
|||
srikanthj | Hi all | 07:49 | |
diakopter | ooooo new keyword. I like | ||
07:53
srikanthj left
07:55
zulon left
|
|||
diakopter | phenny: ask TimToady I note the removal of return type conjecture... does this mean you suspect otherwise-identical routines can't be distinguished by return type? | 07:58 | |
phenny | diakopter: I'll pass that on when TimToady is around. | ||
08:04
jhuni joined,
kanishka left
08:20
IRSeekBot left
08:24
IRSeekBot joined
08:36
xinming_ joined
08:40
xinming left
08:47
wamba joined
08:50
Trashlord joined
|
|||
sorear | diakopter: That's ripple effect; functions used to know the expected type when they were called, they don't anymore | 08:59 | |
want() is gone | |||
I need to read that commit when I have a bit more time | |||
diakopter: also, kid51 has asked me to be on the parrot technical architecture team. :) | 09:03 | ||
09:05
wamba left
09:11
pythonian4000afk is now known as pythonian4000
09:12
orafu joined,
Axius joined
09:17
AndreasX joined
09:18
sbp left,
nsh left,
AndreasX left,
bobkare left
09:19
nsh- joined,
bobkare joined,
sbp joined
09:26
clkao left,
dakkar joined
09:27
robinsmidsrod left,
robinsmidsrod joined
09:28
clkao joined
09:30
am0c^ joined
09:34
lge joined
09:39
am0c^ left
09:40
Getty joined
09:47
masak joined
|
|||
masak | oh hai, #perl6! | 09:47 | |
sorear | hiii masak | 09:48 | |
masak | hiiii | ||
09:51
Axius left
|
|||
masak backlogs | 09:54 | ||
09:56
Guest85079 is now known as kaare_
09:58
uniejo joined
|
|||
uniejo rediscovers irc... | 09:58 | ||
sorear | Hello! | 09:59 | |
masak | uniejo! \o/ | ||
10:02
baux joined
10:08
Getty left
10:15
QinGW left
10:19
Cameo joined
10:23
zulon joined
10:31
am0c^ joined
10:35
MayDaniel joined,
flussence left
10:36
am0c^ left
10:37
flussence joined
10:56
nadim left
10:57
nadim joined
11:03
IllvilJa left
11:17
MayDaniel left
11:20
zulon left
11:25
pythonian4000 is now known as pythonian4000afk
11:28
nymacro left
11:31
johnjohn101 joined
11:41
zulon joined
11:45
Cameo left
11:46
lge left
11:49
Trashlord left
11:51
Trashlord joined
|
|||
masak | rakudo: $*OUT.say: "OH HAI" | 11:55 | |
p6eval | rakudo d49eea: OUTPUT«OH HAI» | ||
masak | $*OUT, not $*STDOUT. | ||
oh; the people in the backlog found that out themselves. | 11:56 | ||
11:56
colomon left,
colomon joined,
colomon left
|
|||
masak | ooh, TimToady++ has addressed various concerns! \o/ | 11:57 | |
masak reads expectantly and tries to grok | |||
heh; sorear and diakopter seem to occupy the same mental slot in my brain ("frighteningy smart person") -- so when they talk to each other, my brain goes "huh?" :) | 11:59 | ||
12:05
Cameo- joined
12:06
hanekomu_ joined
12:13
pythonian4000afk is now known as pythonian4000
12:15
takadonet joined
|
|||
takadonet | hey | 12:15 | |
masak | salutations | 12:16 | |
takadonet | masak: what spec page should I look for when I have 'Cannot modify readonly value' problems? | 12:21 | |
masak | you should use p6eval and talk to us. | 12:22 | |
rakudo: sub foo($x) { $x = 42 }; my $a = 5; foo($a) | |||
p6eval | rakudo d49eea: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in 'foo' at line 22:/tmp/645qFk3GW0 in main program body at line 22:/tmp/645qFk3GW0» | ||
masak | anything like that? | ||
takadonet | yes . only different is... | 12:23 | |
masak | rakudo: sub foo($x is copy) { $x = 42; say $x }; my $a = 5; foo($a); say $a | ||
p6eval | rakudo d49eea: OUTPUT«425» | ||
masak | rakudo: sub foo($x is rw) { $x = 42; say $x }; my $a = 5; foo($a); say $a | ||
p6eval | rakudo d49eea: OUTPUT«4242» | ||
takadonet | sub foo($x) { my $y = $x ; $y +=2 }; my $a = 5; foo($a) | ||
... | |||
rakudo: sub foo($x) { my $y = $x ; $y +=2 }; my $a = 5; foo($a) | |||
p6eval | rakudo d49eea: ( no output ) | ||
masak | that works fine. | ||
takadonet | not for me... | ||
masak | then you golfed it wrong. try again. | 12:24 | |
takadonet | hmm well I need a coffee first before I can think so one min | ||
I'm horrible at golfing | |||
masak | practice perfects :P | 12:27 | |
arnsholt | practice betters? | 12:28 | |
masak | doing betters. | 12:30 | |
do->good. | 12:31 | ||
rakudo: class A { only method foo { say "OH HAI" } }; A.new.foo | 12:42 | ||
p6eval | rakudo d49eea: OUTPUT«OH HAI» | 12:43 | |
masak | rakudo: class A { only method foo { say "OH HAI" }; only method foo { say "OH HAI again!" }; A.new.foo | ||
p6eval | rakudo d49eea: OUTPUT«===SORRY!===Can not declare only method foo when another method with this name was already declared at line 22, near "; A.new.fo"» | ||
12:43
MayDaniel joined
|
|||
masak | rakudo: class A { only method foo { say "A" } }; class B is A { only method foo { say "B" } }; B.new.foo | 12:43 | |
p6eval | rakudo d49eea: OUTPUT«B» | ||
masak | rakudo: class A { only method foo { say "A" } }; class B is A { only method foo { say "B" } }; B.new.A::foo | 12:44 | |
p6eval | rakudo d49eea: OUTPUT«A» | ||
masak | rakudo: role A { only method foo { say "A" } }; class B does A { only method foo { say "B" } }; B.new.foo | ||
p6eval | rakudo d49eea: OUTPUT«B» | ||
masak | rakudo: role A { only method foo { say "A" } }; class B does A { only method foo { say "B" } }; B.new.A::foo | ||
p6eval | rakudo d49eea: OUTPUT«A» | ||
masak | makes sense, I guess. | ||
rakudo: role A { multi method foo(Int) { say "Int" } }; class B does A { multi method foo(Str) { say "Str" } }; given B.new { .foo(42); .foo("OH HAI") } | 12:46 | ||
p6eval | rakudo d49eea: OUTPUT«IntStr» | ||
masak | \o/ | ||
jnthn++ | |||
rakudo: role A { multi method foo(Int) { say "Int" } }; class B does A { multi method foo(Str) { say "Str" } }; given B.new { .A::foo(42); .A::foo("OH HAI") } | |||
p6eval | rakudo d49eea: OUTPUT«IntNo applicable candidates found to dispatch to for 'foo'. Available candidates are::(Mu : Int ;; *%_) in main program body at line 22:/tmp/vdshK0858v» | ||
masak | nice. | 12:47 | |
12:48
masonkramer_ left
12:49
masonkramer joined
|
|||
takadonet | rakudo: my $ya = ''; $ya ~~ s/<ws>$/\t/; say "'$ya'" | 12:55 | |
p6eval | rakudo d49eea: OUTPUT«' '» | ||
masak | rakudo: say ?('' ~~ /<ws>/) | 12:57 | |
p6eval | rakudo d49eea: OUTPUT«Bool::True» | ||
12:58
perlygatekeeper left
|
|||
takadonet | rakudo: my @e=("a\ta","b\tb"); for (@e) -> $x { $x ~~ s/\t/c/; } | 13:00 | |
13:00
javs joined
|
|||
p6eval | rakudo d49eea: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in <anon> at line 22:/tmp/z_dib6Jb5V in main program body at line 1» | 13:00 | |
takadonet | golfed it! | ||
masak | rakudo: my @e=("a\ta","b\tb"); for (@e) -> $x is rw { $x ~~ s/\t/c/; } | 13:01 | |
p6eval | rakudo d49eea: ( no output ) | ||
masak | rakudo: my @e=("a\ta","b\tb"); for (@e) -> $x is rw { $x ~~ s/\t/c/; }; say @a.perl | ||
p6eval | rakudo d49eea: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
masak | hm. | ||
rakudo: my @e=("a\ta","b\tb"); for (@e) -> $x is rw { $x ~~ s/\t/c/; }; .say for @a | |||
p6eval | rakudo d49eea: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
masak | oh. | ||
rakudo: my @e=("a\ta","b\tb"); for (@e) -> $x is rw { $x ~~ s/\t/c/; }; say @e.perl | 13:02 | ||
p6eval | rakudo d49eea: OUTPUT«["aca", "bcb"]» | ||
takadonet | really? | ||
masonkramer | is there a way to export a sub with a function signature? | ||
masak | masonkramer: just... export it? | 13:03 | |
masonkramer | rakudo: sub foo is export ( :DEFAULT ) (Iterable $thingy) { ... } | ||
p6eval | rakudo d49eea: OUTPUT«===SORRY!===Confused at line 22, near "sub foo is"» | ||
masak | masonkramer: the 'is export' goes after the signature. | ||
masonkramer: see S06. | |||
takadonet: yes, really. it's actually the same thinking as with the sub. | |||
takadonet | masak: thanks... one more bug coming up... well I think it is | 13:04 | |
masonkramer | thanks masak | ||
masak has got to fix the "2 passed, 3 (or more) expected" bug | |||
13:09
pythonian4000 is now known as pythonian4000afk
|
|||
masak | moritz_++ already did some investigating groundwork on it, IIRC. he found that it's related to the backtrace printer. | 13:11 | |
rakudo: say $x | 13:18 | ||
p6eval | rakudo d49eea: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
masak | I can't reproduce this error locally... | ||
takadonet | different version of perl6? | 13:19 | |
masak | same build of Rakudo. | ||
13:19
Patterner left
|
|||
masak | might be a different build of Parrot. | 13:19 | |
masak tries downgrading Parrot and rebuilding | 13:20 | ||
frettled | Will it then be a parakeet? | ||
masak | going from r49638 to r49584. | 13:21 | |
takadonet | rakudo: my $ya=''; $ya ~~ s/<ws>$/\t/ ; say "'$ya'" | 13:25 | |
p6eval | rakudo d49eea: OUTPUT«' '» | ||
takadonet | rakudo: my $ya=''; $ya ~~ s/<ws>+$/\t/ ; say "'$ya'" | ||
p6eval | rakudo d49eea: OUTPUT«(timeout)» | ||
13:26
javs left
|
|||
masak | <ws>+ is always wrong, and due to some misunderstanding by the programmer. | 13:26 | |
on the other hand, it shouldn't hang. | |||
takadonet | it hangs | ||
masak | I know. | ||
it shouldn't do that. | 13:27 | ||
currently it does, for easy-to-undestand reasons. | |||
takadonet | but i'm doing a 1 to 1 mapping of a per l5 module so going to have to fix this out :) | ||
masak | good luck. keep asking pointed questions. that helps. | ||
flussence | that OUTPUT«' '» seems off to me, where's the whitespace coming from? | ||
masak | it's the \t | 13:28 | |
takadonet | ya replacing a single whitespace with a tab | ||
flussence | oh, does <ws> match zero or more? | 13:30 | |
masak | yes. | ||
<ws> is a lot more magical than \s | |||
see S05. | 13:31 | ||
flussence | ah, so it's like the whitespace inside a perl5 m//x? | ||
masak | I'm not sure I understand the comparison. | ||
13:32
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
flussence | probably because I'm bad at describing things :) | 13:33 | |
masak | do->good. :) | ||
results of downgrading Parrot: still can't reproduce the error. | 13:34 | ||
could someone do me a favor and try this at home? | |||
rakudo: $x | |||
p6eval | rakudo d49eea: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
masak | AH! | 13:35 | |
it only happens when I put things in a file. | |||
not with -e | |||
that's clue number 2, for those following along :) | |||
13:38
tzhs joined
|
|||
takadonet | masak: ... | 13:45 | |
13:45
zulon left
13:48
Cameo- left
13:50
rgrau_ joined
|
|||
masak | reading pugs.blogs.com/talks/boston-deploying-perl6.pdf , one thing in particular strikes me. au was probably one of the last people keeping the "Perl 6 is the next major version of Perl" meme in place. the "Perl 5 and Perl 6' meme won ground in the post-Pugs world. | 13:52 | |
also, nice syntax coloring. I might steal that for my blog. | 13:53 | ||
takadonet | long time since I seen that presentation | 13:54 | |
masak | ooh, infix:<err>! (slide 64) | 13:55 | |
takadonet | nuts... something odd again! | 13:56 | |
masak | I think it has since mutated into infix:<orelse>. but I might be wrong. | ||
we also got an infix:<andthen>. | |||
they're non-trivial to implement, due to their odd thunking behavior. thus we don't have them in Rakudo yet. | 13:57 | ||
when I turn of the Perl 6 backtracer, the error is reported as occurring in "perl6;PCT;HLLCompiler;lineof". | 14:04 | ||
but, importantly, the LTA bug still persists: "too few positional arguments: 2 passed, 3 (or more) expected" | 14:05 | ||
this seems to be counter to what moritz_++ reports in rt.perl.org/rt3/Ticket/Display.html?id=78252 | |||
but on the other hand, moritz_ seems to have run with -e, so that's different too. | 14:06 | ||
s/turn of/turn off/ | 14:07 | ||
14:21
johnjohn101 left
14:22
uniejo left
14:24
slavik1 joined
14:37
hanekom__ joined,
hanekomu_ left
14:40
kanishka joined
14:47
MayDaniel left
14:48
MayDaniel joined
|
|||
masak | rakudo: class A { our method foo { say "OH HAI" } }; &A::foo.wrap: { say "before"; callsame; say "after" }; A.new.foo | 14:48 | |
p6eval | rakudo d49eea: OUTPUT«beforeOH HAIafter» | ||
masak | rakudo: class A { our method foo { say "A" } }; class B { method foo { say "B" } }; &A::foo.wrap: { say "before"; callsame; say "after" }; B.new.foo | 14:49 | |
p6eval | rakudo d49eea: OUTPUT«B» | ||
masak | oh right. | ||
rakudo: class A { our method foo { say "A" } }; class B { method foo { say "B"; callsame } }; &A::foo.wrap: { say "before"; callsame; say "after" }; B.new.foo | |||
p6eval | rakudo d49eea: OUTPUT«B» | ||
masak | erghm. | ||
rakudo: class A { our method foo { say "A" } }; class B is A { method foo { say "B"; callsame } }; &A::foo.wrap: { say "before"; callsame; say "after" }; B.new.foo | |||
p6eval | rakudo d49eea: OUTPUT«BbeforeAafter» | ||
masak | nice. | ||
how do I say "call next method in the MRO" from a wrapper? :) | 14:50 | ||
takadonet | wow | ||
masak | this is me processing various parts of the spec patch, by the way. | 14:51 | |
I seem to recall there were three types of dispatcher, and hence three different uses of C<callsame> et al... but right now I can only think of those two: wrapping and MRO. | 14:52 | ||
maybe multiness would be another one. | |||
rakudo: class A { multi foo(Int) { say "Int"; nextsame }; multi foo($) { say "Any" } }; A.foo(42) | 14:53 | ||
p6eval | rakudo d49eea: OUTPUT«Method 'foo' not found for invocant of class '' in main program body at line 22:/tmp/fr3J7Hhwnm» | ||
masak | rakudo: class A { multi method foo(Int) { say "Int"; nextsame }; multi method foo($) { say "Any" } }; A.foo(42) | 14:54 | |
p6eval | rakudo d49eea: OUTPUT«IntAny» | ||
masak | rakudo: class A { multi method foo(Int) { say "A: Int"; nextsame }; multi method foo($) { say "A: Any" } }; class B is A { multi method foo(Int) { say "B: Int"; nextsame }; multi method foo($) { say "B: Any" } }; B.new.foo(42) | 14:55 | |
p6eval | rakudo d49eea: OUTPUT«B: IntB: Any» | ||
masak | that's the first result that confuses me. | ||
14:55
hanekomu_ joined
|
|||
masak | where'd the A methods go? | 14:55 | |
masak submits rakudobug | 14:57 | ||
rakudobugs are such a win-win proposition. :) when I see a behavior I don't understand, I can submit a bug ticket. either it gets fixed, or someone explains to me why I'm wrong. :) | 14:58 | ||
14:59
hanekom__ left,
justatheory joined
|
|||
masak | anyway, a surprising number of interactions do work. jnthn++ | 15:00 | |
15:01
maluco joined
15:11
cdarroch joined,
cdarroch left,
cdarroch joined
15:12
frettled joined,
colomon joined
15:19
perlygatekeeper joined
15:20
bluescreen joined
15:21
bluescreen is now known as Guest86504
15:24
dnl joined,
dnl is now known as goodmensch
|
|||
takadonet | rakudo: my $line = ' x'; my @e = split(/.**8/,$line); for(@e) -> $x { say "'$x'" } | 15:24 | |
p6eval | rakudo d49eea: OUTPUT«'''''x'» | ||
colomon | takadonet: is that what you expected? | 15:28 | |
15:29
kaare_ left
|
|||
takadonet | colomon: no. Looking at the unit test to see what difference's | 15:30 | |
masak | what unit test? | 15:31 | |
15:31
kanishka left,
agentzh left
15:32
risou joined
|
|||
takadonet | porting over: Text::Tabs and Text::Wraps search.cpan.org/~muir/Text-Tabs+Wrap/ | 15:32 | |
almost got Text::Tabs working | |||
masak | right, I figured that part out. :) | 15:33 | |
what unit test? | |||
takadonet | The test for the moduel | ||
tabs.t | |||
masak | that's a test *file*. does it only contain one test? | ||
takadonet | nope 11 test | 15:34 | |
15:34
Ross joined,
Ross left,
Ross joined
|
|||
colomon | rakudo: my $line = ' x'; my @e = split(/.**8/,$line, :all); for(@e) -> $x { say "'$x'" } | 15:34 | |
p6eval | rakudo d49eea: OUTPUT«''' '''' ''x'» | ||
masak | takadonet: which one of them are you currently working on? | ||
takadonet | colomon: perfect | ||
15:35
tzhs left
|
|||
takadonet | masak: in the tabs.t file: all test that use unexpand fcn | 15:35 | |
masak | ah, ok. | 15:36 | |
15:38
sftp joined
|
|||
colomon | huh. so do you just take every eight character block in the string, and replace trailing spaces with a tab? | 15:38 | |
rakudo: my $line = ' x'; my @e = comb(/.**1..8/,$line); for(@e) -> $x { say "'$x'" } | 15:39 | ||
p6eval | rakudo d49eea: OUTPUT«' '' ''x'» | ||
takadonet | pretty much ya | 15:41 | |
one of the most used module on cpan.... | 15:42 | ||
hard going back and forth between perl 5 and 6 | |||
rokoteko | masak: concerning about your comment on perl6 and perl5 meme nowadays, I totally agree.. Im really puzzled about this distinction. Who in the world are supposed to adopt perl6 if not perl5 programmers first. | 15:48 | |
PerlJam | rokoteko: other people. | 15:50 | |
rokoteko | hmm.. well yes, why not. | 15:51 | |
15:59
yves_ left
16:01
yves_ joined
|
|||
rokoteko | actually now that you mention it I realize that most of the people I know are *not* perl5 programmers. | 16:03 | |
why to aim at a target if you can shotgun around and hit a lot of other things at the same time. | |||
masak | I don't mind attracting Perl 5 programmers, too. | 16:04 | |
my point was mostly that au was one of the people keeping the old meme floating. | |||
pmichaud | good morning, #perl6 | 16:05 | |
masak | morning, pm. | ||
pmichaud: are you coming to #phasers in ~3 h? | |||
pmichaud | masak: I'm planning to, yes. why? | ||
masak | just checking; it's been a bit slow there lately. | 16:06 | |
TimToady is trying to get back in phase | |||
phenny | TimToady: 07:58Z <diakopter> ask TimToady I note the removal of return type conjecture... does this mean you suspect otherwise-identical routines can't be distinguished by return type? | ||
masak | wondering whether I should show up myself or not. | ||
TimToady! \o/ | |||
takadonet | TimToady: welcome back! | ||
pmichaud | Lots of $otherstuff has been keeping me from much in the way of Perl 6 development the past 2-3 weeks :( | ||
I'm expecting it to clear up soon, but ... | |||
... I think I said that 2 weeks ago. :-| | 16:07 | ||
16:07
kanishka joined
|
|||
slavik1 | pmichaud: which is why you should just work on Perl6, sounds like the other stuff will stay there. | 16:08 | |
pmichaud | slavik1: much of the other stuff is unfortunately non-suppressable | 16:09 | |
slavik1 | wr0k? | ||
16:28
isBEKaml joined
|
|||
isBEKaml | good *, #perl6! :) | 16:28 | |
takadonet | isBEKaml: yo | 16:29 | |
TimToady | o/ | ||
isBEKaml | TimToady: you're back! how was Asia? :) | 16:30 | |
TimToady | Asian | ||
isBEKaml | takadonet: :) | 16:31 | |
TimToady: as ever :) I meant, YAPC::Asia | |||
TimToady | it seemed to go pretty well | ||
isBEKaml | and then? | 16:32 | |
TimToady | they didn't have as many this year because they were scheduled against a Ruby conference | ||
then Glo and I visited Nagoya for a few days | |||
few people speak English there, so I got to practice my (relatively pathetic) Japanese more | 16:33 | ||
isBEKaml | Nagoya, that's great! it's a shame that they didn't have as many talks and had to go back to back with a Ruby conference. | 16:34 | |
I think you deliberately chose Nagoya even as it's urban by appearance. | |||
pmichaud | TimToady: I greatly enjoyed the video of your talk. +1 | ||
TimToady | they said they greatly appreciated that I talked...deliberately | ||
I'm not up to keiosu++'s level yet; she gave her T-shirt lightning talk in Japanese | 16:35 | ||
isBEKaml | Nice. I can't go beyond "konnichi wa"s and "ohayo gozaimasta"s in my case. :) | 16:36 | |
pmichaud | Yes, I noticed the careful timing on your talk and appreciated that also. | ||
isBEKaml | pmichaud: you follow japanese? | 16:37 | |
pmichaud | the talk I saw was in English | ||
(mostly English) | |||
PerlJam | url? | 16:38 | |
16:38
jfried left
|
|||
TimToady | it's in the backlog somewhere | 16:39 | |
pmichaud | www.youtube.com/watch?v=KJUVP2Z13Yo | ||
TimToady | I was expecting to re-use one of the pitt talks, but ended up writing a different talk anyway... | 16:40 | |
though I ended up sneaking the "turtle graphics" lightning talk in at the end because I had time | 16:41 | ||
didn't go into quite as much depth on the turtle code as I did at ppw though | 16:42 | ||
pmichaud | the turtle code was excellent for illustrating Parrot's GC slowness, though :) | 16:43 | |
and as soon as you brought up the turtle code, I was waiting for "Rakudo is as slow as a turtle" to appear somewhere. (Thanks for not disappointing me :-) | 16:44 | ||
TimToady | yes, that was the final punchline of the original lightning talk, actually | ||
pmichaud | maybe we can obsolete that part of the talk in the next few months :-P | 16:45 | |
TimToady | I'm just glad that the rakudofolk are not overly thin-skinned people :) | ||
but I value seeing things as they are, as well as how they could be :) | 16:46 | ||
obsolete++ | |||
pmichaud | same here. and I like to think that even if Rakudo is (currently) slow, it's still an impressive piece of work. | ||
but I'm biased. :-) | |||
TimToady | sure, that's why I was showing it off :) | 16:47 | |
masak | TimToady: did you write that slides software yourself? and was it Perl 5 rather than Rakudo this time? | 16:48 | |
16:48
MayDaniel_ joined
16:49
MayDaniel left
|
|||
TimToady | yes, about 2 hours before the first ppw talk, I thought I might doublecheck to see how my takahashi method looked | 16:49 | |
the "how" turned out to be "not at all" | |||
so the next hour was writing a P5 program to show the text in a relatively centered way | 16:50 | ||
(and with color) | 16:51 | ||
the input format now looks more like POD than like takahashi | |||
masak | :) | ||
I suspected that it was Perl 5. | |||
TimToady | I saw | ||
I also saw you rewriting the history of memes. :) | 16:52 | ||
masak | I did? :) | ||
not knowingly... | |||
TimToady | everybody working on Perl 6 at the time of pugs was still thinking replacement | ||
masak | yes. | ||
as was I at that time. | |||
TimToady | you made it sound as though au++ was the only holdout | 16:53 | |
masak | nonono | ||
TimToady | and, in fact, it was your doing to bring about the "sister" meme, even if you didn't name it | ||
masak | I see. | ||
if so, mst shares a bit of the blame :) | 16:54 | ||
TimToady | the only reason for p5/p6 coexistence before that was as a migration path :) | ||
masak | what I meant was that she was one of the people actively upholding that meme. looking back, that stands out, because that's one of the differences between 2006 and 2010. | ||
right. and the "migration path" argument has gotten weaker as Perl 5 has gotten stronger, too. | |||
that was a bit of an unpredictable development, I guess. | 16:55 | ||
TimToady | otoh, long term I still believe p6 will obsolete p5, and the sister meme is really to point out the long-term-ness of that view | 16:56 | |
masak | I'd still like to produce a diagram where the timeline of Perl 1.0 is aligned with the timeline of Rakudo Perl 6. | ||
TimToady | so I'm still holding out :) | ||
masak | much of the abject bashing of Perl 6 on twitter and reddit is a symptom of not having that long-term view. | 16:57 | |
TimToady | it's funny that as one gets older and has (obviously) fewer days remaining under the sun, one also learns to value the long term more, perhaps because one has already been through several long terms already... | 16:59 | |
masak | "The Long Term: Why the Future of Programming Is Coding Less With More" ;) | 17:00 | |
PerlJam directs TimToady's attention to longnow.org for an adjustment to the phrase "long term" ;) | |||
masak | Perl 6: a 10,000-year language? | 17:01 | |
pmichaud | why not? ;-) | ||
Some Rakudo programs are that slow, yes. :-P | |||
PerlJam | heh | ||
masak | *lol* | ||
masak should have kept his md5 cycle finder running... | 17:02 | ||
s/cycle/fixpoint/ | |||
17:02
hudnix left
|
|||
isBEKaml | heh, I don't know if that's slow. I'm fine with it as long it can run on my *ancient* machine. :P | 17:03 | |
slavik1 | anyone try to compile parrot for arm? | ||
wondering if it's possible to get rakudo into meego :D | |||
isBEKaml | I think lue was trying to do something like that. | ||
17:05
hudnix joined
|
|||
masak | nom & | 17:05 | |
17:05
masak left
|
|||
TimToady | the important thing is to make sure Perl 6 is available for the first generation of people who will live for 10,000 years :) | 17:05 | |
isBEKaml | Or I might be mistaken - he might have tried it on a different platform. It wasn't x86, for sure. :) | ||
colomon | I know lue was using a PowerPC machine at one point. | 17:07 | |
17:07
MayDaniel_ is now known as MayDaniel
|
|||
pmichaud | afk, lunch | 17:11 | |
17:13
dakkar left
|
|||
isBEKaml | ah, PPC it is. | 17:14 | |
slavik1 | dide you guys see the article of getting a palm pre game to run on n900 | 17:18 | |
the hardware is similar and the libraries used are the same (SDL / OpenGL 1.2) | |||
so N900 can run stuff natively from palm pre | |||
17:23
orafu left
17:24
orafu joined,
orafu left,
orafu joined
17:25
icwiener joined
17:26
risou left
17:30
kanishka left
17:32
orafu left,
jhuni left
17:37
envi left,
stkowski joined
17:40
colomon left
17:41
am0c joined
|
|||
mkramer | sub prefix:<bag> (*@items) is export(:MANDATORY) { ... } | 17:59 | |
I'm trying to implement bag | |||
is there a problem with this line? I can't seem to export bag() | 18:00 | ||
rather, prefix:<bag> | |||
I'm not sure how to golf this down for the chat room, let me make a paste | 18:01 | ||
18:03
baux left
18:08
colomon joined
|
|||
TimToady | I suspect MANDATORY is not implemented | 18:13 | |
also, it's not clear why it shouldn't just be a normal function | |||
mkramer | It's not clear to me either, but the spec calls for bag as a listop | 18:15 | |
TimToady | a listop is just a funciton | ||
pmichaud | most of our listops are just functions. | ||
mkramer | Alright, that's a relief | 18:16 | |
is any part of the export system implemented? | |||
pmichaud | yes, just not :MANDATORY, afaict | ||
just do "is export" | |||
18:18
betterworld left
|
|||
colomon | BTW, I tried to make Set do Iterable last night -- seemed like a simple change -- and my Rakudo build blew up. | 18:20 | |
pmichaud | rakudo: say Set ~~ Iterable | 18:21 | |
p6eval | rakudo d49eea: OUTPUT«0» | ||
pmichaud | might want to make "Set is Iterable does Associative" then | 18:22 | |
I'm not sure how well Iterable works as a role atm | |||
colomon | oh. | ||
yes, I see it's "is Iterable" elsewhere. I'll give that a try. pmichaud++ | 18:24 | ||
18:24
timbunce left
|
|||
diakopter | TimToady: I note the removal of return type conjecture... does this mean you suspect otherwise-identical routines can't be distinguished by return type? | 18:29 | |
18:30
masak joined,
timbunce joined
|
|||
TimToady | irclog.perlgeek.de/perl6/2010-10-26#i_2942772 | 18:31 | |
diakopter | I honestly thought sorear's answer had nothing to do with my question, so I guess my question was badly written | 18:32 | |
TimToady | he answered the question I thought you were asking | ||
diakopter | that's what I'm saying. | 18:33 | |
TimToady | me too :) | ||
18:33
hanekom__ joined,
hanekomu_ left
|
|||
colomon | > my $a = Set.new(1, 4, 3); for $a.list { .say }; | 18:33 | |
1 | |||
4 | |||
3 | |||
rakudo: my $a = Set.new(1, 4, 3); for $a.list { .say }; | 18:34 | ||
p6eval | rakudo d49eea: OUTPUT«set(1, 4, 3)» | ||
diakopter | repl does toString but p6eval does .perl ? | ||
masak | other way around, methinks. | 18:35 | |
colomon | diakopter: repl (here at home) now has Set as an Iterable | ||
diakopter | oh, you're demo-ing | ||
colomon | yes | ||
rakudo: for 1..5 { .say } | 18:36 | ||
p6eval | rakudo d49eea: OUTPUT«12345» | ||
diakopter | TimToady: my thought was that routine candidates that specify return type are (n+1)[emdash]grade candidates | 18:37 | |
TimToady | I wonder whether my @a := Set.new(1,4,3) can be made to work right | ||
that is, if @ actually asserted Positional | |||
colomon | > my @a := Set.new(1,4,3); | 18:38 | |
set(1, 4, 3) | |||
> for @a { .say } | |||
1 | |||
4 | |||
3 | |||
does that look "right"? | |||
TimToady | diakopter: I have no idea what you're saying :) | ||
pmichaud | colomon: that's a bug, I suspect. | ||
diakopter changes languages | |||
TimToady | yes, it'll work now, but what about when @ says "I'm positional" | ||
pmichaud | if @ asserts Positional, would we expect my @a := 1; to work? | ||
or how about something like my @a := %hash; | 18:40 | ||
18:40
tadzik joined
|
|||
tadzik | \o/ | 18:40 | |
diakopter | masak: to address your 'frighteningly-smart' allegation, it's much more a symptom of my overall communication failures than any kind of residual smartness | 18:41 | |
TimToady | I wonder what would break if @ implied Iterable instead | ||
pmichaud | as a constraint or as an assertion? (more) | ||
I'd feel weird about binding implying too much in the way of coercion -- because then you're not really binding to the rhs | 18:42 | ||
TimToady | not as coercion | ||
pmichaud | okay, then I'm confused. | ||
diakopter | TimToady: I'm trying to restate my question. pending. | 18:43 | |
masak | diakopter: ok -- I'll consider that. | ||
TimToady | just wondering if @ should really be reserved for .[]-able, rather than anything that is ordered | ||
pmichaud | I thought that's what Positional meant | ||
TimToady | well, anything that is iterable is in some sense orderable | ||
even if random order | |||
pmichaud | sure, but it's not really .[]-able. See Hash. | 18:44 | |
colomon | isn't anything Iterable also .[]-able? | ||
pmichaud | colomon: no -- see Hash. | ||
18:44
flow_ joined
|
|||
flow_ | hi | 18:44 | |
PerlJam | flow_: greetings | 18:45 | |
pmichaud | Hash is Iterable, but it doesn't have a .[] defined on it. | ||
flow_ | i need to know how i can comment a special section | ||
pmichaud | rakudo: say Hash ~~ Iterable | ||
TimToady | well, that's what I'm asking, whether my @a := %hash could be meaningful and/or useful in some situations where you want @a to mean the listy view of the hash | ||
p6eval | rakudo d49eea: OUTPUT«0» | ||
pmichaud | oops | ||
hmmm | |||
"listy view of the hash" sounds like a coercion to me, though. | |||
colomon | TimToady: that's what I'm asking as well, but flipping it... you can iterate it, but the iteration order is not fixed, is it? | ||
flow_ | i never programmed in perl, i only have experience in php: in php i can comment a section with this: /* blub */ | ||
PerlJam | TimToady: I would think only under some defined ordering. | 18:46 | |
flow_: I think you want #perl rather than #perl6 | |||
pmichaud | it's like if I say "1.list" ... what I get back isn't the 1. | ||
flow_ | is perl and perl diferent things? | 18:47 | |
perl6 i meant | |||
18:47
hanekom__ left
|
|||
TimToady | but 1 isn't strictly iterable on its own, while a set or hash is (supposed to be) | 18:47 | |
often we use @a to hold a list where the order is not so important | |||
tadzik | flow_: yep | 18:49 | |
see perl6.org | |||
pmichaud | I'm not sure the @ corresponds to a type or role then (more) | ||
masak | std: my @set is Set; # is this the way to declare a Set with a % twigil | ||
p6eval | std a194beb: OUTPUT«ok 00:01 119m» | ||
pmichaud | really what we've tended to use the @ to mean is "is flattenable" | ||
flow_ | k, thx | ||
masak | std: my %set is Set; # is this ok too? | ||
18:49
flow_ left
|
|||
TimToady | yes, that's what I'm trying to say | 18:49 | |
p6eval | std a194beb: OUTPUT«ok 00:01 119m» | ||
pmichaud | and that's tied more to the container, not to the underlying value | ||
so I think it's not typed-based, if that's what you're wanting to get at | 18:50 | ||
18:50
silug joined
|
|||
pmichaud | it becomes more of a "does the thing have a .iterator method" | 18:50 | |
which I suppose is Iterable | 18:51 | ||
that would mean that one could do my @a := %hash; but then @a[1] would still likely fail | |||
TimToady | right | ||
pmichaud | but one could successfully do my @a := %hash; for @a { ... } | ||
and it would still flatten | |||
TimToady | yes, that's what I'm trying to get at | 18:52 | |
pmichaud | or, more importantly: sub xyz(@a) { ... }; xyz(%hash); # succeeds | ||
TimToady | in particular, my @a := set 1,2,3 could work then | ||
might screw up mmd though; gotta think about that... | |||
pmichaud | one ickiness I see is that we've tended to use @(...) to mean "convert to a (Positional) List" | 18:53 | |
TimToady | unless Associative were tighter somehow than Iterable | ||
18:53
goodmensch is now known as gutmensch,
wamba joined
18:54
tadzik left
|
|||
TimToady | well, there wouldn't be as much pressure to bind to @a if @$a worked | 18:54 | |
18:54
wamba left
|
|||
TimToady | course, again, we have the ambiguity, is that making something Positional, or just listy? | 18:55 | |
18:55
wamba joined
|
|||
pmichaud | at the moment, List ~~ Positional | 18:55 | |
rakudo: say List ~~ Positional | |||
p6eval | rakudo d49eea: OUTPUT«1» | ||
TimToady | I guess there's |$a too | ||
would be funny if | turned out to be the list sigil | 18:56 | ||
pmichaud | I think it should be comma. :-P | ||
TimToady | well, maybe I want something I shouldn't have | 18:58 | |
18:58
tadzik joined
|
|||
pmichaud | an interesting study might be to see if people who dislike Perl sigils use them on Twitter :-P | 18:58 | |
or, whenever someone says "sigils are bad", ask if they use them on Twitter :-P | |||
masak | I've seen people use the @ sigil on Twitter a lot... | 18:59 | |
pmichaud | and the # sigil, too. | ||
masak | oh right, that's a sigil on Twitter. | ||
TimToady | RT seems to be a listop | 19:00 | |
pmichaud | I thought it was a comment-to-end-of-line marker :-P | 19:01 | |
masak | at least mostly. I've seen people use stoppers for it. | ||
TimToady | .u 𝍌 | 19:02 | |
phenny | U+1D34C TETRAGRAM FOR STOPPAGE (𝍌) | ||
pmichaud | maybe a useful addition to phenny would be to have it also include the fileformat.info url ? | 19:03 | |
masak | that use of the word "tetragram" is new to me. | ||
pmichaud | i.e., www.fileformat.info/info/unicode/char/1d34c | ||
slavik1 | hey, that's a brick block from mario | ||
TimToady | yes, brick walls usually cause stoppage | 19:04 | |
19:06
MayDaniel left
|
|||
pmichaud sees the size of the "Tweaking junctions" thread on p6l, shudders, and postpones reading it for another day | 19:06 | ||
PerlJam | pmichaud: wait until something useful is distilled from it, then don't read the thread, just the useful bit. | 19:07 | |
Tene | pmichaud: one of the points is simple uncontroversial, that eigenvalues is misnamed, and there isn't a method for what eigenvalues means. | 19:08 | |
the rest of the thread is about a new junction type | |||
TimToady | the other point seems to be trying to reinvent each() | ||
Tene | mostly | ||
pmichaud | Tene: yes, I read that one earlier in the thread... and I agree. I've been thinking of fixing rakudo and the spec to match that. | ||
masak | TimToady: that's what I thought as well. strange that TheDamian doesn't seem to have discovered that. | ||
TimToady | I'm fine with renaming eigenvalues to internalgoodies or some such | 19:09 | |
pmichaud | btw, in case anyone wants to add themselves: www.ohloh.net/p/nqp/analyses/latest | 19:10 | |
grrr | |||
that should've been www.ohloh.net/p/nqp | |||
dukeleto | pmichaud: i realize that the graphs i talked about don't include all development, they were just meant as a rough indicator | 19:12 | |
tadzik | pmichaud: signed in :) | ||
dukeleto | pmichaud: there are many Perl 5 repos and Parrot repos that are being hacked on that are not included either. | 19:13 | |
pmichaud: it was mostly just to say "hey, all the people who think nobody works on stuff anymore, look at this and shut up" | |||
pmichaud: I wasn't trying to say anything qualitative about the relevant efforts of the three groups involved | |||
19:13
am0c left
|
|||
masak | I'm amazed that Rakudo holds up that well against Parrot and Perl 5. | 19:14 | |
pmichaud | dukeleto: well, that's not what the original tweet said -- it says "versus" instead of "and" | ||
tadzik | masak: o/ | 19:15 | |
masak | tadzik: \o | ||
tadzik | masak: just stumbled upon a thing called yappi, a python profiler :) | ||
dukeleto | pmichaud: it is a graph of three things "versus" each other. You are reading too much into the word. | ||
masak | tadzik: wow! cool. url? | ||
tadzik | masak: code.google.com/p/yappi/ | 19:16 | |
masak looks | |||
pmichaud | dukeleto: if I'm reading too much into it, I suspect others may be as well. Anyway, I'm willing to drop the thread as being irrelevant. | 19:17 | |
masak | tadzik: speaking of which, I think this is the month where we bring Tardis back online. lue will be overjoyed. :) | ||
tadzik | :) | ||
btw, I has a rakudo patch | |||
masak | Yapsi is sufficiently featured for Tardis to become interesting-ish now. | 19:18 | |
dukeleto | pmichaud: I got a few positive responses such as "there looks to be lots more people working on parrot + rakudo than I thought" | ||
sorear | good * #perl6 | ||
sorear is backlogged | |||
dukeleto | pmichaud: I had no intention of trying to create friction between the compared projects. +1 to dropping the "thread" | ||
tadzik | github.com/rakudo/rakudo/blob/maste...nge.pm#L79 -- couldn't it be just multi method pick($num where { $num == 1}) { self.roll; }? I'm not sure, but I think dropping this condition into a signature gives more valuable info to the dispatcher/optimizer | 19:21 | |
I compiled my Rakudo with it, and tests ran well and it seems to work well | |||
19:21
Guest86504 left
|
|||
Tene | dukeleto: what thread is this where? | 19:21 | |
19:21
snarkyboojum left,
jql left
|
|||
pmichaud | Tene: twitter.com/#!/dukeleto/status/28675662260 | 19:22 | |
19:22
mdxi left,
cxreg left,
mdxi joined
|
|||
Tene | ah, twitter | 19:22 | |
19:22
Sarten-X left
19:23
cxreg joined,
snarkyboojum joined,
Sarten-X joined
|
|||
pmichaud | tadzik: I suspect a lot of the pick/roll could be improved, now that I look at it. | 19:26 | |
TimToady | could use more 3-pointers too | ||
tadzik | pmichaud: is my assumption correct (about the signature being valuable for the optimizer)? There is a plenty of places it could be done methinks | ||
19:27
seb_est_la left
|
|||
pmichaud | tadzik: it's possible, but even better in that case would be multi method pick(1) { self.roll } | 19:27 | |
tadzik | oh, sure | ||
TimToady | also, in the where case, you can just say "where 1", if you want it as a constraint rather than nominal | 19:28 | |
tadzik | I feel like everytime I see something obvious, there is something more obvious I don't see | ||
TimToady | where is just a smartmatch | ||
tadzik | I see | ||
PerlJam | Has anything much changed for the ROADMAP since it was last updated in Aug.? (I.e., does it need to be updated?) | ||
pmichaud | PerlJam: I don't know that it requires significant updates as yet. | 19:29 | |
I see that Range.pm's pick does "nextsame" when $num isn't 1.... what is it nextsame-ing to? | |||
tadzik | pmichaud: Any-List.pm's pick | 19:30 | |
pmichaud | ah, Any | ||
masak | does any(pmichaud, TimToady) have an opinion on whether rt.perl.org/rt3/Ticket/Display.html?id=78576 is a bug? | ||
pmichaud | that should be any(jnthn, TimToady) | 19:31 | |
19:32
betterworld joined
|
|||
pmichaud | anyway, I know that rakudo's mmd handling doesn't match current spec, which changed substantially after rakudo's mmd was implemented (and jnthn++ is catching up in the new object model, iirc) | 19:32 | |
PerlJam | masak: why would that be a bug exactly? | ||
masak | PerlJam: I'd expect 'nextsame' to reach all four methods. | 19:33 | |
<masak> where'd the A methods go? | |||
TimToady | there's no nextsame in B Any | ||
masak | :-/ | ||
that'd explain it... | 19:34 | ||
pmichaud | I agree; I don't see a nextsame in B Any or A Any | ||
masak rejects ticket | |||
rakudo: class A { multi method foo(Int) { say "A: Int"; nextsame }; multi method foo($) { say "A: Any" } }; class B is A { multi method foo(Int) { say "B: Int"; nextsame }; multi method foo($) { say "B: Any"; nextsame } }; B.new.foo(42) | |||
p6eval | rakudo d49eea: OUTPUT«B: IntB: AnyA: IntA: Any» | ||
masak | \o/ | ||
pmichaud | \o/ | ||
jnthn++ | |||
masak | jnthn++ | ||
TimToady | though I suppose one could argue about the ordering | 19:35 | |
pmichaud | afk, kid pickup | ||
TimToady | lunch & | ||
19:36
gutmensch left
|
|||
masak | I see two possible orderings (the above one, and [B:Int, A:Int, B:Any, A:Any]). I don't see any reason to prefer one over the other. | 19:36 | |
colomon | spectest run just got the following errors: | 19:37 | |
S02-magicals/pid.t 1 - my $*PID is different from a child $*PID | |||
S32-io/IO-Socket-INET.rakudo 2 - echo server and client | |||
are those expected atm? | |||
masak | maybe a (weak) argument for the former is that rightmost arguments should vary fastest? :) | ||
colomon: those always fail for me. at least intermittently. | |||
don't know about "expected". | |||
colomon | masak++ | ||
"not the result of my change" at any rate. :) | 19:38 | ||
masak | if you ask me, our expectations should be 0 failures. but I've been seing those for a long time now. | ||
colomon | +1 | ||
masak | maybe I should TODO them. | ||
PerlJam | masak: the latter order seems like it would be confusing if your inheritance tree grew much beyond a few levels. | ||
masak | PerlJam: right, but we've promised not to favour the invocant parameter. | ||
19:41
Guest86504 joined
19:46
pythonian4000afk is now known as pythonian4000
|
|||
dalek | kudo: bc6c6dd | colomon++ | src/core/Set.pm: Make Set Iterable. |
19:46 | |
PerlJam | masak: I kind of see it as favoring multi-ness over class-ness or vice-versa. | 19:48 | |
I tend to favor class-ness first, then multi-ness | |||
(I have no rationale for this favoritism however :) | 19:50 | ||
masak | PerlJam: in my understanding, when a method "goes multi", it enters a sort of space where the invocant is neither more nor less important than any of the other arguments. it simply participates in ordinary multi dispatch, like subs do. in that sense multi methods are less "on the class" than only methods. | ||
I might be wrong, though. I can't really think of an example that would showcase this. | |||
I'm not sure how this plays out in terms of MMD conflicts. | 19:51 | ||
rakudo: class A { multi foo(Int) { say "A" } }; class B is A { multi foo($) { say "B" } }; B.new.foo(42) | 19:52 | ||
p6eval | rakudo d49eea: OUTPUT«Method 'foo' not found for invocant of class 'B' in main program body at line 22:/tmp/5p1snIVrVT» | ||
masak | right. 'method' | ||
I always forget... :) | |||
rakudo: class A { multi method foo(Int) { say "A" } }; class B is A { multi method foo($) { say "B" } }; B.new.foo(42) | |||
p6eval | rakudo d49eea: OUTPUT«B» | ||
masak | if I were right, that would be an MMD conflict. | 19:53 | |
so I'm missing something. | |||
masak goes to S12 for enlightenment | |||
19:53
_kaare joined
|
|||
Eevee | hmm | 19:53 | |
rakudo: class A { multi method foo(Int) { say "A" } }; class B is A { multi method foo() { say "B" } }; B.new.foo(42) | 19:54 | ||
p6eval | rakudo d49eea: OUTPUT«A» | ||
masak | nothing strange there. | ||
Eevee | checking my own sanity | ||
masak | A.foo is the only matching one there. | ||
19:55
jaldhar left
|
|||
PerlJam | Surely there must be some sort of Liskovian principle here. | 19:55 | |
masak: I don't understand this: < masak> if I were right, that would be an MMD conflict. | 19:57 | ||
Eevee | doesn't that match what masak said? the invocant's class hierarchy is searched for "foo" multimethods, but otherwise doesn't bias the actual selection | ||
PerlJam | masak: from what you described, it looks like it *wouldn't* be a MMD conflict to me. | 19:58 | |
masak | PerlJam: between B being tighter on one hand and Int being tighter on the other. | ||
Eevee | it just sees a foo(Int) vs foo($) | ||
right | |||
PerlJam | oh wait ... I misread the example. | 19:59 | |
sorear | You wrote foo(Int) vs foo() | 20:00 | |
they don't even overlap, so one isn't tighter | |||
masak | I didn't write that. Evee did. | 20:02 | |
my example overlaps. | 20:03 | ||
s/Evee/Eevee/ | |||
20:07
MayDaniel joined
20:09
timbunce_ joined,
timbunce left,
timbunce_ is now known as timbunce
|
|||
PerlJam | masak: I've thought about it enough that it makes sense to me now (I think :-) | 20:11 | |
masak | I haven't looked in S12 yet. I will, though. | 20:14 | |
PerlJam | your example is no different from class X { multi method foo(Int) { say "A" }; multi method foo($) { say "B" }; }; X.new.foo(42); | ||
20:14
envi joined
20:15
molaf left
20:16
tadzik left
|
|||
PerlJam | except that I seem to be heading down the road of defining inheritance in terms of composition. | 20:17 | |
masak | yes, it's different. | 20:18 | |
my example pits two narrownesses against each other. yours doesn't. | |||
PerlJam | I'm thinking that inheritance would install an alias for A's foo in B such that B would have both B.foo(Int) and B.foo(Any). | 20:19 | |
masak | that's one possible model. | 20:20 | |
I simply don't know right now. | |||
20:21
javs joined,
javs left,
javs joined
20:23
alester joined
20:27
meppl left
|
|||
dalek | ecs: 8a06991 | TimToady++ | S12-objects.pod: [S12] fossil: we no longer tiebreak multi on proto |
20:27 | |
20:29
molaf joined,
tylercurtis joined
|
|||
sorear | o/ tylercurtis | 20:30 | |
tylercurtis | Hi, sorear. | 20:31 | |
20:34
tadzik joined
|
|||
masak | tylercurtis! \o/ | 20:46 | |
tylercurtis | Hi, masak. | 20:47 | |
masak | sorear: sadly, I didn't succeed in installing Mono. I've exhausted all my ideas trying. | 20:53 | |
sorear | Odd | 20:54 | |
How did it fail? | |||
masak | it installed successfully, but left me with no means to run Mono. | 20:55 | |
sorear | It didn't install a binary anywhere? | 20:56 | |
masak | should go in Applications, like everything else. but I can't find anything there. | ||
colomon | try typing mono on the command line? | 20:57 | |
sorear | I thought Applications was only for stuff with GUIs | ||
does Parrot install into Applications? | |||
masak | there's a 'mono' binary. | ||
that's something. | |||
sorear: somehow I expected it to, since there was a .dmg file. | |||
that was probably a faulty conclusion. | 20:58 | ||
$ mono tryfile.exe foo | 20:59 | ||
...and then nothing happens. it hangs. | |||
or something. | |||
sorear | mono tryfile.exe < foo | ||
I haven't implemented open() yet | |||
20:59
chturne left
|
|||
masak | ok. | 20:59 | |
sorear | the only way to get data into Perl6 is $*IN.slurp | ||
masak | you should have a README or something :) | ||
it works \o/ | 21:00 | ||
sorear++ | |||
sorear | mono does some funny stuff with tty modes; I found it necessary to use cat | mono tryfile.exe when testing interactively | ||
to deny mono direct access to terminal input | 21:01 | ||
masak | second question: where's the source? | 21:02 | |
now that I have it running, I'm interested in how it looks. :) | 21:03 | ||
sorear | v6/tryfile and v6/STD.pm6 in the niecza repository | ||
masak | thanks. | ||
sorear | it takes seven minutes to fix an issue in STD.pm6 and recompile, but only two to add an augment in tryfile that replaces the offending method | 21:04 | |
which is why tryfile has so many augments :) | |||
masak | huh. | 21:05 | |
Tene | masak: what would you expect in a menu? | ||
masak | Tene: not sure I understand the question. a bit more context would help. | 21:06 | |
if in a restaurant, I'd expect different dishes of food... | |||
sorear | It's not supposed to be polished; I just wanted something to demo for #phasers | 21:08 | |
masak | kudos. | ||
what do you recommend I try? I've tried '2 + 2' and it worked. | 21:09 | ||
21:09
tadzik left
21:10
mavrc left
|
|||
sorear | # things I've gotten working | 21:12 | |
# this is a comment | |||
#`( this is a balanced comment ) | |||
$foo # Undeclared variable | |||
my $foo | |||
my $foo = 2 # interestingly this one was quite tricky; it exposed some pretty fundamental confusion in list handling | 21:13 | ||
$*foo | |||
sub { } | |||
class { } | |||
"foo" | |||
"foo {2 + 2}" | |||
# things which are still very broken | 21:14 | ||
<foo> # something's broken with the :q :w tweaking, probably related to perl5isms in pair handling | |||
q<foo> # looks for &q then <foo> error above; LTM is failing and I don't know why | 21:15 | ||
# things which are deliberately NYI | |||
use Module; # no FS access or parser recursion support code | 21:16 | ||
say "hi"; # no CORE.setting support code | |||
21:16
Guest86504 left
|
|||
sorear | q:to("foo"); # no heredoc support code, also tweaks are broken | 21:17 | |
21:17
_kaare left
|
|||
masak | keep up the good work; let me know if there is LHF to be picked, or work to be done in the fringes (tests, comments, etc) | 21:17 | |
how come 'say' needs CORE but '+' doesn't? | |||
sorear | TimToady hasn't implemented "is looser(&foo)" et al yet | 21:18 | |
so all the builtin operators have to be hardcoded in the parser | |||
masak | ah. | ||
sorear | in order to get correct precedence | ||
masak | nod. | 21:20 | |
Tene | masak: 14:56 < masak> should go in Applications, like everything else. but I can't find anything there. | 21:23 | |
masak: what would you expect to be present in the Applications menu after installing a VM? | 21:24 | ||
masak | ah. thence the confusion. Applications is a folder, not a menu. | ||
now I see. | |||
Tene | Ah. | ||
masak | Tene: I don't know really, in retrospect. for me it was just a little bit dissonant with a .dmg and a graphical installer installing a non-graphical application. | 21:25 | |
sorear | I suspect that it's in order to make life nicer for mac people trying to install MonoDevelop + MonoMac + all dependencies thereof | 21:26 | |
bobkare | at a guess it was a .pkg that installed a framework? | ||
not all that uncommon | 21:27 | ||
21:31
Guest86504 joined
21:32
jql joined,
Ross left
21:36
alester left
21:40
javs left
|
|||
masak | bobkare: it was. I'm just unused to it, that's all. | 21:43 | |
spoiled by all the nice graphics of Mac OS X, I guess :P | |||
time to hit the proverbial sack. good night, #perl6. | 21:44 | ||
21:44
masak left
21:50
wamba left,
skangas` left,
skangas left
21:54
hudnix left
21:57
hudnix joined
22:14
risou joined
22:17
timbunce left
|
|||
rjbs | Is $block.perl supposed to more or less work, someday? | 22:22 | |
sorear | We haven't completely decided | 22:23 | |
TimToady thinks that it should dump out the original source code | 22:24 | ||
which is probably the most useful behavior for debugging, but isn't necessarily the best for serializing closures | |||
22:27
nadim left
22:30
nadim joined
22:31
risou_ joined,
jhuni joined
22:32
LiamBRT2 joined
22:34
risou left
22:36
LiamBRT2 left,
nadim left
22:37
nadim joined
22:42
nadim left,
johnjohn101 joined
22:43
nadim joined
22:45
Guest86504 left
22:46
rgrau_ left
22:50
johnjohn101 left
22:55
nadim left
23:02
cdarroch left
23:08
nadim joined
23:11
donaldh joined
23:12
donaldh left
23:31
whiteknight joined
23:33
pythonian4000 is now known as pythonian4000afk
23:35
starcoder left
23:42
starcoder joined
23:47
isBEKaml left
23:48
Trashlord left
23:51
MayDaniel left
23:59
icwiener left
|