»ö« 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 2␤b 3␤c 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«42␤5␤»
masak rakudo: sub foo($x is rw) { $x = 42; say $x }; my $a = 5; foo($a); say $a
p6eval rakudo d49eea: OUTPUT«42␤42␤»
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«Int␤Str␤»
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«Int␤No 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«before␤OH HAI␤after␤»
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«B␤before␤A␤after␤»
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«Int␤Any␤»
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: Int␤B: 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«1␤2␤3␤4␤5␤»
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: Int␤B: Any␤A: Int␤A: 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