»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
psch m: my @a = <you got mail man mailman manners>; say "yougotmailmanners" ~~ m:ov/@a/ # :g doesn't matter, fwiw 00:00
camelia rakudo-moar : OUTPUT«(「you」 「got」 「mailman」 「manners」)␤»
psch m: my @a = <you got mail man mailman manners>; say "yougotmailmanners" ~~ m:!r:ex/@a/ 00:03
camelia rakudo-moar : OUTPUT«(「you」 「got」 「mailman」 「manners」)␤»
psch well, that's the blog post, isn't it? albeit without the debug... 00:04
oh, no, it isn't cause mailman is the longer token :/ 00:06
00:09 geraud joined 00:20 polettix left, newbie1 joined 00:23 yqt left 00:25 Sqirrel joined 00:30 pdcawley left 00:32 tokuhiro_ joined 00:34 raiph left, raiph joined 00:35 raiph left 00:36 tokuhiro_ left, raiph joined 00:40 sprocket joined 00:41 Sqirrel left 00:49 snarkyboojum left 00:52 dayangkun_ joined 00:53 dayangkun left
Zoffix heh. replicating something ingy and mauke cooked together? :) I fear my mind would melt if I tried :P 01:06
01:10 geraud left 01:11 yeahnoob joined 01:19 geraud joined 01:20 newbie1 left 01:21 yeahnoob left, yqt joined
zengargoyle i'd probably try to use Algorithm::Trie::libdatrie :) load up /usr/share/dict/words and go through the string char by chare walking down the Trie until hitting a terminal node, then push the words + remaining chars onto a stack and recurse/repeat 01:24
sounds suspiciously like a /r/dailyprogrammer challenge. 01:27
01:28 Zoffix left 01:33 yeahnoob joined 01:34 sprocket left
psch m: my @a = <a b bc c cd>; say "abcd" ~~ m/^[ $(@a[0]) | $(@a[1]) | $(@a[2]) | $(@a[3]) | $(@a[4])]*?$/; say "abcd" ~~ m/^[@a]*?$/ # should be equivalent according to S05..? 01:37
camelia rakudo-moar : OUTPUT«「abcd」␤False␤»
psch design.perl6.org/S05.html#Variable_...erpolation plus a bit: "An interpolated array..." 01:38
gfldex my proposal for an advent entry. Pointers at mistakes are welcome. gist.github.com/gfldex/f4e724a76baa1b85ab03 01:39
01:40 sprocket joined, sprocket left, geraud left
psch gfldex: line 139 reads a bit weird, i'd replace the first "what" with "which" 01:41
gfldex: also "is sayed" should probably be "it says" 01:42
gfldex updated with 2 fixes 01:45
who is compiling the calendar this year?
psch i'd assume it works the same as last year. people put themselves on the list when they want to publish, get author privs for the wordpress (from moritz or PerlJam iirc), type their article there and schedule the publishing for their day 01:46
s/when they want to publish/for the day they want to publish on/ 01:47
github.com/perl6/mu/blob/master/mi...5/schedule is the schedule
01:47 metasin left 01:48 nowan left
gfldex i will poke moritz++ tomorrow 01:48
01:49 nowan joined 01:50 Zoffix joined
AlexDaniel m: BEGIN ENTER {} 01:50
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/MJEFdIOBNM␤An exception occurred while evaluating a BEGIN␤at /tmp/MJEFdIOBNM:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot reference undeclared local 'enter_result__1'␤ at :␤»
Zoffix How exactly do you use hyper? I kinda expected this to return in one second:
m :say now; sleep 1 for ^3 .hyper; say now;
:m say now; sleep 1 for ^3 .hyper; say now; 01:51
m: say now; sleep 1 for ^3 .hyper; say now;
camelia rakudo-moar : OUTPUT«Instant:1448243506.123744␤Instant:1448243509.133396␤»
AlexDaniel m: BEGIN CHECK INIT END LEAVE do sink try quietly say 'hello'; 01:54
camelia rakudo-moar : OUTPUT«hello␤»
AlexDaniel m: say quietly 'hello'; 01:58
camelia rakudo-moar : OUTPUT«hello␤»
Zoffix m: my $hype = (1..3).race; say now; sleep 1 for $hype; say now; 02:05
camelia rakudo-moar : OUTPUT«Instant:1448244376.374433␤Instant:1448244379.383784␤»
02:06 geraud joined
Zoffix m: my $hype = (1..3).race( degree => 4 ); say now; sleep 1 for $hype; say now; 02:06
camelia rakudo-moar : OUTPUT«Instant:1448244414.796154␤Instant:1448244417.805252␤»
Zoffix -_-
jdv79 m: say now;(^3).hyper(:batch(1)).map({sleep 1;say $_});say now; 02:08
camelia rakudo-moar : OUTPUT«Instant:1448244542.394773␤0␤2␤1␤Instant:1448244543.404745␤»
jdv79 checkout batch and degree params 02:09
Zoffix Aha.
jdv79++ thanks
02:14 AlexDaniel left 02:21 metasin joined 02:22 telex left 02:23 metasin is now known as opalfrog 02:24 telex joined 02:28 zacts left 02:30 xpen joined
dalek c: ae72b70 | (Zoffix Znet)++ | doc/Type/Promise.pod:
Extend example for clarity
02:30
02:33 tokuhiro_ joined, kaare_ joined 02:35 xpen left
Zoffix my $p = start { sleep 2; say 42; $p.keep(42) }; say $p.result; 02:35
m: my $p = start { sleep 2; say 42; $p.keep(42) }; say $p.result;
camelia rakudo-moar : OUTPUT«42␤Access denied to keep/break this Promise; already vowed␤ in block <unit> at /tmp/wScvnWvIYw:1␤␤»
Zoffix No way to return the result in this case?
02:36 xpen_ joined
Zoffix m: my $p = start { sleep 2; 42 }; say $p.result; 02:36
camelia rakudo-moar : OUTPUT«42␤»
Zoffix I see. Threw me off when I tried to `return` but was denied
02:38 tokuhiro_ left
ingy Zoffix: did someone figure out the word-parse.p6? 02:43
Zoffix ingy, dunno. I've seen just one comment: "i'd probably try to use Algorithm::Trie::libdatrie :) load up /usr/share/dict/words and go through the string char by chare walking down the Trie until hitting a terminal node, then push the words + remaining chars onto a stack and recurse/repeat"
psch well, it should just work with array interpolation and backtracking non-greedy kleene star, i think 02:45
but that doesn't fit what the code does
m: my @a = <a b bc c cd>; say "abcd" ~~ m/^[ $(@a[0]) | $(@a[1]) | $(@a[2]) | $(@a[3]) | $(@a[4])]*?$/; say "abcd" ~~ m/^[@a]*?$/ # should be equivalent according to S05..?
camelia rakudo-moar : OUTPUT«「abcd」␤False␤»
02:45 ilbot3 left
Zoffix The docs for await aren't clear: doc.perl6.org/type/Promise#sub_await 02:45
"Waits until one or more promises are all fulfilled"... well, does it mean if I give it 3 promises that it'll wait for ALL of them?
psch (that's minus the debug message for every tried word)
02:46 molaf_ joined
Zoffix or until one of them completes 02:46
psch as in, $concated-word ~~ /^[@words]*?$/ should already match correctly, but doesn't because of (what i percieve as) a bug in array interpolation 02:47
not sure if it really is a bug or i'm misunderstanding S05 somewhere, though
02:48 ilbot3 joined 02:49 molaf left
Zoffix Oh, ok. /me missed the "are all full.." 02:50
Why is it still dying tho? I'm trying to move on: 02:51
m: my $r = await start { sleep 3; die "42" }; say $r.result; say $r.cause; say now;
camelia rakudo-moar : OUTPUT«42␤ in block <unit> at /tmp/I7pjeZLDVr:1␤␤»
02:53 kid51 left
Zoffix m: my $r = await Promise.allof(start { sleep 3; say 42 }, start { sleep 2; die 43 }); 02:56
camelia rakudo-moar : OUTPUT«43␤ in block <unit> at /tmp/_ElEZ2Zqdn:1␤␤»
02:57 yqt left
Zoffix m: try { my $r = await Promise.allof(start { sleep 3; say 42 }, start { sleep 2; die 43 }); CATCH { say "wut" }} 02:59
camelia rakudo-moar : OUTPUT«wut␤43␤ in block <unit> at /tmp/08aMJ3i5LK:1␤␤»
Zoffix I don't get why it's still dying
diakopter catch needs to be inside the thing that dies 03:00
Zoffix :S
psch nah, doesn't
Zoffix So how do I handle broken promises without my program crashing and burning?
diakopter try it :p
psch CATCH needs at least a default to not sink the Exception
Zoffix m: try { my $r = await Promise.allof(start { sleep 3; say 42 }, start { sleep 2; die 43 }); CATCH {default{ say "wut" }}} 03:01
psch m: try { my $r = await Promise.allof(start { sleep 3; say 42 }, start { sleep 2; die 43 }); CATCH { default { say "wut" } }}
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/wGEeK2uQn0␤Whitespace required after keyword 'default'␤at /tmp/wGEeK2uQn0:1␤------> 3art { sleep 2; die 43 }); CATCH {default7⏏5{ say "wut" }}}␤»
rakudo-moar : OUTPUT«wut␤»
Zoffix This is messy
psch m: my $r = await Promise.allof(start { sleep 3; say 42 }, start { sleep 2; die 43 }); CATCH { default { say "wut" } }
camelia rakudo-moar : OUTPUT«wut␤»
Zoffix Oh
psch i missed the try at first, that should silence it equivalent to the CATCH { default {} }
m: my $r = try await start { die "foo" }; 03:02
camelia ( no output )
psch like that i suppose
Zoffix m: my $r = try await start { die "foo" }; say $r.WHAT
camelia rakudo-moar : OUTPUT«(Any)␤»
Zoffix m: my $r = try await start { "foo" }; say $r.WHAT
camelia rakudo-moar : OUTPUT«(Str)␤»
Zoffix psch++ thanks
03:04 allen joined, allen is now known as coetry
coetry How do we increment strings in Perl6? 03:04
psch .succ
coetry like a range of unicode characters?
psch m: say "foo".succ.succ
camelia rakudo-moar : OUTPUT«foq␤»
coetry "\x0980" .. "\x09FF" 03:05
psch i don't think that goes over unicode characters though
coetry why not?
Zoffix m: say "Δ".succ
camelia rakudo-moar : OUTPUT«Ε␤»
Zoffix m: say "Δ".succ.succ
camelia rakudo-moar : OUTPUT«Ζ␤»
Zoffix m: say "Δ".succ.succ.succ
camelia rakudo-moar : OUTPUT«Η␤»
coetry how do you specific how many times you want to call that method 03:06
can you change the syntax like .succ for "\x0980" .. "\x09FF"
Zoffix The docs say "String increment is Unicode-aware, and generally works for scripts where a character can be uniquely classified as belonging to one range of characters."
psch m: say "\x0980" ... "\x09FF" # range works, in any case 03:07
camelia rakudo-moar : OUTPUT«(ঀ ঁ ং ঃ ঄ অ আ ই ঈ উ ঊ ঋ ঌ ঍ ঎ এ ঐ ঑ ঒ ও ঔ ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ত থ দ ধ ন ঩ প ফ ব ভ ম য র ঱ ল ঳ ঴ ঵ শ ষ স হ ঺ ঻ ় ঽ া ি ী…»
psch well, Sequence
not Range
'cause 3 dots, not 2
coetry ahhh, that's cool
psch m: say "\x0980" .. "\x09FF" # ..?
camelia rakudo-moar : OUTPUT«"ঀ".."৿"␤»
psch m: say eager "\x0980" .. "\x09FF" # ..?
camelia rakudo-moar : OUTPUT«(ঀ ঁ ং ঃ ঄ অ আ ই ঈ উ ঊ ঋ ঌ ঍ ঎ এ ঐ ঑ ঒ ও ঔ ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ত থ দ ধ ন ঩ প ফ ব ভ ম য র ঱ ল ঳ ঴ ঵ শ ষ স হ ঺ ঻ ় ঽ া ি ী…»
psch eh, or that
vOv
Zoffix m: say "খ".succ
camelia rakudo-moar : OUTPUT«খ␤»
coetry Zoffix, can you send me a link to that part of the documentation? 03:08
Zoffix coetry, the very last sentence on the page: doc.perl6.org/routine/succ
coetry thanks
i feel that this can use a macro 03:09
.succ chained seems so tedius
Zoffix just do a for?
m: my $x = "a"; $x.succ for ^4; say $x
camelia rakudo-moar : OUTPUT«a␤»
Zoffix hm
There are probably syntax trickery to make it nicer :P 03:10
coetry yeah
psch m: my $x = "a"; $x.=succ for ^4; say $x
camelia rakudo-moar : OUTPUT«e␤»
gfldex m: my $a = 'A'; $a.=succ for [^6]; say $a;
03:10 raiph left
camelia rakudo-moar : OUTPUT«G␤» 03:10
Zoffix wtf? Why is there no output: 03:12
m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 };\ my ( $r1, $r2 ) = await $p1, $p2; CATCH { default { } }; say [ $r1, $r2, 'huh' ];
camelia ( no output )
psch m: die "foo"; CATCH { default { say "died" } }; say "alive" 03:13
camelia rakudo-moar : OUTPUT«died␤»
gfldex m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 };\ my ( $r1, $r2 ) = await $p1, $p2; CATCH { default { say $_.Str } }; say [ $r1, $r2, 'huh' ];
camelia rakudo-moar : OUTPUT«43␤»
Zoffix m: try { die "foo"; CATCH { default { say "died" } } }; say "alive"
camelia rakudo-moar : OUTPUT«died␤alive␤»
psch m: { my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 };\ my ( $r1, $r2 ) = await $p1, $p2; CATCH { default { } } }; say [ $r1, $r2, 'huh' ];
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/q6aJG9VOzn␤Variable '$r1' is not declared␤at /tmp/q6aJG9VOzn:1␤------> 3p1, $p2; CATCH { default { } } }; say [ 7⏏5$r1, $r2, 'huh' ];␤»
Zoffix Damn, the three closing braces per each exception handling will drive me nuts :/ 03:14
m: try { die "foo"; }; say "alive"
camelia rakudo-moar : OUTPUT«alive␤»
Zoffix Oh, that works
Zoffix is confused again about the exception catching business
psch Zoffix: try is mostly the same as CATCH { default { } }
being useable on a statement-level is one difference, and i think there's others, but i don't recall any right now... 03:15
Zoffix m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 }; my ( $r1, $r2 ) = try { await $p1, $p2 }; 03:16
psch well, having to wrap the block instead of being a phaser *in* the block is another, obviously
camelia rakudo-moar : OUTPUT«43␤ in block <unit> at /tmp/yhFnj2Hs0k:1␤␤»
Zoffix *sigh*
I don't get what `await` is doing.
This is really confusing behaviour that try { die "foo"; } lives but try { await ... ; } dies
psch m: try await start { die } 03:17
camelia ( no output )
psch m: my $p1 = start { sleep 3; 42 }; my $p2 = try start { die 43 }; my ( $r1, $r2 ) = await $p1, $p2;
camelia rakudo-moar : OUTPUT«43␤ in block <unit> at /tmp/b48y6HnBIi:1␤␤»
Zoffix m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 }; my ( $r1, $r2 ) = try await $p1, $p2; say 42;
camelia rakudo-moar : OUTPUT«43␤ in block <unit> at /tmp/r2RYOx8vJC:1␤␤»
psch async is weird :P 03:18
Zoffix m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 }; my ( $r1, $r2 ) = try { await $p1, $p2; CATCH{ default {}}}; say 42;
camelia rakudo-moar : OUTPUT«42␤»
Zoffix From where I'm sitting, this looks like a bug in try
psch hmm, we had one there... 03:19
m: my $x = try 5 + "foo"; say $x
camelia rakudo-moar : OUTPUT«(Any)␤»
psch that for example used to not work
or something similar...
so yeah, maybe RT that
dalek c: 9be6234 | (Zoffix Znet)++ | doc/Type/Promise.pod:
Clarify await
psch m: my @a = < a bc b c cd >; say "abcd" ~~ m/^(@a)*?$/ # array interpolation uses | alternation semantics 03:20
Zoffix RT#42
camelia rakudo-moar : OUTPUT«False␤»
Zoffix Hm... How do I get to the RT tracker? Where's it at?
psch m: my @a = < a b c d bc cd >; say "abcd" ~~ m/^(@a)*?$/ # or does it
camelia rakudo-moar : OUTPUT«「abcd」␤ 0 => 「a」␤ 0 => 「bc」␤ 0 => 「d」␤»
psch Zoffix: rt.perl.org
03:20 noganex_ joined
psch ...i'll have to poke someone who actually knows regex if that's right :/ 03:21
ah duh, there's a mistake
...and it's LTM again
hrm
the second example has a 'd' alone, which lets it match 03:22
but the first doesn't, so 'bc' matches over 'b' and thus 'cd' can't match
so we don't backtrack back over previous matches of the same capture group there...
Zoffix m: m: try await start { die }; say "alive"
camelia rakudo-moar : OUTPUT«alive␤»
03:22 kaare_ left
Ben_Goldberg m: m: say try await start { die }; say "alive" 03:23
camelia rakudo-moar : OUTPUT«Nil␤alive␤»
psch m: my @a = <a b bc c cd>; say "abcd" ~~ m/^[ $(@a[0]) | $(@a[1]) | $(@a[2]) | $(@a[3]) | $(@a[4])]*?$/; # yet this works
camelia rakudo-moar : OUTPUT«「abcd」␤»
psch m: my @a = < a bc b c cd >; say "abcd" ~~ m/^([@a])*?$/ 03:24
camelia rakudo-moar : OUTPUT«False␤»
03:24 noganex left
psch well, yeah. i don't know the why of it, but i'm pretty confident that's not quite right behavior... 03:24
03:25 llfourn left 03:42 Ben_Goldberg left 03:54 Ben_Goldberg joined 04:00 llfourn joined 04:06 bbarker` joined, bbarker left 04:13 ed__ joined, ed__ left 04:17 coetry left 04:33 vendethiel joined 04:35 tokuhiro_ joined 04:39 tokuhiro_ left 04:47 Ben_Goldberg is now known as BenGoldberg 05:09 geraud left 05:13 geraud joined 05:15 vendethiel left 05:18 molaf_ left 05:21 abaugher left, somoso joined
somoso My version of perl 6 seems too old 05:22
05:22 abaugher joined
somoso This is perl6 version 2013.12 built on parrot 5.9.0 revision 0 05:22
but it's the latest one I installed just now.
How can I install a newer one? 05:23
$ perl6 -v
This is perl6 version 2013.12 built on parrot 5.9.0 revision 0
05:24 molaf joined, skids left
somoso anyone? 05:26
05:31 molaf left
somoso should I use rakudobrew at all? i'm on Linux. in the repo of rakudobrew it says that "rakudobrew" itself is buggy. 05:36
05:37 eliasr left
bartolin somoso: I usually compile from git, but I think using rakudobrew makes lives easy. I haven't heard complaints about it being buggy here on #perl6 05:41
somoso thx
05:44 zacts joined
bartolin yw. in case you hit some problems with rakudobrew, don't hesistate to ask again. at this hour the channel is a bit quite, but there are a lot of people around who use rakudobrew (I think) 05:45
05:46 zacts left
somoso I've installed rakudobrew, but "panda" isn't found when I type "type panda". Is it supposed to be installed with rakudobrew? 05:57
05:58 doublec left, xiaomiao left 05:59 xiaomiao joined 06:00 doublec joined 06:03 sno left 06:04 xfix joined 06:10 sprocket joined 06:12 BenGoldberg left, Sqirrel joined 06:15 sprocket left 06:16 somoso left 06:19 somoso joined 06:20 somoso left 06:34 polettix joined 06:36 tokuhiro_ joined 06:41 tokuhiro_ left 06:57 geraud left, FROGGS joined 06:58 rindolf joined 07:02 flaviusb left 07:03 domidumont joined 07:07 domidumont left 07:08 pdcawley joined, domidumont joined 07:22 rigsby joined 07:23 khw left 07:26 tokuhiro_ joined 07:28 flaviusb joined, doublec left 07:29 doublec joined, xinming left 07:30 tokuhiro_ left 07:34 CIAvash joined 07:36 rurban joined 07:48 rigsby left
[ptc] somoso: panda isn't installed with rakudobrew. You have to run `rakudobrew build-panda` 07:48
07:50 xfix left 07:55 RabidGravy joined
moritz would like an option 'rakudobrew autoinstall=panda,zef' and then it'd automatically install those two for me for each new rakudo 07:55
07:56 sno joined
nine Why doesn't it install panda automatically in default settings? 07:57
[Tux] test 50000 21.112 20.998 07:58
test-t 50000 18.055 17.940
csv-parser 50000 28.288 28.173
El_Che moritz: installing 2 competing implementation for something fundamental will cause a world of confusion, imho 07:59
nine El_Che: he wants this to be optional, not to be default 08:00
El_Che nine: true, although people copy pasting won't get that :) 08:01
08:03 espadrine_ joined 08:04 espadrine_ is now known as espadrine
nine I've never even looked at zef yet I wonder if going forward, we are gonna keep both installers. Panda looks like a good base. What reasons are there for having an alternative? 08:06
moritz El_Che: the normal usage would be to autoinstall just one of them 08:07
El_Che: and if only that was supported, that'd still be great
08:07 darutoko joined
moritz nine: currently, panda doesn't precompile modules; zef also works in parallel 08:08
nine: I see lots of room for experimenting with package managers
El_Che I have only used panda and I haven't looked unde the hood. What does "[zef] Works in parallel" mean? They put the modules somewhere else? The use the same way to check if something is installed? 08:12
cpanm uses packlists to remove modules. Would this be a future conflict? 08:13
moritz El_Che: it means that if a module has two dependencies, zef will install those two dependent modules in parallel
FROGGS which might be nice when you install e.g. Task::Star 08:14
08:15 domidumont left, doublec left
El_Che moritz: ah ok. I was thinking of conflicts (or not) when using panda and zef on the same installation 08:16
08:16 doublec joined 08:21 pdcawley left 08:22 zakharyas joined, domidumont joined 08:24 Ven joined 08:25 g4 joined 08:26 ollej_ left 08:28 maddingu1 is now known as maddingue 08:29 polettix left
Ven o/ 08:30
08:31 polettix joined, tokuhiro_ joined, pdcawley joined 08:32 abraxxa joined 08:34 Ven left 08:36 tokuhiro_ left
DrForr \o 08:36
08:39 jonas2 joined 08:40 espadrine left 08:41 pdcawley left 08:43 pdcawley joined 08:48 Ven joined 08:49 doublec left 08:50 Ven left, polettix left 08:51 doublec joined
[ptc] o/ 08:52
masak mornin' 08:54
08:57 xinming joined
cognominal m: my ($a, [$b] ) = 42, [666]; say $a.perl, $b.perl 08:58
camelia rakudo-moar : OUTPUT«Cannot call method 'perl' on a null object␤ in block <unit> at /tmp/OYD735wn7W:1␤␤»
cognominal m: my :($a, [$b] ) = 42, [666]; say $a.perl, $b.perl 08:59
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/gGoNLw1mB0␤Malformed my␤at /tmp/gGoNLw1mB0:1␤------> 3my7⏏5 :($a, [$b] ) = 42, [666]; say $a.perl, ␤»
cognominal is it possible to do destructuring without calling a function ?
not sure what the first expression really does btw. 09:01
09:07 znpy joined 09:11 doublec_ joined
masak cognominal: if that's not in RT, please put it there. 09:11
cognominal m: my ($a, [$b] ) = 42, [666]; say $a, $b
camelia rakudo-moar : OUTPUT«42(Mu)␤»
09:11 dakkar joined 09:13 doublec left 09:15 xinming_ joined
masak cognominal: and no, the synopses don't mention that kind of destructuring assignment at all. 09:16
only destructuring through subsignatures.
cognominal m: sub fun($a, [$b] ){ say $a, $b }; fun( 42, [666]); 09:18
camelia rakudo-moar : OUTPUT«42666␤»
masak m: sub fun($a, [$b] ){ say $a.perl; say $b.perl }; fun( 42, [666]); 09:20
camelia rakudo-moar : OUTPUT«42␤666␤»
cognominal masak, I filed it. Seems to me it is a must have. And the cost of implementation should be negligible being already done within function calls. 09:22
masak not sure about "it is a must have" :) 09:23
but the "null object" error sounds like no-one's put a story there.
09:24 vytas left
cognominal RT 126712 09:24
09:24 abaugher left
cognominal masak: it seems to me that list assignment is just a degenerate case of destructuring 09:25
09:25 abaugher joined
moritz at parse time, list assignment also has a different precedence 09:26
cognominal And my example parses. I just have no idea what it is supposed to do in the current implementation.
09:26 vytas joined 09:27 mady joined
mady slaps avar around a bit with a large fishbot 09:27
09:27 mady left
masak NOBODY expects the large fishbot! 09:28
cognominal moritz: yes, that's why I wrote ... = 42, [666] without the parentheses 09:31
09:32 tokuhiro_ joined 09:35 Ulti joined 09:36 tokuhiro_ left
masak m: class C { has $.value; method foo { $value } } 09:38
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/XW9Zvq077m␤Variable '$value' is not declared. Did you mean any of these?␤ &values␤ $!value␤␤at /tmp/XW9Zvq077m:1␤------> 3class C { has $.value; method foo { 7⏏5$value } }␤»
masak Levenshtein is great -- I love Levenshtein, we all love Levenshtein.
should we consider giving `$.value` as the alternative there, rather than `$!value`? or maybe both?
09:39 Ven joined
cognominal I agree 09:39
09:43 ely-se joined
jnthn I think you more often inside a class would want $!value 09:46
yoleaux 22 Nov 2015 01:00Z <diakopter> jnthn: shaved 8% off CORE compilation by writing the idx after looking it up in interp.c i.imgur.com/WX35mFe.png
22 Nov 2015 19:29Z <mj41> jnthn: github.com/rakudo/star/blob/master...course.pdf slide 23 s/# (Int)/# (Str)/
jnthn morning, #perl6
BooK I had a discussion with a colleague who likes Erlang very much, and he said that one issue he has with Perl 6 is that it does not support an actor model, or rather, that one is still working within a process 09:49
09:49 kjs_ joined
BooK (not sure I explain it correctly... but what I understood is that in Erlang, you don't really ever need to know how the stuff is going to be run. it could be one process on one box, or many processes across many machines all over the network) 09:52
09:52 doublec joined
BooK is that something perl 6 can eventually provide? 09:52
09:54 doublec_ left
jnthn Sure; there's been plenty of examples of languages less flexible than Perl 6 providing popular Actor implementations in module space rather than in the language. 09:54
(Akka probably being the most notable at present)
BooK so, patches welcome? ;-) 09:57
09:58 yeahnoob left 10:00 cognominal left 10:01 cognominal joined 10:02 eliasr joined
jnthn Well, "modules welcome". It's an interesting area, but I've so many other things on my plate right now... :) 10:05
10:05 zakharyas1 joined 10:06 ely-se left, dams joined
dams BooK: ping. 10:07
10:07 zakharyas left
BooK dams: pong 10:07
10:08 espadrine joined
BooK I invited the troll to join the conversation ;-) 10:08
dams: hope you like the introduction
jnthn :-)
dams hey hi :)
jnthn Hi! 10:09
dams jnthn: my point was that : Erlang implements concurrency and parallelism (via threads internally), but offers to the developer only the Actor model API
it seems to me that Perl6 also implements concurrency and parallelism (via threads internally), but offers to the developer only the "thread" model API
so it seems to me that the Perl6 culture is towards the thread models, instead of either being agnostoc (no model by default), or acto oriented 10:10
masak there's something to that
but see also the new supply keyword
dams saying that "actor model can always be implemented in module", but at the same time having the thread model API exposed by default 10:11
means that the thread model is heavily put forward. Which I'm not a big fan of. Which is OK, most people like the thread API
but I thought that it would have been cool to not provide *any* API by default, and let them be implemented as modules, both thread/actor models
just my 2 cents :) 10:12
dams searchgin for the supply keyword
10:13 Ven left 10:14 larion joined
jnthn While you can get at threads directly if you want, most of the constructs we have and expect people to work with are of the "don't have to care what thread you're running on" kind. The supply blocks masak just mentioned are very much of that nature: plenty of threads may push messages through a supply block's logic over its lifetime, but only one thread at a time will ever be in there. 10:14
dams looks like a pubsub version of golan Channels ? or am I misreading ? 10:15
jnthn golan*g*? :)
dams golang yes 10:16
jnthn More inspired by Rx
dams ah, ok, don't know anythong about Rx :(
can you easily have one of your supply endpoint be on a different host ?
jnthn But pubsub is close, given Rx is all about the observer pattern.
dams and totally different question: does have Perl6 something similar than supervisors ? 10:17
s/than/to/
10:19 TEttinger left
jnthn Well, supplies are how we expose our async sockets API, so "kind of" :) I think folks have done stuff like having supplies of incoming messages from a message queue too. 10:20
The current best way to IPC tends to move fairly fast, so I'm wary about building too much in at the language level. 10:21
jdv79 iirc some of the early design docs hinted at, if not outright talked about, different forms of concurrency under the covers
RabidGravy yeah, Net::AMQP exposes the messages via a supply 10:25
dams I think I understand. So there is no concept of "process" like in Erlang 10:26
thanks for the info, I'll stop trolling now :) 10:27
jdv79 no, i mean the runtime, or the user, could choose forks over threads over something else potentially to back the primitives
jnthn dams: If only all "trolling" was so polite/educated... :)
dams hehe I can throw some insults if you insists :) 10:28
jdv79 which sounds like the same thing dams is looking for
dams jnthn: the context is that I really like the minimal approach of Erlang/Elixir, few concepts, high efficiency, and not claiming to be a generic language
I'm wondering if I could use a subset of Perl6 to mimic the approach 10:29
jnthn did start on an OO::Actors module, which gave an "actor" keyword and enforced one-at-a-time processing in coming calls, but didn't yet have time to get to the supervisor bit, let alone the network bit...so it's pretty much not really actors at all yet... :(
dams jdv79: yes that is more or less what I'm looking for. Is that possible or would it be possible ?
jnthn: nice, if that OO::Actors ever flies at some point, I'll try it out :) 10:31
jnthn dams: Perl has "there's more than one way to do it" as a motto. But opinionated subsets that removes some features and adds others are certainly a "way to do it".
dams from the outside world, Perl6 sometimes like "TIMTOWTDI, so we've included *all* ways to do it" :) 10:32
which is scary
El_Che dams is a crappy troll. Try "I want Inline::Erlang NOW"
:) 10:33
jnthn Not *all*. But yes, Perl 6's opinionated points aren't really language-feature centric. 10:34
BooK dams: actually, all the ways are possible, we just need some volunteers to plug them in :-)
jnthn They're more about concepts like consistent scoping rules, extensible syntax, early-bound/late-bound distinction, etc. 10:35
dams immutability ? :P
btyler_ Inline::Erlang++ :D 10:36
well, probably writing a port driver
dams btyler_: yo'ure everywhere :) 10:38
masak dams: not a lot of immutability, no. not compared to something like Haskell.
dams: though I could imagine someone exploring "immutable Perl 6" in module space.
El_Che so dams, these question are a prelude for porting dancer2 or perl6? :) 10:39
s/or/to
cognominal dams: or write immutable structures, like rrb trees, made available thru the representation layer 10:40
dams El_Che: there is already a perl6 port afaik
cognominal: the trick is really about immutabile variables 10:41
jnthn Perl 6 *is* rather strong at list processing functional style
You also have the my \foo = ... single static assignment form
m: my \foo = 42; foo = 100 # can't assign this
camelia rakudo-moar : OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/Iqr6szQRKY:1␤␤»
dams ah nice 10:42
dalek ast/bool_enum: a4f8e29 | (Stefan Seifert)++ | S02-types/bool.t:
Bool is now an enum with base type Int

Fixes RT #72580
10:44
ast/bool_enum: 56a570d | (Stefan Seifert)++ | S32-exceptions/misc.t:
Enums are now augmentable

I see no reason why an enum should not be augmentable. Indeed there are tests for augmenting Bool which is an enum by spec. So remove the bogus test.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=72580
ast/bool_enum: 51698fd | (Stefan Seifert)++ | S03-operators/relational.t:
TODOs for chaining !before and !after now pass

Don't know why though?
ast/bool_enum: 4efef8c | jnthn++ | S02-types/ (6 files):
Update tests for Bool ~~ Int becoming true.

As part of the upcoming change to make Bool a real enumeration.
10:44 rindolf left 10:45 AlexDaniel joined
AlexDaniel .u ̆ 10:45
yoleaux U+0306 COMBINING BREVE [Mn] (◌̆)
10:46 polettix joined
jnthn nine: re 56a570d did you actually make enums augmentable in the end? 10:46
Because various other tests fail 'cus they ain't
10:46 Skarsnik joined
cognominal dams: docs.perl6.org/language/containers 10:49
10:54 xpen_ left 10:56 xpen joined 10:58 Juerd left 11:02 rindolf joined 11:04 xinming left, xinming_ left 11:05 polettix left 11:06 xinming joined, polettix joined, edehont joined 11:07 xinming_ joined 11:13 s_kilk joined 11:14 Juerd joined 11:16 rindolf left 11:17 kjs_ left
dalek kudo/nom: a06069b | (Stefan Seifert)++ | src/ (3 files):
Turn Bool into a proper enum
11:20
kudo/nom: 5105894 | (Stefan Seifert)++ | src/core/operators.pm:
Fix SEQUENCE not expecting Bool ~~ Real to be true

An exact arity match beats slurpy/optional.
This means that a zero-arity candidate along with two 1-arg candidates taking optional parameters will end up winning, instead of coming out ambiguous.
11:20 dalek left
jnthn .tell nine I fixed the final issues and merged bool_enum :) 11:21
yoleaux jnthn: I'll pass your message to nine.
11:21 dalek joined, ChanServ sets mode: +v dalek, dalek left 11:22 dalek joined, ChanServ sets mode: +v dalek, s_kilk left 11:25 nowan left, nowan joined 11:27 s_kilk joined
zengargoyle m: my (($a, [$b] )) = 42, [666]; say $a, $b 11:28
camelia rakudo-moar : OUTPUT«(Mu)(Mu)␤»
zengargoyle m: my ($a, @ [$b] ) = 42, [666]; say $a, $b 11:30
camelia rakudo-moar : OUTPUT«42(Mu)␤»
11:30 AlexDaniel left 11:34 tokuhiro_ joined 11:35 polettix left
jnthn Need := for getting unpacking/signature binding semantics 11:36
zengargoyle ah, i knew i had seen it work somehow 11:38
11:38 tokuhiro_ left
psch m: say "abcd" ~~ /^(a | b | bc | cd)*?$/; my @a = < a b bc cd >; say "abcd" ~~ /^(@a)*?$/ 11:39
camelia rakudo-moar : OUTPUT«「abcd」␤ 0 => 「a」␤ 0 => 「b」␤ 0 => 「cd」␤Nil␤»
psch jnthn: am i misunderstanding array interpolation or should those two be equivalent? 11:40
jdv79 jnthn: irclog.perlgeek.de/perl6/2015-11-22#i_11581875
should i bug that? 11:41
11:41 andreoss joined 11:42 Upasaka left
jnthn jsimonet: Yes, something looks a bit off there 11:43
oops 11:44
jdv79: ^^ :)
Zoffix Is everyone piling on jnthn with questions about whether something is a bug?
Zoffix joins in
m: try await start { die }; say "alive" 11:45
camelia rakudo-moar : OUTPUT«alive␤»
Zoffix m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 }; my ( $r1, $r2 ) = try await $p1, $p2; say 42;
camelia rakudo-moar : OUTPUT«43␤ in block <unit> at /tmp/HxfkqznXGk:1␤␤»
jdv79 k
Zoffix m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 }; my ( $r1, $r2 ) = try { await $p1, $p2; CATCH{ default {}}}; say 42;
camelia rakudo-moar : OUTPUT«42␤»
11:45 Ven joined 11:46 Upasaka joined
jnthn psch: I don't see why those two wouldn't work out the same. 11:46
There may be a reason, but it ain't obvious to me at first glance. 11:47
psch jnthn: right, i'll RT it then 11:48
jnthn m: my $p1 = start { sleep 3; 42 }; my $p2 = start { die 43 }; try my ( $r1, $r2 ) = await $p1, $p2; say 42;
camelia rakudo-moar : OUTPUT«42␤»
jnthn Zoffix: ^^
Zoffix: With multiple awaitables you get back a lazy list
Zoffix jnthn, Ohhhh.
jnthn, thanks. I'll close the RT ticket
jnthn m: my @a = try (1, 2, 3).map({ die })
camelia rakudo-moar : OUTPUT«Died␤ in block <unit> at /tmp/W_00QYTIEa:1␤␤»
jnthn That is a much simpler example of the same thing :) 11:49
nine jnthn: thanks for taking bool_enum off my TODO list :)
yoleaux 11:21Z <jnthn> nine: I fixed the final issues and merged bool_enum :)
nine \o/
jnthn nine: You took precomp management off mine, so I think I came out ahead. ;-)
nine And everybody wins :) 11:50
jnthn \o/
jnthn is working on RT #74900
synbot6: You lazy!
cognominal m: my ($a, [$b] ) = 42, [666]; say ($al, $b) 11:51
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/DvK1knNLeM␤Variable '$al' is not declared␤at /tmp/DvK1knNLeM:1␤------> 3my ($a, [$b] ) = 42, [666]; say (7⏏5$al, $b)␤»
cognominal m: my ($a, [$b] ) := 42, [666]; say ($al, $b)
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/BwqFf9AYkE␤Variable '$al' is not declared␤at /tmp/BwqFf9AYkE:1␤------> 3my ($a, [$b] ) := 42, [666]; say (7⏏5$al, $b)␤»
cognominal oops
m: my ($a, [$b] ) := 42, [666]; say ($a, $b)
camelia rakudo-moar : OUTPUT«(42 (Mu))␤»
cognominal m: my ($a, [$b] ) := (42, [666]); say ($a, $b) 11:52
camelia rakudo-moar : OUTPUT«(42 (Mu))␤»
zengargoyle m: my ($a, @ [$b] ) := 42, [666]; say ($a, $b)
camelia rakudo-moar : OUTPUT«(42 (Mu))␤»
jnthn m: my ($a, [$b] ) := \(42, [666]); say ($a, $b) # maybe this?
camelia rakudo-moar : OUTPUT«(42 (Mu))␤»
zengargoyle m: my ($a, @ [$b] ) := 42, [666]; say $a, $b
camelia rakudo-moar : OUTPUT«42(Mu)␤»
jnthn Hm
zengargoyle hrm indeed, that actually worked for local install. 11:53
jnthn ooh
Bad optimizer, no cookie
Works fine with --optimize=off 11:54
cognominal same here, works locally
jnthn I think it's the same issue as:
cognominal optimize is off by default?
jnthn m: my (\a, \b) := 1, 2; say a; say b;
camelia rakudo-moar : OUTPUT«(Any)␤(Any)␤»
jnthn oh, no...apparently not 11:55
cognominal: No, on level 2 by default
cognominal jnthn, so why does it work locally and not with camelia? 11:56
I mean, destructuring 11:57
closing my ticket. jnthn++ 11:58
jnthn cognominal: What version do you have locally? 12:00
zengargoyle btw, doc.perl6.org/type/Signature makes it sound like the bind isn't needed. but only gives one example of « my ($a, @b) = 5,(6,7,8) » and calls the my part a signature. sorta implying no bind.
dalek ast: cdd533a | jnthn++ | S06-multi/syntax.t:
Tests for RT #74900.
12:01
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=74900
arnsholt Is the "HAS $.foo" syntax for inlined stuff Rakudo-specific, or intended to be general Perl 6 thing? 12:02
jnthn It...exists?
jnthn didn't realize that actually got implemented :P
cognominal jnthn, 2015.11-33-gfa3ce11 12:04
jnthn Bend-47-g99e23c3 here
arnsholt So mostly a Rakudo-thing, then, I guess? =)
12:04 kjs_ joined
arnsholt Oh, wait. Looks like it's actually a *NativeCall* thing 12:05
jnthn ooh :)
jnthn ain't sure 12:06
NativeCall is one of the things that I (co-)started and other people picked up and ran with really well, so I don't follow it too closely any more. :)
Down to 36 xmas RTs. Think I can nail at least one more today. But first, lunch. :) 12:08
12:08 xpen left 12:09 s_kilk left 12:13 Upasaka_ joined, Upasaka left 12:16 sufrostico joined 12:23 rurban left
Skarsnik yes HAS is only on NC x) 12:24
and hello there
12:26 lucasb joined, dayangkun_ left, xinming left 12:27 n0xff joined, xinming_ is now known as xinming
abraxxa jnthn++ 12:28
12:29 kjs_ left 12:30 loren joined 12:32 Ven_ joined 12:34 kid51 joined 12:35 Ven left
dams +win close 12:35
12:35 dams left 12:37 kaare_ joined 12:38 polettix joined 12:42 kid51 left 12:45 kjs_ joined 12:47 CIAvash left
cognominal m: my ( $a => $b ) := :b # probably asking for the moon, but (some) composers should eventually work as deconstuctors 12:56
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/Se8e_43tCc␤Preceding context expects a term, but found infix > instead␤at /tmp/Se8e_43tCc:1␤------> 3my ( $a =>7⏏5 $b ) := :b # probably asking for the m␤»
13:03 sprocket joined
jnthn m: my (:$b) := :b; say $b; 13:04
camelia rakudo-moar : OUTPUT«2 unexpected named arguments passed (key,value)␤ in block <unit> at /tmp/NI148UE4VB:1␤␤»
jnthn ah, yeah :)
Can see $a => $b maybe being doable in sigs...maybe...
cognominal yea, pairs are special with named arguments
jnthn Don't immediately see a syntactic ambiguity 13:05
cognominal I should not distract jnthn :(
andreoss m: my ($a,$b) := :b; say $a;
camelia rakudo-moar : OUTPUT«Too few positionals passed; expected 2 arguments but got 0␤ in block <unit> at /tmp/AgFg1bKJC9:1␤␤»
13:07 ely-se joined, sprocket left 13:14 ZoffixW joined, Skarsnik_ joined
ZoffixW What would be a good way to await several promises then print the results of all that were kept? I've tried multiple things and all look extremely messy or exceptions are thrown: fpaste.scsys.co.uk/501802 13:15
m: my $p1 = start die "I'm dead"; my $p2 = start "I'm alive"; try eager await $p1, $p2; say .result for grep { .status ~~ 'Kept'}, $p1, $p2; 13:17
camelia rakudo-moar : OUTPUT«I'm alive␤»
ZoffixW This isn't too bad, I guess. Using "eager" was key.
13:17 zengargoyle left
jnthn await Promise.allof($p1, $p2) # should do it, but seems allof throws if one of the promises fails 13:18
Which it ain't really meant to
13:18 zengargoyle joined
jnthn Though probably my fault that it does... 13:18
13:18 Skarsnik left
ZoffixW Yeah, I'm kinda confused about the need for .allof() since await awaits for allof them anyway 13:19
13:20 Skarsnik_ is now known as Skarsnik
jnthn Well, the point of allof is more so you can talk about all of them having reached completin independent of whether there was success or not. 13:20
jnthn is looking at concurrency stuff this week, so will address that one 13:21
ZoffixW jnthn++ sweet
13:22 brrt joined 13:27 ZoffixW left 13:33 CurtisOvidPoe joined, zakharyas1 left
CurtisOvidPoe Hi folks. Writing up an OSCON proposal and was curious about the deadline for the Perl 6 release? 13:34
yoleaux 25 Oct 2015 23:17Z <lizmat> CurtisOvidPoe: maybe the awaiterator is something for you ?
13:34 zakharyas joined 13:35 tokuhiro_ joined
jnthn CurtisOvidPoe: Still aiming at ~1 month from now :) 13:35
CurtisOvidPoe Awesome :)
13:38 rurban joined
CurtisOvidPoe @masak: are you here? 13:39
13:40 tokuhiro_ left 13:53 hankache joined 13:56 Upasaka_ left 13:57 zengargoylew joined 13:59 Upasaka joined 14:00 domidumont left 14:04 domidumont joined
hankache hello perl 6 14:06
14:10 loren left 14:12 telex left 14:13 skids joined 14:14 telex joined, sprocket joined 14:15 edehont left 14:16 ely-se left
brrt hi hankache 14:19
Ven_ o/ hankache 14:21
14:29 zact joined 14:31 dgl is now known as dg, Upasaka left 14:34 Ven_ left 14:37 tokuhiro_ joined
masak ahoy hankache 14:38
14:39 coetry joined
timotimo ahoi-hoi 14:40
14:41 iH2O joined, tokuhiro_ left 14:45 Upasaka joined, coetry left 14:47 eliasr left, zact is now known as zacts 14:49 Ven joined 14:51 iH2O left 14:57 zacts left
masak m: constant foo = foo 14:58
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/HYFp4RxYmz␤An exception occurred while evaluating a constant␤at /tmp/HYFp4RxYmz:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Cannot invoke this object␤ at :␤»
masak does anyone remember if this one is in RT? (probably, right?)
timotimo i seem to recall we had a better error for that case at some point; could be for something similar, though
jnthn It's better than it was; it at least tells you now it was trying to evaluate a constant :) 14:59
14:59 cognominal left 15:01 cognominal joined 15:02 xpen joined, Ven left 15:03 sftp left 15:04 jonas2 left 15:06 sftp joined
hoelzro .tell cygx I noticed your logic for detecting the libc DLL name on Windows in Native::LibC; the MSVC variant only seems to work for VS 2011 =/ 15:08
yoleaux hoelzro: I'll pass your message to cygx.
15:10 muraiki joined
muraiki building panda is broken currently due to failing tests in JSON::Fast: github.com/tadzik/panda/issues/247 15:13
15:13 Upasaka left 15:14 Upasaka joined 15:16 lucasb left
timotimo muraiki: please see my latest commit in json_fast 15:16
muraiki timotimo: thanks! I just responded 15:17
timotimo *something* is putting False in there 15:18
that's invalid, but i can't reproduce it locally :(
i mean ... yeah, there's a False in it, but i think the code is supposed to turn that into false instead
muraiki: can you put a bit of debug code into to-json inside lib/JSON/Fast.pm? 15:19
muraiki sure
timotimo line 15 should do the bool thing right
muraiki yes
15:19 CIAvash joined 15:20 [particle]1 left
timotimo m: say True ~~ Bool 15:21
camelia rakudo-moar : OUTPUT«1␤»
15:21 [particle] joined, s_kilk joined
muraiki should that return True? 15:22
timotimo i think so, but i don't think that's the problem here 15:23
muraiki roger
15:23 eyck joined
timotimo i do get True locally 15:23
15:23 eyck left
timotimo so that must be the "make bools into real objects, for real" branch? 15:23
that recently got merged
muraiki I get 1 locally
jnthn m: say Bool ~~ Int
camelia rakudo-moar : OUTPUT«True␤»
jnthn timotimo: That changed
timotimo oh? 15:24
ah!
yes!
so these two lines have to be switched
15:24 eyck joined
timotimo muraiki: pushed commits, please try 15:25
muraiki roger
timotimo if they work, i can incorporate these commits into panda, too, i think
muraiki still fails :( 15:26
# Failed test 'Array of Num' 15:27
# at t/04-roundtrip.t line 38
# expected: $[1.3, 2.8, 32323423.4, 4.0]
# got: $[1.3, 2.8, 32323423.4, 4]
15:27 cdg joined
timotimo that test is todo'd, though, isn't it? 15:27
muraiki oh, yes: not ok 10 - Array of Num# TODO known type mismatches
timotimo :)
if you want to, you can try to fix that :P
muraiki heh, unfortunately I have a problem in production that I need to fix... but I first needed to update rakudo there 15:28
I have a long-running p6 script that creates a bunch of IO watchers and schedules one block to run every 10 min, and for some reason it becomes unresponsive without actually crashing after some period of time 15:29
but the first step is to not use a rakudo from july
:)
15:30 eyck left 15:31 eyck joined, rurban left 15:33 eyck left, zacts joined 15:34 eyck joined 15:35 eyck left, yqt joined 15:36 s_kilk left
timotimo oh, very yes. july is SO LONG AGO 15:37
15:37 FROGGS left
timotimo there were data races and such fixed in the latest months 15:37
15:37 eyck joined 15:38 s_kilk joined
timotimo muraiki: i pushed a subtree update to panda 15:39
dalek href="https://modules.perl6.org/new-db-builder:">modules.perl6.org/new-db-builder: aa44e08 | (Zoffix Znet)++ | t/01-models/03-site-tips.t:
Iterate test fewer times so coverage evaluation does not take forever to run
tadzik muraiki, timotimo: so did json::fast broke on a recent rakudo or what?
15:39 Upasaka left
timotimo yes 15:39
tadzik ah, fair enough
timotimo panda's already updated :)
15:39 Upasaka joined
tadzik I thought panda is installing some bleeding-edge json-fast by accident :) 15:39
so all goodnow?
timotimo i think so 15:40
15:40 s_kilk left
muraiki building now 15:40
yup, it's good! thanks so much
tadzik thanks for reporting it :) 15:41
timotimo yes, thanks a lot, muraiki!
15:43 ely-se joined
muraiki someone else reported it first, but I figured it was critical enough to bother #perl6 about :) 15:44
zengargoylew does Damian Conway ever show up here? is he still involved much in Perl 6 or is that mostly history. 15:45
dalek href="https://modules.perl6.org/new-db-builder:">modules.perl6.org/new-db-builder: df1f196 | (Zoffix Znet)++ | t/02-db-builder/02-github-source.t:
Improve output on test failures

Fatal log errors kill our tests, but the actual messages (like missing GitHub token) do not show up in the TAP. Fix that.
15:46
ely-se Damian Conway's Game of Life
timotimo IIUC damian isn't an IRC person 15:47
tadzik ya
he responds to emails quite actively though
at least that's what I remember when was emailing him like 5 years ago :D
zengargoylew wondering mostly because he's listed as AUTHOR of S26
tadzik S26 is quite old fwiw :)
zengargoylew yeah, hard to tell if parts are still relevant, or so far into future as to be more pipe-dream-ish. 15:49
15:52 g4 left, kjs_ left 15:59 ely-se left 16:00 pippo joined 16:02 kjs_ joined, xpen_ joined
dalek href="https://modules.perl6.org/new-db-builder:">modules.perl6.org/new-db-builder: 4cef3fc | (Zoffix Znet)++ | / (2 files):
Improve test/pod coverage for ModulesPerl6::Controller::Root to 100%
16:03
16:04 xpen left
dalek href="https://modules.perl6.org/new-db-builder:">modules.perl6.org/new-db-builder: 8f447b6 | (Zoffix Znet)++ | lib/ModulesPerl6/Model/SiteTips.pm:
Additional docs for ModulesPerl6::Model::SiteTips
16:07
awwaiid Hello. Can anyone provide examples of single-quote as a name separator ala kabob case in actual code? I want to advocate for removal of single-quote as an option for this, but am trying to keep an open mind. 16:08
16:08 molaf joined
awwaiid m: my $cat's-meow = "fish" ; say $cat's-meow 16:08
camelia rakudo-moar : OUTPUT«fish␤»
16:12 ZoffixW joined
ZoffixW awwaiid, wouldn't what you showed be real-world example enough? :) 16:12
my $bob's-password = 's3cr3t';
Juerd don't { die }; 16:14
dalek href="https://modules.perl6.org/new-db-builder:">modules.perl6.org/new-db-builder: 8f82c1c | (Zoffix Znet)++ | t/01-models/03-site-tips.t:
Improve test/pod coverage for ModulesPerl6::Model::SiteTips to 100%
masak muraiki++ # irclog.perlgeek.de/perl6/2015-11-02#i_11471391 16:15
(I'm late to the game; backlogging here) :)
16:16 xpen_ left
zengargoylew class SilentDog is Dog doesn't Bark { ... } 16:16
masak ;) 16:17
also, check out github.com/trizen/sidef
ZoffixW masak, yeah, you're pretty late to the party :) That quote actually ended up being the title of the Weekly: p6weekly.wordpress.com/2015/11/09/...ion-today/
masak ZoffixW: that's how I found it, yes. I noticed I had an unread weekly. :)
ZoffixW Ah heh :)
masak speaking of which, check out github.com/trizen/sidef 16:18
I was surprised how complete this language seems.
it might very well be the most complete Perl 6-derived language out there. (Perl 6 is a major influence, but not the only one.)
I'm fascinated as much by the features it copies wholesale as by the features it "distorts" along the way. 16:19
16:19 dwarring left 16:20 vendethiel joined
ZoffixW is too burnt out to learn yet another new language :) 16:22
or even "check it out" :)
masak ok -- I respect that. 16:23
I was addressing #perl6 in general, though :)
awwaiid ok, so "doesn't" interesting 16:24
Skarsnik doesn't eist? x)
*exist
jnthn Somebody dropped the regular "what if somebody floods us with LOADS of synthetic codepoints" question in my blog, so there's an answer here if anyone is looking for one at some point: 6guts.wordpress.com/2015/11/21/wha...mment-2252 16:25
awwaiid I guess. I've been working on the docs and this rule kinda feels icky for just a few edge case uses
masak jnthn++
jnthn Also, if somebody fancies an afteroon writing a GC patch... ;) 16:28
diakopter (me?) 16:30
(do I have to wait until afternoon?) 16:31
16:31 espadrine left 16:32 espadrine joined, AlexDaniel joined
masak m: constant afternoon = "morning"; say afternoon # diakopter: for small values of "afternoon" 16:33
camelia rakudo-moar : OUTPUT«morning␤»
16:34 zakharyas left 16:36 zakharyas joined
El_Che a call for papers for Perl6 at Oscon in case someone can make it: blogs.perl.org/users/shadowcat_mdk/...apers.html 16:38
16:38 tokuhiro_ joined
El_Che "We have a very good chance of getting a main room spot if we talk about Perl6 especially since O’Reilly have been pushing known Perl authors on the idea of a Perl6 book" 16:38
16:39 brrt left
geekosaur still needs to put together something sensible about NativeCall vs. shared library APIs :/ 16:41
ZoffixW El_Che, I believe CurtisOvidPoe and DrForr are both submitting papers 16:42
16:42 tokuhiro_ left, Actualeyes left
mspo camel6 16:43
16:44 n0tjack joined 16:45 xfix joined, khw joined
Skarsnik NC vs shared lib? 16:45
16:46 ibo2perl6 joined
El_Che ZoffixW: thx for the info 16:46
16:49 zakharyas left
awwaiid so nobody else wants to get rid of single-quote as a separator, eh? oh well. 16:49
mspo what is the original justification for it? 16:50
ZoffixW awwaiid, I'm not bothered by it, unless removing it would enable a more useful feature to be implemented.
mspo, don't { say "know"; } :)
awwaiid haha 16:51
I feel like it is just showing off how awesome the parser is, but could make my code less nice 16:52
xenu awwaiid: perl5 has it too and it's a disaster imho
awwaiid perl5 has it as an older alternative to :: iirc, which I would only use in obfuscation contests
16:52 molaf_ joined
xenu yes, but it's still has the same problem 16:52
ilmari at least in perl6 it's a part of the identifier, not a synonym for the package separator
xenu it's extremely unintuitive
ilmari and makes syntax highlighting harder 16:53
xenu s/it's/it/
ZoffixW But the only reason it's unintuitive is because you can't use it in most other langs.
xenu and makes eye-parsing real hard
ZoffixW Same argument can be made for "-" in kebab case.
16:54 molaf left
ibo2perl6 I'm experimenting with promises here my example: gist.github.com/ibo2go/8287f0d0fee118f63ff5 but using promises slows my script down. 16:54
awwaiid - is at least a traditional compound-word-separator. single-quote is more of a conjunction'r
xenu ZoffixW: it's true, but do we really want to be *that* different than the rest?
what we will gain?
ilmari ZoffixW: kebab-case is more widespread in other languages (particularly lisps)
awwaiid I'm also plenty used ot kabob world from lisp :)
xenu - makes more sense imho
ilmari do any other languages use '? 16:55
awwaiid ilmari: no, don't be silly of coures they don't
well
I use it in ocaml as "prime"
like f'(x)
ilmari would have thought it would be a nice wart to shed from perl5
16:55 edehont joined
awwaiid but you aren't allowed to use it at the end in perl6 16:55
xenu there are features that are made just to be used in japh programs and it's one of them
ilmari yeah, ' and - have to be between two \w chars
xenu i hate it
16:55 rurban joined
ilmari even foo--bar is illegal 16:56
m: my $foo--bar
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/Nzd4cNvH_B␤Two terms in a row␤at /tmp/Nzd4cNvH_B:1␤------> 3my $foo--7⏏5bar␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier␤ s…»
ZoffixW xenu, I'll put your question on its head: what do we gain by removing support for ' ? :)
16:58 ab6tract joined
ZoffixW m: my \Δ'Δ = 'What identifier?'; say Δ'Δ 16:58
camelia rakudo-moar : OUTPUT«What identifier?␤»
ab6tract i would like to second the "kill single quotes in names"
ZoffixW heh
ab6tract, what is the reasoning?
ab6tract it's one of those things that happens so rarely, you forget it exists
ZoffixW ab6tract, but so does the Δ and any other Unicode char that works for an identifier 16:59
xenu ZoffixW: easier coloring, easier eye parsing, avoiding perl 5 "success" with many obscure unknown features
ugexe is there a convention behind lib/NativeCall/Test having extension .pm and lib/lib and lib/newline having .pm6?
16:59 zom6 joined
ab6tract ZoffixW:a pure, unadulterated sense of foreboding 16:59
but it probably won't happen
jnthn ugexe: No; I'd be happy for them to all become .pm6
xenu i mean as a die-hard perl coder i have ' hardwired as string operator in my brain
nothing else
- is much more tolerable
ZoffixW xenu, but it is hardwired to be the minus! 17:00
ab6tract it's more just like ... do we really need that? what do we expect people's reactions to be when they learn that?
xenu apart from being perl programmer i'm also natural language speaker
and that's what makes - more tolerable
(and also lisp) 17:01
17:01 raiph joined
ab6tract to me it seems like one of those "ah, there you go making a language full of a bunch of cute corner cases" with the result of distrust to the language 17:01
xenu sounds like c++ to me
or p5 sadly
ZoffixW xenu, that's an argument against your position. Apostrophe in words is way common in natural languages.
ab6tract than "omg i have always wanted to be able to have english style conjugation in my var names!!"
ZoffixW xenu, more common than a minus, I'd imagine.
xenu ZoffixW: as a name of something? 17:02
- is just a little bit different than _, and it doesn't cause coloring confusion
there are lots of simple text editors that don't have real parse
and will go bonkers on that
parser*
ab6tract the bikeshed was painted long ago and probably no one who can authorize would agree 17:03
zom6 Can I write this one-liner shorter? : .say for |<file1>.IO.lines[*-3 .. *], |<file2>.IO.lines, |<file3>.IO.lines[*-5 .. *]
ZoffixW xenu, in my experience that applies to much of Perl 6.
xenu some coloring failures are more tolerable, some less
ab6tract but if someone were to file a ticket for this, and it was my responsibility to triage, i would definitely put a "NOT A BUG - WON'T FIX"
RabidGravy except for old Perl hands ' within an identifier is a package separator
ab6tract on that
xenu when something is taken as string then it's the worst case possible
RabidGravy so for that reason I'd prefer it was just not allowed in identifiers 17:04
ab6tract (on a hypothetical ticket asking for single quotes in names)
ugexe i thought the motto was torture the text highlighter implementor on behalf of the compiler implementor
ZoffixW xenu, but how often will you see ' in identifiers that colouring on poorly-made editors will become a problem?
AlexDaniel has anybody ever seen such 「'」 usage in perl6 code?
or perhaps used?
ab6tract ZoffixW: probably almost never! which is why we don't need
it
xenu ZoffixW: so if nobody is going to use it frequently then why complicate our lives?
ZoffixW xenu, again, the same same argument can be made for Unicode chars that are valid in identifiers
ab6tract AlexDaniel: exactly
ZoffixW xenu, how are lives complicated? 17:05
xenu by existance of unintuitive corner cases
also unicode identifiers are different story because they usually can't be confused with
traditional perl constructs
17:05 hankache left
zengargoylew my $a, $a's-parent, $b, $b's-parent; ... 17:06
ab6tract ZoffixW: maybe we could argue this the other way
ZoffixW xenu, ab6tract, let's ditch ζ too then. How often will that be used? Why complicate our lives?
m: my $ζ = 42; say $ζ
camelia rakudo-moar : OUTPUT«42␤»
ab6tract could you explain a single circumstance where they would b e necessary?
no, that's not the point at all ZoffixW
AlexDaniel
.oO( ban '' and ""! Let's force everybody to use ‘’ and “”! This is so much easier to parse! )
ZoffixW ab6tract, don't-let-the-user-in();
AlexDaniel do-not-let-the-user-in(); 17:07
ZoffixW ab6tract, well, the case where they provide clarity. Nothing's necessary
ab6tract completely unconvinvcing
but like i said
xenu they remove clarity
ab6tract the shed is painted, and it's your colour
ZoffixW AlexDaniel, hey, write that as do_not_let_the_user_in() and let's get rid of -. Remove for clarity
geekosaur of all the things that complicate Haskell for users, I think ' in identifiers is the least of them
CIAvash this might be a little relevant: stackoverflow.com/questions/567391...in-haskell
ZoffixW ab6tract, it's as unconvincing that you're fine with ζ but not with ' :) 17:08
ab6tract ZoffixW: look, underbar and hyphen are not in the same class as single quote
CIAvash stackoverflow.com/questions/103632...in-haskell
ab6tract you can't make that argument
AlexDaniel ZoffixW: yeah, that's an interesing idea…
ZoffixW ab6tract, sure I can if we're arguing about making a character invalid because it's rarely used and makes syntax highlights difficult :)
Anyway.... 17:09
ZoffixW looks at the bikeshed painted in their colour :)
AlexDaniel m: my \x = 5; my \x' = 0; say x; say x'
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/b7ZDQNqNa2␤Redeclaration of symbol x␤at /tmp/b7ZDQNqNa2:1␤------> 3my \x = 5; my \x7⏏5' = 0; say x; say x'␤ expecting any of:␤ new term to be defined␤»
ab6tract no it is not. one is a unicode character that represents a number. the other is a punctuation character (generally disallowed in names)
AlexDaniel hm, what's wrong with this?
ZoffixW AlexDaniel, you can't have ' as last char
ab6tract yay! edge case for the edge case!
AlexDaniel ZoffixW: bummer
17:10 ConSi joined
ab6tract but of course you can write a postfix op using it 17:10
xenu ZoffixW: do you *really* don't see difference between random unicode chars and '?
AlexDaniel xenu: because ' is not a random unicode char, perhaps?
ZoffixW ab6tract, disallowed? D'Juan who lives in Coeur d'Alene, ID 17:11
xenu, not in the context of "it's rarely used and makes eye parsing confusing"
ab6tract, moreover, it's not only names. It's actions too, since I presume you can have apostrophes in method/sub names. 17:12
17:12 zacts left
ZoffixW is tired of discussion 17:12
17:12 ZoffixW left
xenu ZoffixW: how is character you used as example before complicating parsing? 17:12
AlexDaniel m: my \x = 2; my \y = 5; say x+y;
camelia rakudo-moar : OUTPUT«7␤»
AlexDaniel m: my \x = 2; my \y = 5; say x-y;
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/HJtG2Q03et␤Undeclared routine:␤ x-y used at line 1␤␤»
AlexDaniel :/ 17:13
xenu well, to each his own, i guess
Skarsnik lol
SmokeMachine_ Hi there! I was playing with perl6 and tried to implement "optional types" (like swift) and I'd like to know if is there a better way to do it: 17:14
17:14 ir2ivps4 joined, ab6tract left
Skarsnik optionnal types? 17:14
SmokeMachine_ www.irccloud.com/pastebin/TY9qyRud/
17:14 ConSi left
SmokeMachine_ Skarsnik: yes, like this: www.appcoda.com/beginners-guide-optionals-swift/ 17:16
17:16 espadrine left
AlexDaniel SmokeMachine_: oh, you mean :D for definedness? 17:17
SmokeMachine_: or maybe I got that wrong
SmokeMachine_ AlexDaniel: yes, I think that's it!
Skarsnik I don't get the use of it. everything is 'optionnal' by default perl6 never force you to assign something to a variable x) 17:18
muraiki if I create a IO::Notification.watch-path() but don't assign it to a variable, is it reasonable to expect that it will never be garbage collected?
17:18 abraxxa left
muraiki I mean, I've had these watchers continue to exist for some time... but sometimes it's as if they just stop watching 17:19
SmokeMachine_ Skarsnik: but I'll have to (in my example): if $test != Nil and my $p = $test.x {...} (ok, Point was not a good example...)
AlexDaniel m: my Int:D $x = 25; $x = Nil; say $x 17:21
camelia rakudo-moar : OUTPUT«Method 'shortname' not found for invocant of class 'Perl6::Metamodel::DefiniteHOW'␤ in block <unit> at /tmp/8AgN48WvXf:1␤␤»
jnthn muraiki: I don't think the supply would ever get GC'd, since it will be kept alive by the async event loop wanting to push new notifications
AlexDaniel m: my Int $x = 25; $x = Nil; say $x
camelia rakudo-moar : OUTPUT«(Int)␤»
AlexDaniel what's up with this error message?
SmokeMachine_ Skarsnik: instead of ($test != Nil and my $p = $test.x) I can only use (my $p = $test?.x)
awwaiid I'd be more ok with ' if it was allowed as the last char (like digits)
jnthn muraiki: So I'd suspect something other than GC is wrong
muraiki jnthn: thanks. I'm having a heck of a time figuring out why my supplies which normally work stop working... I don't think any exceptions are being thrown and not-caught, because the program should terminate in that case, right? 17:22
jnthn muraiki: How easily can you reproduce the hang?
Is it just a case of "have a long-running program watching files"?
muraiki jnthn: it generally seems like it starts to happen once the process has been running for a few days, but earlier today it happened immediately
yeah
cognominal m: class A { has $.hi = 'hi' }; A.bless(:hi<hello>).hi.say; A.new.hi.say
camelia rakudo-moar : OUTPUT«hello␤hi␤»
jnthn muraiki: OK, I may be able to recreate it
muraiki jnthn: wow, thanks! 17:23
Skarsnik SmokeMachine_, I think there is an operator that affect if something is defined?
SmokeMachine_ AlexDaniel: nothing is wrong, but I'd like to? $x?.say just do nothing...
arnsholt jnthn: I've got a hang with raw Threads that looks like it happens 100% of the time, if that might be useful
cognominal SmokeMachine_, A cursory reading make me think optional are attribute with a default value
awwaiid alright. well thank y'all for arguing my points for me. Meta question: how do I bring up questions like "should we ditch single-quote separator" in a constructive way that can be considered by like TimToady?
AlexDaniel SmokeMachine_: so you don't want it to fail, you just want it to do nothing?
arnsholt But with NativeCall, on the downside
jnthn arnsholt: Yes
SmokeMachine_ yes...
AlexDaniel: ^^
arnsholt jnthn: I'll try to write up a minimal case this evening in that case! 17:24
jnthn There's one reported Moar issue where after a while it seems to get into a hang in the GC; it may or may not be related.
arnsholt: Thanks
awwaiid (the hope being that while yes, it was considered and explicitly added long ago, maybe 10 years later minds have changed)
arnsholt jnthn: Yeah, when I loaded it up in gdb and interrupted it when it hanged I think it was in the GC
AlexDaniel SmokeMachine_: let's see
jnthn awwaiid: I think I was around when - and ' became supported, so it will have been less than 10 years. :-)
SmokeMachine_ AlexDaniel: if I have chained methods calls with a ?, it will do nothing after the ? if it's value is Nil...
AlexDaniel SmokeMachine_: yeah, okay, now it's clear! 17:25
cognominal SmokeMachine_, sorry, seems more than that :(
jnthn awwaiid: I'm quite sure most of the counter-arguments around syntax highlighters and similar were considered by TimToady++
arnsholt: OK. If we're lucky, it may be the same thing muraiki runs into, except faster to reproduce. :) 17:26
SmokeMachine_ AlexDaniel: my sample code isn't 100%... but its going that way...
muraiki woo hoo
SmokeMachine_ cognominal: sorry, I didn't get it...
zengargoylew wouldn't syntax highlighting just boil down to... use Perl 6 to do the highlighting! :)
dalek p: 82e4fef | jnthn++ | tools/build/MOAR_REVISION:
Get MoarVM with nqp::ctx caller capturing.
17:27
SmokeMachine_ zengargoylew: sorry, was that about my snippet?
zengargoylew SmokeMachine_: no that's about the ' in identifiers. 17:28
Skarsnik zengargoyle, enjoy 0.1 fps syntax hightlighting x)
arnsholt jnthn: Definitely. What's the Moar issue number? Then I'll just attach my testcase there 17:29
zengargoylew *cough* seems syntax highlighting already gets that slow sometimes...
cognominal SmokeMachine_, is supposed $x?.say to mean something like $x ?? $x.say !! Nil
dalek kudo/nom: eb9421b | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get updated Moar.
kudo/nom: bedf2a7 | jnthn++ | src/core/ (2 files):
Code in start blocks see dynamics of starter.

So `my $*E = 42; say await start $*E;` now gives 42, not an exception.
ast: b1b91b8 | jnthn++ | S17-promise/start.t:
Test for RT #125196.
17:30
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125196
SmokeMachine_ cognominal: yes, something like that!
cognominal SmokeMachine_, my first answer was irrelevant, forget it.
zengargoylew maybe a laxer grammar with no need for much by way of actions plus an async capable editor ...
AlexDaniel SmokeMachine_: that's an interesting question, actually. I'm trying to find a way to do that with custom postfix perhaps 17:31
cognominal SmokeMachine_, I think this conditionnal chaining is lacking from Perl 6
AlexDaniel cognominal: what if we define it?
SmokeMachine_ cognominal: but it can be bigger: $ad?.buyer.name?.last_name for example
cognominal SmokeMachine_, to bad because it is used with sucess in many languages
17:31 tokuhiro_ joined
SmokeMachine_ AlexDaniel: my snippet just do that... I use 2 ? postfixes... 17:32
cognominal m: hi.?say # this is different
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/ujXjI_J0RI␤Undeclared routine:␤ hi used at line 1␤␤»
zengargoylew m: my $x; $x andthen .say;
camelia ( no output )
zengargoylew m: my $x = 42; $x andthen .say;
camelia rakudo-moar : OUTPUT«42␤»
SmokeMachine_ zengargoylew: that looks like what I want... 17:33
AlexDaniel zengargoylew: right?
s/?/! 17:34
cognominal andthen is too verbose :(
zengargoylew there
cognominal m: 'hi'.?say # this is different
camelia rakudo-moar : OUTPUT«hi␤»
zengargoylew doh, there's andthen and orelse, don't know if there's operatorish versions. 17:35
cognominal this one test the existence of the method, not the definedmess of the invocant. I find it less useful
... compare to andhten, we don't huffmanize here
zengargoylew but a Nil wouldn't have the method...
17:35 rurban left
cognominal m: 'hi'.?dit-le 17:36
camelia ( no output )
17:36 tokuhiro_ left
cognominal m: say 'hi'.?dit-le.perl 17:36
camelia rakudo-moar : OUTPUT«Nil␤»
zengargoylew so close
tony-o jnthn++ #RT125196
17:37 n0tjack left 17:38 n0tjack joined 17:42 jme- joined
ilmari would it be possible to write a postfix operator that inteprets xⁿ as x ** n for all sequences n of superscript digits? 17:43
or would that require a slang?
AlexDaniel ilmari: oh, there is a clog for you!
let me find it
ilmari hardcoding it for any particular sequence is easy
jnthn ilmari: Think it'd need a slang
17:43 jme- left
psch ilmari: it needs a slang or macro. categoricals can only be defined with stringy bits 17:43
ilmari m: postfix:<¹²> (Num $x) { $x ** 12 }; say 2¹²
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/enQTsCaSiF␤Two terms in a row␤at /tmp/enQTsCaSiF:1␤------> 3postfix:<¹²> (Num7⏏5 $x) { $x ** 12 }; say 2¹²␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ …»
ilmari m: sub postfix:<¹²> (Num $x) { $x ** 12 }; say 2¹² 17:44
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/pe9EoCirUY␤Calling postfix:<¹²>(Int) will never work with declared signature (Num $x)␤at /tmp/pe9EoCirUY:1␤------> 3ostfix:<¹²> (Num $x) { $x ** 12 }; say 27⏏5¹²␤»
ilmari m: sub postfix:<¹²> (Numeric $x) { $x ** 12 }; say 2¹²
camelia rakudo-moar : OUTPUT«4096␤»
ilmari thanks to LTM that works even if ther is a postfix:<¹> as well 17:45
AlexDaniel ilmari: irclog.perlgeek.de/perl6/2015-11-20#i_11575591
17:46 jme` joined
n0tjack m: sub postfix:<¹> (Numeric $x) {$x ** 1}; sub postfix:<²> (Numeric $x) {$x ** 2}; sub postfix:<¹²> (Numeric $x) { $x ** 12 }; say 2¹²; 17:46
17:46 dha joined
camelia rakudo-moar : OUTPUT«4096␤» 17:46
n0tjack interesting
m: sub postfix:<¹> (Numeric $x) {$x ** 1}; sub postfix:<²> (Numeric $x) {$x ** 2}; sub postfix:<¹²> (Numeric $x) { $x ** 12 }; say 2¹ ²;
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/UIKxfBHH_S␤Confused␤at /tmp/UIKxfBHH_S:1␤------> 3x:<¹²> (Numeric $x) { $x ** 12 }; say 2¹7⏏5 ²;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement e…»
psch m: say 1+ + 17:47
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/BzYadKIm54␤Prefix + requires an argument, but no valid term found␤at /tmp/BzYadKIm54:1␤------> 3say 1+ +7⏏5<EOL>␤ expecting any of:␤ prefix␤»
awwaiid jnthn: yeah. I'm probably barking up the wrong tree 17:50
17:50 black_ant joined
psch SmokeMachine_: your ?. dotty op would stop invoking the next method if it found a Nil on the LHS i gather? 17:50
zom6 Can I write this one-liner shorter??-> .say for |<file1>.IO.lines[*-3 .. *], |<file2>.IO.lines, |<file3>.IO.lines[*-5 .. *] 17:51
AlexDaniel psch: yes
pink_mist isn't that what a Failure is for?
17:52 black_ant left
psch i'd probably do that with a FALLBACK on Nil that returns Nil and a scoped postfix which is &infix:<//>.assuming(*, Nil) 17:53
jnthn zom6: Don't immediately see a way; you could write "for flat" instead of the |s
17:53 sprocket left
AlexDaniel psch: yeah, but andthen already does that 17:54
psch m: use MONKEY-TYPING; augment Nil { method FALLBACK { Nil } }; Nil.^compose; my &postfix:<?'> = &infix:<//>.assuming(*, Nil); class A { method foo { Nil }; method bar { "bar" } }; A.new.foo?'.say; A.new.bar?'.say
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/44HwEiMvUT␤Malformed augment␤at /tmp/44HwEiMvUT:1␤------> 3use MONKEY-TYPING; augment Nil7⏏5 { method FALLBACK { Nil } }; Nil.^compo␤»
psch eh
oh, Nil has a FALLBACK, is that already Nil? :S
yeah, it is.. 17:55
m: my &postfix:<?'> = &infix:<//>.assuming(*, Nil); class A { method foo { Nil }; method bar { "bar" } }; A.new.foo?'.say; A.new.bar?'.say
camelia rakudo-moar : OUTPUT«(Any)␤bar␤»
psch .say is obviously treacherous here
jnthn zom6: Unless you do something like .say for flat (<file1 file2 file3> Z (*-3, *, *-5).map({ $^f.IO.lines[$^s .. *] }) or so
psch AlexDaniel: yeah, andthen does that, but as you said huffmanizes longer 17:56
jnthn Didn't count the chars to see if it's actually shorter; it's just a bit less repetitive :)
AlexDaniel psch: somebody else said that, I think. But hey, is there any way to make a custom operator that works like andthen?
jnthn dinner; bbl &
17:56 kjs_ left
AlexDaniel psch: andthen simply sets $_ as far as I can see 17:57
psch AlexDaniel: well, &lhs andthen &rhs is kinda like with &lhs { &rhs }
AlexDaniel: the problem is, with a custom operator you'd have to leave the statement early
AlexDaniel: i think that's macro-space
well, unless the example postfix:<?'> up there fits your use-case... 17:58
17:58 sprocket joined
psch it probably could be postfix:<?>, i don't think there's anything there yet... 17:59
17:59 FROGGS joined 18:00 rindolf joined 18:02 dakkar left
AlexDaniel m: Any notandthen .say; 18:02
camelia rakudo-moar : OUTPUT«(Any)␤»
AlexDaniel notandthen! 18:03
diakopter noanthe for short
FROGGS we could call the short form 'nat' :o) 18:04
timotimo alternativelythen? 18:05
AlexDaniel FROGGS: aha, and we can call andthen ‘?’ 18:06
zengargoylew [&andthen] $x, .foo, .bar, .baz, ... :S
18:06 ZoffixW joined
ZoffixW m: gist.github.com/zoffixznet/87ad068ee92e934ec71c 18:06
18:06 P6 joined
P6 Now is Instant:1448302047.207318 18:06
ZoffixW Haw
18:07 P6 left
camelia rakudo-moar : OUTPUT«(timeout):orwell.freenode.net NOTICE * :*** Looking up your hostname... 18:07
diakopter erm lol
AlexDaniel haha
ZoffixW How come it doesn't re-announce the instant? I'm setting a new promise here: gist.github.com/zoffixznet/87ad068...est-p6-L11
diakopter maybe timed out just before it 18:08
ZoffixW No, I don't get it rethrown locally either
Even if I wait
re-reacted to I guess I should say
diakopter maybe the socket gets closed first 18:09
TimToady so...why do the drains always plug up right about at Thanksgiving?...at least it did it before the hordes arrive this time...
yoleaux 22 Nov 2015 08:37Z <hankache> TimToady: re - and ' noted. thank you for going through the doc
18:09 pdcawley left
diakopter ZoffixW: oh, you missed a say 18:10
ZoffixW diakopter, where?
TimToady at least I can backlog while waiting for the drain cleaner to (probably not) work
diakopter well you didn't bind the whenever to the new timer object 18:11
ZoffixW Hmmm
diakopter I guess you'd have to assign to a different variable?
I dunno
TimToady going to borrow a snake just in case &
ZoffixW I want to react every 5 seconds (at least for this test). 18:12
diakopter well I don't think assigning to teh same $timer variable will work
ZoffixW looks at the docs for Supply 18:13
diakopter ZoffixW: do .then on the same $timer 18:14
18:14 andreoss left, sprocket left
SmokeMachine_ psch: I had implemented just the ?, but if implement the ?. it shouldn't call the next method if its Nil... 18:15
18:16 P6 joined
P6 Now is Instant:1448302902.110440 18:16
18:16 P6 left
ZoffixW Ooops. Wrong server :P 18:16
FROGGS *g*
diakopter lol that was me I think
ZoffixW No, it was me :) 18:17
18:17 Oatmeal joined
ZoffixW diakopter, that didn't do anything. I think .then just returns a new promise 18:17
arnsholt jnthn: gist.github.com/arnsholt/26d4e5fed6062917c643 # Reproduces the hang issue for me every time. May of course be caused by NativeCall shenanigans though
18:17 P6 joined
P6 diakopter Now is Instant:1448302703.104126 18:17
ZoffixW Now that is someone else :P 18:18
18:18 P6 left
diakopter XD 18:18
we're gonna get that IP banned
:o
ZoffixW That's your IP lol :) 18:19
I think I found the right-sized hammer for this: docs.perl6.org/type/Supply#method_interval 18:20
18:20 diakopter___ joined
diakopter___ No, I was privmsg camelia 18:21
ZoffixW Ah
18:23 AlexDaniel left 18:26 jme` left
ZoffixW m: gist.github.com/zoffixznet/0975882676a427bcb35d 18:27
This one does the trick methinks
18:27 P6 joined
camelia rakudo-moar : OUTPUT«(timeout):rajaniemi.freenode.net NOTICE * :*** Looking up your hostname... 18:27
18:27 P6 left
ZoffixW hehe. Well, it works locally :) I'm guessing Freenode was just slow to send the :End of NAMES list message 18:28
18:28 domidumont left, jme` joined 18:29 jme` left 18:30 jme` joined 18:34 diakopter___ left
dalek rl6-roast-data: d51825a | coke++ | / (9 files):
today (automated commit)
18:34
[Coke] .botsnack 18:35
yoleaux 22 Nov 2015 22:52Z <bartolin> [Coke]: the spectest for JVM should be nearly clean by now. the three failures in S05-mass/properties-general.t (596-598) seem to happen because we test unicode characters not supported by Java 7 (the tests pass with JDK 1.8)
synbot6 om nom nom
yoleaux :D
18:35 xiaomiao left
[Coke] bartolin: thanks. We should probably consider coming up with a jvm fudge that works based on the java version. 18:35
18:36 black_ant joined, xiaomiao joined, ZoffixW left, black_ant left
dalek Heuristic branch merge: pushed 114 commits to roast/curli by niner 18:42
18:43 kjs_ joined
SmokeMachine_ psch: I did return with self but False because I can $blah?.ble.bli and can't execute able neither bli 18:46
18:46 [particle] left 18:51 polettix left
masak people who kvetch in the backlog about the apostrophe in identifier names guess right; that won't change :) 18:52
also, "what might [newcomers] think" and "think of [other parsers]!" also count as non-arguments agains the backdrop of Perl 6 culture 18:53
against*
I know, I've been on that (losing) side occasionally :)
FROGGS nine: how can I tell that "use lib 'foo'" is about a CULRI or a CULRF? 18:54
cognominal $that-won't-change++
18:54 domidumont joined
FROGGS nine: use lib "inst:foo" ? 18:56
jdv79 can't there be an option with an adverb or something and default it maybe 18:57
FROGGS nine: nvm, use lib "inst#foo" does the trick
jdv79 the weird CUR string formats are weird - yeah, those. is it inst# and file#? 18:58
SmokeMachine_ Does this make sense? why is it saying that does not exists Point? www.irccloud.com/pastebin/uYLW4MdL/
18:58 hankache joined
FROGGS jdv79: I think I'm also in favour of an adverb, but we'll see what happens 19:00
dalek kudo/curli: efd685c | (Stefan Seifert)++ | src/core/CompUnit (3 files):
Add repo-id to CompUnit
19:08
SmokeMachine_ m: sub f{return Int}; my f $i = 42; $i.say
camelia rakudo-moar : OUTPUT«5===SORRY!5===␤Type 'f' is not declared␤at /tmp/vhIVoyFnEb:1␤------> 3sub f{return Int}; my f7⏏5 $i = 42; $i.say␤Malformed my␤at /tmp/vhIVoyFnEb:1␤------> 3sub f{return Int}; my7⏏5 f $i = 42; $i.say␤␤»
SmokeMachine_ m: sub f{return Int}; my f() $i = 42; $i.say 19:09
camelia rakudo-moar : OUTPUT«5===SORRY!5===␤Type 'f' is not declared␤at /tmp/xPu4fXBxDR:1␤------> 3sub f{return Int}; my f7⏏5() $i = 42; $i.say␤Malformed my␤at /tmp/xPu4fXBxDR:1␤------> 3sub f{return Int}; my7⏏5 f() $i = 42; $i.say␤␤»
SmokeMachine_ is there any way to do that?
m: sub f(--> Int:U){return Int}; my f() $i = 42; $i.say
camelia rakudo-moar : OUTPUT«5===SORRY!5===␤Type 'f' is not declared␤at /tmp/iHb4hSDQer:1␤------> 3sub f(--> Int:U){return Int}; my f7⏏5() $i = 42; $i.say␤Malformed my␤at /tmp/iHb4hSDQer:1␤------> 3sub f(--> Int:U){return Int}; my7⏏5 f() $i = 42; $i.say␤␤»
RabidGravy m: constant f = Int; my f $i = 42; 19:10
camelia ( no output )
FROGGS nine: I just started writing tests for curli 19:11
SmokeMachine_ so, there's no way to my Int? $bla = 42; works, right? 19:12
only: my $bla = Point?.new() 19:13
19:14 AlexDaniel joined
nine FROGGS: yeah :) 19:15
timotimo nine: want to give me a little "executive summary" for the curli branch that i can put (verbatim or reworded) into the weekly? 19:16
19:18 ibo2perl6 left 19:20 zom6 left 19:21 CIAvash left
nine The curli branch will bring robust precompilation-management with automatic precompilation. In addition we will get full support for :auth and :ver adverbs when loading module while keeping startup time independent of the number of installed dists. 19:21
19:22 leont joined
dalek kudo/curli: c8eaab3 | (Stefan Seifert)++ | src/core/CompUnit (3 files):
Rename CompUnit.name to short-name to match DependencySpecification
19:22
kudo/curli: 21cd2c8 | (Stefan Seifert)++ | tools/build/Makefile- (2 files):
Remove manual precompilation from the build process.

This is handled by installing the CORE dist containing those modules. This rids us of the sha hash output during the build.
19:23
19:25 zakharyas joined
hankache evening everyone 19:25
vendethiel o/ 19:26
masak hankache: ahoy
19:26 diakopter___ joined 19:27 diakopter___ left
masak funny: I don't recall tactically type-annotating parameters and attributes before in order to trigger type errors earlier (as part of a refactor) 19:27
doin' it now.
zengargoylew nine: can the :auth and :ver be picked up from META6.json or only from inside the module itself?
hankache is this statement right? Perl 6 belongs to the C-family languages.
masak hankache: syntactically, yes.
hankache: but it's also right to say that both Perl 6 and C belong to the Algol-family of languages, syntactically. 19:28
Skarsnik I was wondering, would it be a good idea for modules that use an external lib (like a binding) to put this information in the Meta file? Could probably make distrib package life easier and allow panda/whatever to display information for the admin that it will need something else
geekosaur considers Algol more of a superfamily
hankache masak thanks. i wrote it and was having 2nd thoughts
nine zengargoylew: they are in fact picked up from the META6.json only for now
19:29 eliasr joined
hankache what is algol ?! ;) 19:29
19:29 [particle] joined
masak hankache: en.wikipedia.org/wiki/ALGOL 19:30
19:30 diakopter___ joined
nine zengargoylew: and I don't see how they could be otherwise. We're dealing with CompUnits here, which means ~~ file. A file may contain 0 or more packages (modules, roles, grammars or classes or ...) with different auth and versions 19:30
19:30 zakharyas left
geekosaur a language that a number of current languages could learn from (ob cowlark.com/2009-11-15-go/) 19:30
masak hankache: it doesn't have '{' and '}' like C does, it has 'begin' and 'end'. but the general ideal (of code as nested blocks) is there, and C is very much based on it.
zengargoylew cool i can see that being problematic, multiple things in a file.. 19:31
masak hankache: if you find a timeline with which languages influenced which ones, Algol is right there near the root of an influential subtree containing both Perl and C; that's my point.
AlexDaniel “A special kind of type is Any . Every type is a subtype of Any . This is also true for the builtin type object” – does not sound very pythonic, right? :) 19:32
TimToady Mu is not a subtype of Any 19:33
19:33 edehont left, tokuhiro_ joined
TimToady nor is Junction 19:33
hankache masak thanks 19:34
AlexDaniel (from www.python.org/dev/peps/pep-0484/)
TimToady ah
TimToady still distracted by drains... 19:35
19:35 [particle] left 19:37 edehont joined
AlexDaniel TimToady: by the way, what about qx// thing? I was a bit busy so did not pay any attention. Any progress? 19:37
TimToady nobody's done anything with it yet
hankache A special kind of type is Any . Every type is a subtype of Any . This is also true for the builtin type object . However, to the static type checker these are completely different.
^^ The dark side awakens :D 19:38
19:38 tokuhiro_ left 19:39 yubimusubi left
timotimo will have dinner, then later do the weekly 19:40
AlexDaniel TimToady: okay, but to me it is a bit unclear what should be done. You said that qx// should use run() underneath, yet the details are missing (e.g. what if I want to pipe something?). So, in other words, if I really want to get this thing moving, what should I do?
timotimo nine: i was thinking more along the lines of "how far along is it, what's missing, could it potentially be merged this week?" rather than "what does it do" :)
but yeah, i worded none of that properly
19:41 Possum joined, edehont left
nine Ok, how was that phrased? We've gotten the first 80 % done and are well into the second 80 % ;) 19:45
AlexDaniel nine: the third part is also important
“unless there are another 80%” 19:46
FROGGS AlexDaniel: is that the one after the rewrite? :o)
AlexDaniel FROGGS: not necessarily
19:47 diakopter___ left
nine timotimo: The implementation is fast approaching mergability. Now that FROGGS++ has started on the tests what's most missing is probably some review and testing. 19:47
Not everything that's in jnthn++'s gist is implemented, like $?REPO, but we can add that after the merge as well. 19:48
FROGGS nine: btw, I think CURLI.install is still using the old api 19:49
or rather exposing the old api
nine FROGGS: It's actually CURI now ;) But yes, the install method still has the same signature. Should fix that soon. 19:50
FROGGS ohh, CURI, I see :o)
nine We also still need to find a new home for what's left in CompUnitRepo.pm 19:51
FROGGS I can do the install method change
nine That'd be great :) 19:52
Should simplify install's code somewhat
dalek kudo/curli: 3ae40a9 | (Stefan Seifert)++ | src/core/CompUnit (2 files):
Add .version and .auth attributes to CompUnit
19:54
19:54 diakopter___ joined
tadzik hey, #perl6! 20:01
dalek kudo/curli: 91533ff | (Stefan Seifert)++ | src/core/CompUnit (2 files):
Add a $.distribution attribute to CompUnit
tadzik Look what came in the mail today
i.imgur.com/UhiM6Rs.jpg
20:01 zakharyas joined, sprocket joined
n0tjack does czesc mean "hello"? 20:02
or "want some"?
nine tadzik: cooool! 20:03
hankache tadzik: nice! 20:05
lizmat good *, #perl6!
FROGGS tadzik: cool!
hi lizmat
lizmat FROGGS o/
tadzik n0tjack: that's "hello", yes
and the title is funny 'cos it rhymes :)
lizmat is recovering from vacation and jetlag
20:06 petercommand left
FROGGS szzszsszs Perl sszzszszzs 20:06
20:06 mtj_ left
FROGGS sure it rhymes :P 20:06
masak m: class X::Test is Exception { method message { $.x } }; die X::Test.new
camelia rakudo-moar : OUTPUT«X::Test exception produced no message␤ in block <unit> at /tmp/SEE2J2wy7K:1␤␤»
tadzik :D
masak ^^ is a bit suboptimal
20:06 sunnavy_ left
tadzik 6 is "sześć" 20:06
so it even looks like it rhymes :P 20:07
FROGGS aye
n0tjack heh
masak if the message method fails for whatever reason, the exception "produced no message"
tadzik++ sergot++ # article 20:09
20:10 zakharyas left 20:11 geraud joined, diakopter___ left
masak m: class X::Test is Exception { method message { $.x } }; X::Test.new.message 20:11
camelia rakudo-moar : OUTPUT«Method 'x' not found for invocant of class 'X::Test'␤ in method message at /tmp/wg7Xpc6XLU:1␤ in block <unit> at /tmp/wg7Xpc6XLU:1␤␤»
AlexDaniel m: sub foo (--> Int, Str) { } 20:13
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/TAn1QzdmUS␤Type 'Int' is not declared. Did you mean 'int'?␤at /tmp/TAn1QzdmUS:1␤------> 3sub foo (--> Int7⏏5, Str) { }␤»
dalek kudo/curli: 13d37b8 | (Stefan Seifert)++ | src/core/CompUnit (3 files):
Add $.precompiled attribute to CompUnit
nine Ok, CompUnit is now complete
20:15 darutoko left
RabidGravy harr! 20:17
20:19 aindilis left, rurban joined
FROGGS nine++ 20:20
stmuk_ . o ( ten? ) 20:21
20:21 geraud left
masak stmuk_: unsurprisingly, you are not the first one to think of that one :P 20:23
20:23 geraud joined
AlexDaniel m: my \nine = 9; say nine++ 20:25
camelia rakudo-moar : OUTPUT«Cannot call postfix:<++>(Int); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool:U $a is rw)␤ (Bool:D $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)␤ (num $a is …»
stmuk_ m: my \nine = 0; say nice.succ
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/dir86_vnbp␤Undeclared routine:␤ nice used at line 1␤␤»
stmuk_ m: my \nine = 0; say nine.succ
camelia rakudo-moar : OUTPUT«1␤»
stmuk_ m: my \nine = 9; say nine.succ 20:26
camelia rakudo-moar : OUTPUT«10␤»
AlexDaniel stmuk_: actually, I expected nine++ to be 9. ++nine should be 10
stmuk_ m: say "nine".succ 20:27
camelia rakudo-moar : OUTPUT«ninf␤»
AlexDaniel o_o
dalek kudo/curli: a7b8dfd | (Stefan Seifert)++ | src/core/CompUnit/Repository/FileSystem.pm:
Fixup: expected CompUnit::Handle but got Bool
20:28
nine Type-annotations++ 20:29
20:30 dha left, sno left
RabidGravy m: enum F (:nine(9), :ten(10)); say nine.succ 20:31
camelia rakudo-moar : OUTPUT«10␤»
20:31 dha joined 20:32 domidumont left, MadcapJake joined, MadcapJake left
n0tjack m: enum O (:1st, :2nd, :3rd, :4th); say rd.succ; 20:32
camelia rakudo-moar : OUTPUT«4␤»
20:33 MadcapJake joined, MadcapJake left
AlexDaniel m: sub circumfix:<START END>(*@e) { }; START START 'hello' END; 20:35
camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/taF14JZEXw␤Unable to parse expression in circumfix:sym<START END>; couldn't find final $stopper ␤at /tmp/taF14JZEXw:1␤------> 3 END>(*@e) { }; START START 'hello' END;7⏏5<EOL>␤»
AlexDaniel is it meant to say “$stopper”?
FROGGS AlexDaniel: no 20:37
20:38 zengargoylew left
AlexDaniel :my $stub := %*LANG<MAIN> := nqp::getlex('$¢').unbalanced($stopper); 20:39
if that's the right one, I wonder how does it get through…
20:39 hankache left 20:40 diakopter___ joined
dalek kudo/nom: 8d1b7d4 | lizmat++ | / (6 files):
Remove placeholder files of the newio branch
20:41
masak m: enum F (:nine(10), :ten(9)); say nine.succ
camelia rakudo-moar : OUTPUT«11␤»
masak :P
lizmat m: say True.succ 20:42
camelia rakudo-moar : OUTPUT«True␤»
arnsholt .tell jnthn gist.github.com/arnsholt/26d4e5fed6062917c643 # Reproduces the hang issue for me every time. May of course be caused by NativeCall shenanigans though
yoleaux arnsholt: I'll pass your message to jnthn.
lizmat m: say False.succ
camelia rakudo-moar : OUTPUT«True␤»
lizmat m: say False.pred
camelia rakudo-moar : OUTPUT«False␤»
20:42 mtj_ joined
lizmat m: say True.pred 20:42
camelia rakudo-moar : OUTPUT«False␤»
AlexDaniel m: say True.pred
camelia rakudo-moar : OUTPUT«False␤»
lizmat
.oO( the joys of Bool being an Enum now )
20:43
20:43 petercommand joined
AlexDaniel m: say True++ 20:43
camelia rakudo-moar : OUTPUT«Cannot call postfix:<++>(Bool); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool:U $a is rw)␤ (Bool:D $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)␤ (num $a is…»
AlexDaniel m: say True + 1
camelia rakudo-moar : OUTPUT«2␤»
20:43 sunnavy joined
AlexDaniel m: say False + 1 20:43
camelia rakudo-moar : OUTPUT«1␤»
FROGGS that was working before 20:44
AlexDaniel m: say False ** False
camelia rakudo-moar : OUTPUT«1␤»
AlexDaniel m: sin(True) 20:45
camelia rakudo-moar : OUTPUT«WARNINGS:␤Useless use of "sin(True)" in expression "sin(True)" in sink context (line 1)␤»
lizmat FROGGS: you mean True++ ??
AlexDaniel m: sin(True).say
camelia rakudo-moar : OUTPUT«0.841470984807897␤»
FROGGS lizmat: no, infix:<+>
AlexDaniel m: say True ~ False 20:46
camelia rakudo-moar : OUTPUT«TrueFalse␤»
20:46 MadcapJake joined
AlexDaniel that's fun 20:46
20:46 MadcapJake left
jdv79 how does lines() handle line endings? 20:46
AlexDaniel m: say True[False]
camelia rakudo-moar : OUTPUT«True␤»
jdv79 and did that change recently?
20:48 MadcapJake joined, MadcapJake left
masak m: say "the rain in Spain stays mainly in the plain"[False] 20:50
camelia rakudo-moar : OUTPUT«the rain in Spain stays mainly in the plain␤»
masak m: say False[False[False]][False]
camelia rakudo-moar : OUTPUT«False␤»
20:50 MadcapJake_ joined
masak m: say [False ** False][False] 20:50
camelia rakudo-moar : OUTPUT«1␤»
masak m: say so [False ** False][False]
camelia rakudo-moar : OUTPUT«True␤»
jnthn jdv79: chomps them off by default, and yes, it used to fail to chomp if the line ending was anything but \n or \r\n, and that got fixed 20:51
yoleaux 20:42Z <arnsholt> jnthn: gist.github.com/arnsholt/26d4e5fed6062917c643 # Reproduces the hang issue for me every time. May of course be caused by NativeCall shenanigans though
AlexDaniel m: say False + True * i # notes for perl 6 obfuscation contest
camelia rakudo-moar : OUTPUT«0+1i␤»
jdv79 just wondering what broke my irc bot... it seems to be delayed in receving somehow ^H. 20:52
almost as if the next line pushes the stalled line through
jnthn jdv79: Do you set a separator on the socket?
jdv79 it used to workk ^H
not explicitly 20:53
jnthn OK, then it should be using the default (which is ["\n", "\r\n"])
20:54 diakopter___ left
DrForr What's the name of the perl6 info site? (not perl6info.com, I checked) 20:55
jdv79 maybe its something else then
DrForr (and not perl6.org...)
stmuk_ do you mean perl6intro.com/?
DrForr intro, thanks.
20:56 sno joined 20:57 kaare_ left
jdv79 no, its lines somehow:( 20:57
lizmat looks 20:58
jdv79: which currently means its .get, no? 20:59
jdv79 i don't know the io stuff at all
lizmat jdv79: could you check whether switching off chomping makes a difference ?
jdv79 doesn't seem to help. wish i knew a quick way to golf this. 21:02
inserting a map to add a nl char gets the lines through on time but with extra blank lines...
21:04 MadcapJake_ is now known as MadcapJake
lizmat jdv79: IO::Handle.lines currently returns a Seq which has a pull-one that only does a .get 21:08
jdv79 hold on i golfed it if you want to play
lizmat jdv79: .get only basically does an nqp::readlinechompfh($!PIO)
so I don't see much possibility of it being a HLL issue :-( 21:09
jdv79 huh
arnsholt jnthn: Oh, and a possibly relevant datapoint on my repro gist is that it only triggers the bug with the loop summing numbers in there. If there's no summing, it works fine. Which would agree with your thought that it's GC-related
jnthn It could be something deeper down issuing a bogus extra read, but I'm not sure why that'd happen 21:11
jdv79 gist.github.com/anonymous/bccff00141467fad0acb
lizmat jdv79: why the map first before doing .lines ??? 21:12
jdv79 if your run that note C GOT sees the last line of the join command "something about end of /NAMES" whereas GOT does not
juts to see it
if you remove te map it'll just hide the last line waiting
wireshark confirms the last line comes over the socket - its being blocked somewhere 21:13
lizmat but chars-supply does not provide lines, it provides chunks of chars, afaik
jdv79 and a new line coming in pushes it through but itself gets stuck in that limbo situ:(
is that the wrong way to do a line based protocol? it worked on a rakudo about a month old or so 21:14
jnthn Ah, so it's Supply.lines?
jnthn notes that Supply.lines fails tests on Windows
Didn't manage to figure those out yet despite a couple of attempts :/
21:14 zakharyas joined
lizmat starts looking there 21:14
jdv79 good times
lizmat jdv79: hmm... good be a result of the CRLF -> 1 synthetic changes 21:17
s/good/could
jdv79 the responses are crlf ended 21:18
jnthn Ah
Then quite possibly
lizmat yeah, and there was extra code to handle the case where CR was the last codepoint of a chunk 21:20
jnthn Did it use ord?
*does
lizmat not anymore
jnthn :)
DrForr Gah, choosing a headshot for OSCON. Makes me feel like I'm on a reality TV show... 21:21
sno moritz: around? 21:22
lizmat jnthn: sanity check, if a chunk would end in a CR, and the next chunk starts with LF, then concatting them *would* create the synthetic, right ? 21:24
jnthn lizmat: Correct
lizmat: Meaning that the index that was \r before will be the \r\n synthetic after
m: say "\r" ~ "\n" .chars
camelia rakudo-moar : OUTPUT«
jnthn oops :) 21:25
m: say ("\r" ~ "\n") .chars
camelia rakudo-moar : OUTPUT«1␤»
lizmat ok, so I guess I *would* need to introduce the check for CR
jnthn
.oO( it's not *that* low prec! )
lizmat because that's what's blocking it
jnthn aha
lizmat jdv79: I think I found the logic error 21:26
21:26 diana_olhovik joined
jdv79 incredible 21:26
21:26 brrt joined
jdv79 may have taken me a day to fail and then ask. this is much better:) 21:27
lizmat :-)
jdv79: if you could write a test-case for this, that would be brill :-)
sno .tell moritz I didn't prove whether my fix don't break the intended new feature - will prove tomorrow and ping on success / update on error 21:28
yoleaux sno: I'll pass your message to moritz.
jdv79 i could probably manage that eventually 21:29
21:30 frobisher joined 21:31 dha left, frobisher is now known as dha 21:32 tudorconstantin left 21:33 diana_olhovik left 21:35 tokuhiro_ joined
lizmat jdv79: I'm running test program with patches now, could you take care of some traffic there ? 21:38
21:39 tokuhiro_ left
jdv79 what sort of traffic? 21:40
lizmat ah, found the channel... :)
alas, no success yet :-(
jdv79 i'm still poking around the supply tests. ok.
so its not the split cr lf? 21:41
dha I guess I'll ask this again, as it continues to bug me...
21:42 brrt left
dha 5to6-nutshell refers to "item" variables. I have not found that term anywhere else, and it uses it where a Perl 5 programmer would expect to find the word "scalar" instead. 21:42
Is there a reason for this?
Hotkeys strange because we also call them scalars in p6 don't we?
21:43 AlexDaniel left
pink_mist Hotkeys: but it's not a keyword in p6, is it? 21:43
dha That's what I thought. As I say, the term does not appear to be anywhere else in the docs.
jdv79 isn't it items vs list context?
*item
dha pink_mist - in this context, it's just a word in the docs, rather than a keyword. 21:44
pink_mist dha: yes, but in perl5 it's a keyword, and it's used in a certain way
21:45 TEttinger joined
dha this is true. but it doesn't really address the issue at hand. And even in P5 the term "scalar variable" needn't have anything to do with the keyword "scalar" 21:45
For reference, it turns up here: doc.perl6.org/language/5to6-nutshell#%24_Scalar
21:46 colomon left
dha And in the following sections on arrays and hashes, it refers to "array" variables and "hash" variables. 21:46
So this seems confusing and possibly inconsistent. 21:47
And even more confusing being in a 5to6 document.
jnthn I tend to call $foo a scalar variable
jdv79 seems a but unsure of itself
dha As would I
jnthn We certainly talk about item *context* in Perl 6 21:48
lizmat jnthn: ok,I guess we're being bitten by the fact that ord doesn't tell us whether it is a synthetic CRLF or a bare CR :-(
jnthn lizmat: Right
lizmat: ord is usually a bad idea
pink_mist yeah, I'd replace the `"item"` with just scalar in that section, dha
dha It might be one thing if this term was used anywhere else, but it isn't.
jnthn lizmat: nqp::eqat will do the right thing
lizmat: And not allocate, just like ord
21:48 Zoffix left
dha ok, I'll change it and put in a pull request. 21:48
jdv79 dha: design.perl6.org/S02.html#Sigils uses scalar so why not
dha *nod* 21:49
21:50 Zoffix joined
jdv79 that whole blurb confuses me 21:51
what does it even mean?! 21:52
no longer used for indexing...that is you will still use... what? 21:53
dha Hm. yeah, it probably should explain what "you will still use $x[1] and $x{"foo"}, but you use them on $x, not @x or %x." actually means.
21:53 sunnavy left
jdv79 its contradictory in a sense 21:53
21:53 petercommand left 21:54 mtj_ left
dha well, $x can contain an array. Which you can index. 21:54
pink_mist not for a perl5er imo ... it clearly tells someone who understand perl5 that doing $x[1] will no longer index @x
dalek kudo/nom: 97b93c3 | lizmat++ | src/core/Supply.pm:
Fix delayed line issue, found by jdv79++
dha m: my $x = [1, 2, 3, 4];say $x[1];
camelia rakudo-moar : OUTPUT«2␤»
lizmat jdv79: ^^^
jdv79 yes, then how is the "no lgoer used for indexing" part true?
dha pink_mist - yeah, but it's kind of unclear what it *does* do. 21:55
pink_mist dha: yeah, that could be further elucidated, it's true
masak maybe it's best to explain in terms of lack of sigil variance.
21:55 Sqirrel left
dha maybe change "no longer for array indexing and Hash indexing" to "no longer for indexing array and hash variables" 21:55
masak that is, `$x[$i]` indexes into `$x`, not `@x`
pink_mist you know, as a perl5er, that kindof makes me wonder what the point of @x and %x is if you can just $x = []... 21:57
I mean, you could that in perl5 too, but then it was clear it was a reference
I don't yet find the same clarity in p6
but I should really learn it better 21:58
timotimo @foo = 1234, 1234; and $foo = 1234, 1234; behave differently at the very least 22:00
dha timotimo - how so?
timotimo and $foo = hi => 1, goodbye => 2; vs @foo = hi => 1, goodbye => 2; vs %foo = hi => 1, goodbye => 2;
m: my @foo = 1234, 1234; say @foo.perl
camelia rakudo-moar : OUTPUT«[1234, 1234]␤»
timotimo m: my $foo = 1234, 1234; say $foo.perl
camelia rakudo-moar : OUTPUT«WARNINGS:␤Useless use of constant integer 1234 in sink context (line 1)␤1234␤»
masak pink_mist: you can, yes. but I still find that @ and % are much clearer and "nicer to look at".
jdv79 lizmat: what does that fix do? accept a bare \r instead of \r\n?
FROGGS nine: I think I got it
22:00 telex left
masak pink_mist: tastes vary. as for me, I find even in Perl 5 that people over-use arrayrefs and hashrefs compared to my style. 22:01
pink_mist masak: =)
lizmat jdv79: the fix makes sure that if a chunk ends in a CR
22:01 xfix left
timotimo my $foo = hi => 1, goodbye => 2; my @foo = hi => 1, goodbye => 2; my %foo = hi => 1, goodbye => 2; say "dollar: $foo; array: @foo[]; hash: %foo{}" 22:01
dha timotimo - ok, so you need different syntax to create the variables, but do they act differently once created?
timotimo m: my $foo = hi => 1, goodbye => 2; my @foo = hi => 1, goodbye => 2; my %foo = hi => 1, goodbye => 2; say "dollar: $foo; array: @foo[]; hash: %foo{}"
camelia rakudo-moar : OUTPUT«dollar: hi 1; array: hi 1 goodbye 2; hash: goodbye 2␤hi 1␤»
nine FROGGS: :)
lizmat it will wait for the next chunk to arrive (because it *can* be a part of a CRLF)
timotimo m: my $foo = hi => 1, goodbye => 2; my @foo = hi => 1, goodbye => 2; my %foo = hi => 1, goodbye => 2; say "dollar: $foo.perl; array: @foo.perl(); hash: %foo.perl()"
camelia rakudo-moar : OUTPUT«dollar: hi 1.perl; array: [:hi(1), :goodbye(2)]; hash: {:goodbye(2), :hi(1)}␤»
timotimo m: my $foo = hi => 1, goodbye => 2; my @foo = hi => 1, goodbye => 2; my %foo = hi => 1, goodbye => 2; say "dollar: $foo.perl(); array: @foo.perl(); hash: %foo.perl()"
camelia rakudo-moar : OUTPUT«dollar: :hi(1); array: [:hi(1), :goodbye(2)]; hash: {:goodbye(2), :hi(1)}␤»
lizmat in all other cases, it will pass on the line immediately 22:02
timotimo dha: it's about assignment, not just when creating with "my"
masak pink_mist: as someone said recently, @ and % are Perl's very core "Hungarian notation"; they're there to signal array (ish) and hash (ish). opting out of them means missing out.
22:02 telex joined
lizmat jdv79: hope that makes sense ? 22:02
pink_mist masak: good point =)
jdv79 oh so it was the original idea
masak pink_mist: in Perl 6, this is made more powerful, because you could still use % with (say) a userland "ordered hash"
lizmat yea, but now implemented correctly
jdv79 the idea does - the code i'm still looking into. tahnks.
lizmat jdv79: you're welcome 22:03
dha To be fair, the fact that you can put an array into a scalar doesn't bother me overmuch.
lizmat brb
jdv79 it nice when you want somethign that can be a Positional and/or an Associative thing 22:04
22:04 zakharyas left 22:06 skids left 22:07 petercommand joined
dalek kudo/curli: 20dc95d | (Stefan Seifert)++ | src/core/ (3 files):
Throw typed exceptions when unable to load a module
22:09
FROGGS spectests 22:10
nine FROGGS: not much left to implement from jnthn++'s gist once you push your change :)
22:10 Zoffix left 22:11 pmurias joined
dalek c: a8a952a | (David H. Adler)++ | doc/Language/5to6-nutshell.pod:
Changed "item" to "scalar" in section on scalar sigils
22:13
c: 6b614df | (Zoffix Znet)++ | doc/Language/5to6-nutshell.pod:
Merge pull request #210 from dha/master

Changed "item" to "scalar" in section on scalar sigils
22:13 sunnavy joined
dha thanks. 22:13
22:15 n0tjack left, colomon joined, pmurias left 22:16 pmurias_ joined
dalek kudo-star-daily: cc49308 | coke++ | log/ (2 files):
today (automated commit)
22:16
p: c77898e | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Implement type parameterization.
22:17
jnthn 'night, #perl6 22:18
timotimo gnite jnthn :)
grondilu m: say my unit32 $ = 2**32 - 1 22:19
camelia rakudo-moar : OUTPUT«5===SORRY!5===␤Type 'unit32' is not declared. Did you mean any of these?␤ uint32␤ uint2␤ int32␤␤at /tmp/zg8AKTZOoo:1␤------> 3say my unit327⏏5 $ = 2**32 - 1␤Malformed my␤at /tmp/zg8AKTZOoo:1␤------> 3say my7⏏5 unit32 $…»
grondilu m: say my uint32 $ = 2**32 - 1
camelia rakudo-moar : OUTPUT«4294967295␤»
22:20 pmurias_ left
grondilu m: my uint32 $n = 2**32 - 1; say $n 22:20
camelia rakudo-moar : OUTPUT«-1␤»
22:21 pmurias joined, muraiki left 22:22 pmurias left, mtj_ joined 22:23 dwarring joined
dha Does this read any better to people? "That is, you can still use $x[1] and $x{"foo"}, but it will act on $x, with no effect on the similarly named @x or %x." 22:23
dalek kudo/curli: a9b1b7a | FROGGS++ | / (3 files):
align CURI.install to new API
22:25
22:26 pmurias joined
timotimo dha: i'd add another short sentence to show @a[1] and/or %x{"foo"} 22:26
FROGGS also about CURI.install: github.com/tadzik/panda/commit/67d...e7972b06ef
ugexe should the %scripts really get -j wrappers if there is no perl6-j? 22:27
dha "That is, you can still use $x[1] and $x{"foo"}, but it will act on $x, with no effect on the similarly named @x or %x. Those would now be accessed wit
h @x[1] and %x{"foo"}."
like that?
timotimo yeah 22:28
FROGGS ugexe: dunno
timotimo hm, maybe i'd say "on a similarly named @x or %x"
FROGGS ugexe: I just made it so because it was the easiest
timotimo instead of "the similarly named ..."
nine Maybe the user installs a perl6-j later on
dha I have no problem with that.
22:29 Zoffix joined
ugexe if the user installs a separate perl6-j via rakudobrew then it just messes that up 22:29
22:29 geraud left
FROGGS ugexe: we also have to consider apt and friends 22:29
so maybe a perl6-j gets just unpacked later on, or enabled in some way 22:30
but I'd be also happy with only installing for existing compilers
nine The generated wrapper is very independent of the rakudo or even Perl 6 version.
FROGGS s/installing/creating wrappers/
gnight 22:31
nine Good night!
Zoffix Is there something special require ::("$m"); where $m is a module name? I'm trying to debug this code and on another box this module is installed with panda and require succeeds, but now I just -Ipath/to/repo/checkout/lib my script and require fails: github.com/tony-o/perl6-pluggable/...le.pm6#L16 22:32
m: require ::("foobar")
camelia rakudo-moar : OUTPUT«Could not find foobar in any of:␤ file#/home/camelia/.perl6/2015.11-51-g97b93c3/lib␤ inst#/home/camelia/.perl6/2015.11-51-g97b93c3␤ file#/home/camelia/rakudo-m-inst-1/share/perl6/lib␤ file#/home/camelia/rakudo-m-inst-1/share/perl6/vendor/lib␤ file…»
Zoffix And strangely, the CATCH doesn't catch any errors... It just fails to make the .push on the next line
Oh wait. I'm catching in the wrong place
22:32 geraud joined
dha ok. added that bit to the scalar sigil doc. 22:33
Zoffix dha, do you have perms to make commits?
dha I do. but after the usage statement hubbub, I've been a bit gunshy about committing directly. :-) 22:34
timotimo i'd actually be annoyed to have binaries on my system that do nothing but say "not installed"
Zoffix dha, what usage statement hubbub? :)
Never mind my issue. Turns out I'm missing unrelated modules. 22:35
dha That time I talked about adding P5 style usage statements and a bunch of people said "yeah, do that" and then after a week of actually doing so a different bunch of people said "That's a terrible ides. stop doing that." :-)
Zoffix :P
timotimo p5 style?
ugexe say i have perl6-j and perl6-m as separate installations and a module FOO with a bin script. if i install FOO to perl6-j it generates the wrappers perl6-j and perl6-m and puts them into whatever /bin directory. now if i install FOO to moar it again installs perl6-j and perl6-m, but now the perl6-j for the moar install is shadowing the jvm wrapper 22:36
22:36 diakopter___ joined
dha Feel free to look at my efforts. When I was urged to stop doing it, It was also suggested that I not bother backing it all out at this time. 22:36
For instance, you can see them in doc/Type/Int.pod (and a bunch of other documents as well). 22:37
E. g. in the P5 perlfunc you get stuff like this: split /PATTERN/,EXPR,LIMIT 22:40
With various suggestions, I turned that into "split( DELIMITER, STRING [,LIMIT] [,:v] [,:k] [,:kv] [,:p] [,:skip-empty] )" for P6. 22:41
DrForr 2 proposals sent for OSCON, doing the 3rd tomorrow.
22:41 n0tjack joined
dha The idea was that these would be something people could look at that would make the actual use of functions clearer than just having the signatures in there. 22:41
ugexe its not a matter of the wrapper being right. its how do you have 2 binscript-j (one for a moar install, one for a jvm install) available in path without the useless one shadowing the other 22:42
[Coke] dha: I don't recall saying it was a terrible idea, just that I didn't think it was worth it. If you still feel strongly about it, go ahead.
dha This was, alternately, well received and not well received
[Coke] - sorry, I was being a little hyperbolic. :-)
I'm a lot more relaxed about it now. :-) 22:43
[Coke] I still don't think it helps, but I am willing to believe it'll help someone.
dha Actually, the suggestion that, instead of the usage statements, we should just put in sufficient examples is not a bad idea.
I think one of the problems with what I was doing is that, in trying to be consistent by giving everything a usage statement, I was putting in a lot of usage statements that weren't all that helpful. 22:44
timotimo dha: oh, i remember the usage thing!
the beginning was interesting, but it was also kinda weird for someone like me who never perl5'd before
[Coke] I would concur that targetted usage statements would be more useful. 22:45
dha timotimo - yeah, it's kind of a hard line to walk. It actually grew out of my asking around about what people thought made the P5 documentation so successful, and that was the one thing that really stood out.
[Coke] (concur) been watching too much Voyager this week.
22:45 kjs_ left
dha [Coke] - what do you mean by "targeted usage statements"? 22:46
Do you mean putting in usage statements selectively rather than consistently, i. e. for things that may not be immediately clear? 22:47
22:47 colomon left
[Coke] yes. 22:48
grondilu m: say +^my uint32 $ = 2**32 - 1 22:49
camelia rakudo-moar : OUTPUT«-4294967296␤»
grondilu m: my uint32 $n = 2**32 - 1; say $n == +^+^$n
camelia rakudo-moar : OUTPUT«False␤»
dha I am wholly not opposed to that. I think I was sticking too hard to the idea of consistency. 22:50
dalek c: 37d3c3f | (David H. Adler)++ | doc/Language/5to6-nutshell.pod:
Rewrote section on scalar sigil for clarity
c: 3dddbad | RabidGravy++ | doc/Language/5to6-nutshell.pod:
Merge pull request #211 from dha/master

Rewrote section on scalar sigil for clarity
dha Zoffix - back to your original question about my committing ability. Should I be just committing these kinds of minor tweaks? 22:51
Instead of, you know, changing the entire structure of the docs... :-)
Zoffix dha, sure. 22:55
dha Ok.
Zoffix dha, not that I'm in any way an authoritative source on what and who should be committing.
But I'd commit those small changes :) If there's a problem it's very easy to undo them. 22:56
dha Right. But since we don't really *have* an authoritative source...
Zoffix storms the vacant palace and forms a government 22:57
dha, Ye shall make committeth!
22:57 timbunce left
dha Has a moistened bint lobbed a scimitar at you? :-) 22:57
And, yessir! 22:58
22:59 AlexDaniel joined
dwarring m: class MyClass {}; role MyRole is MyClass {}; True does MyRole 23:01
camelia rakudo-moar : OUTPUT«Base type has already been set for Bool+{MyRole}␤ in any set_base_type at gen/moar/m-Metamodel.nqp:877␤ in any add_parent at gen/moar/m-Metamodel.nqp:3320␤ in any apply at gen/moar/m-Metamodel.nqp:2724␤ in any compose at gen/moar/m-Metamodel.nqp:3362…»
dwarring howdy perl6 23:02
^^ that's started happening in the last couple of days
lizmat dwarring: probably related to the fact that Bool is now an Enum (it wasn't before)
dwarring m: class MyClass {}; role MyRole is MyClass {}; 42 does MyRole 23:03
camelia ( no output )
timotimo dwarring: can you actually is a class when you're a role?
dwarring i was :-)
dha Just for the record, I'm still a bit concerned about the issue of scalar variables that contain non-scalar things in the 5to6 docs being potentially confusing. Not sure what to do about it, thougg. 23:04
Zoffix 1) Wait for someone to get confused; 2) Ask them to propose a patch to the docs :)
dha Yeah, I guess that's the way to go. 23:05
timotimo 3) repeat 23:06
dwarring timotimo: I'm only doing that in one spot
can avoid it
Zoffix Oh gee. Finally found the cause of my bug! took about 40 minutes:
m: use lib 'lib'; use lib 'lib'; use lib 'lib'; say @*INC.grep(* eq 'file#lib').elems
camelia rakudo-moar : OUTPUT«3␤»
Zoffix And I had use lib 'lib' in code as well as -Ilib to perl -_- 23:07
timotimo %)
Zoffix ^ that IMO a bug.
dwarring lizmat: that doesn't look valid?
Zoffix At least from the perspective of a Perl 5 coder. In P5 use lib's feature is exactly that it does not create dupes
dwarring lta, if nothing else 23:08
lizmat dwarring: confused now, what doesn't look valid ?
masak 'night, #perl6
hoelzro night masak
Zoffix night
Skarsnik 'night #perl6 x)
dwarring m: class MyClass {}; role MyRole is MyClass {}; True does MyRole 23:09
camelia rakudo-moar : OUTPUT«Base type has already been set for Bool+{MyRole}␤ in any set_base_type at gen/moar/m-Metamodel.nqp:877␤ in any add_parent at gen/moar/m-Metamodel.nqp:3320␤ in any apply at gen/moar/m-Metamodel.nqp:2724␤ in any compose at gen/moar/m-Metamodel.nqp:3362…»
dwarring now that Bool is an Enum
i might just refactor that bit of code 23:10
dha wonders if some info on how assignments are now done should be added to 5to6-nutshell, possibly in the scalar/array/hash entries under Sigils.
lizmat dwarring: that looks wise to me 23:11
Zoffix dwarring, I think maybe that roles can't "is" classes. Looking at the docs: non-multi methods cause compile conflicts and classes have some predefined methods: doc.perl6.org/language/objects#Role_Application
23:12 vendethiel left
Zoffix tries to recall the MOP-fu to inspect what method class/role provide 23:12
m: class Foo { method bar {} }; role Bar is Foo {}; say Foo.^methods, Bar.^methods 23:13
camelia rakudo-moar : OUTPUT«(bar)()␤»
Zoffix ¯\_(ツ)_/¯
lizmat m: for ^100000 { my $a = 42; my $b = 666 }; say now - INIT now
camelia rakudo-moar : OUTPUT«0.0573191␤»
lizmat m: for ^100000 { my ($a,$b) = (42,666) }; say now - INIT now
camelia rakudo-moar : OUTPUT«2.0419858␤»
Zoffix 0.o
lizmat m: say 2.04 / 0.06
camelia rakudo-moar : OUTPUT«34␤»
dwarring refactors
thanks all
lizmat dwarring: yw 23:14
23:14 RabidGravy left 23:16 colomon joined
Zoffix Created a ticket for the use lib stuff: rt.perl.org/Ticket/Display.html?id=126718 23:17
Zoffix spots a typo. 23:18
lizmat m: for ^100000 { my $a = (42,66)[0]; my $b = (42,666)[1] }; say now - INIT now
camelia rakudo-moar : OUTPUT«0.3442081␤»
Zoffix Dang no edit button. I hate RT :P
lizmat m: say 2.04 / 0.34
camelia rakudo-moar : OUTPUT«6␤»
Skarsnik Zoffix, yes it's annoying x) 23:19
Zoffix m: for ^100000 { my ( $a, $b ); }; say now - INIT now
camelia rakudo-moar : OUTPUT«0.19931335␤»
Zoffix m: for ^100000 { my $a; my $b; }; say now - INIT now
camelia rakudo-moar : OUTPUT«0.04149988␤»
Zoffix m: say 0.19931335 / 0.04149988
camelia rakudo-moar : OUTPUT«4.80274521␤»
lizmat Zoffix: yeah, eliminating all those cases from code now
dha In 5to6-nutshell, the doc for the string/list repeat operator uses the phrases "In scalar content" and "In list content". I'm guessing those should actually read "context"? 23:20
pink_mist yep 23:21
timotimo ugh, i'm procrastinating writing that weekly blog post
Zoffix dha, yes
23:21 sprocket left
dha *nod* fixing. 23:21
Zoffix threateningly shows timotimo a whip
You still haven't told me what sort of "link-to-modules maker" you wanted 23:22
dalek c: 7127f00 | (David H. Adler)++ | doc/Language/5to6-nutshell.pod:
Changed instances of "content" to "context" in string/list repeat op doc
dha Ugh. a search for "..." pops up "Routine: ...", but when you try to go to the relevant doc, you get a 404 23:25
Zoffix There's a whole bunch of those (there should be an issue)
.+ is one of them, IIRC 23:26
dha bleh.
23:26 dha left
timotimo Zoffix: did you read my last weekly blog post? 23:26
Zoffix timotimo, I skimmed through it 23:28
Why? :) 23:29
23:29 kid51 joined 23:30 pmurias left
Zoffix timotimo, "I’ve got two [edit: three] little tasks that outsiders could reasonably easily pick up if they want to get into Perl 6 development" 23:30
Curious what those are :)
Or are they done already? :)
dalek kudo/nom: f37ba17 | lizmat++ | src/core/ (5 files):
Prevent use of my (...) where possible
23:32
timotimo Zoffix: those three tasks are described directly below that ...
Zoffix: also, ideally, the whatever thing would let me specify a start and end date (defaulting to today and today - 7 days) and list new things in the ecosystem inside a contentseditable div or something with properly working links 23:33
so i can just copy-paste the stuff over into the wordpress wysiwyg editor and write the descriptions there
Zoffix That stuff looks hard. 23:34
I mean the "lowhanging fruit" stuff
timotimo, k, I'll take a look into that.
23:35 Oatmeal left
timotimo neato :) 23:36
oh, is that how you meant that
23:37 tokuhiro_ joined
Zoffix timotimo, how I meant what? 23:37
jdv79 oh, did parse stage times go down? 23:38
diakopter___ with a patch currently pending in a branch 23:39
jdv79 i just got 63s. think it was up tp 75s or so a couple monts ago
diakopter___ in that branch it's 46s for me XD 23:40
23:40 skids joined
timotimo a couple months ago?!? 23:40
;)
23:40 havenn joined
dalek ast: b727ecc | jdv79++ | S17-supply/lines.t:
Add specific test for chunked CRLF. See 97b93c3.
23:40
diakopter___ also, spectest times reduced from 256 seconds to 227 seconds (TEST_JOBS=9 on 8 cores)
jdv79 nice 23:41
SmokeMachine_ if I augment the Any type, isn't it reflected on every Any child?
23:41 tokuhiro_ left
timotimo Zoffix: i welcome you to suggest another "low hanging fruit" thingie for the next post! 23:43
Zoffix timotimo, find the "date when added to ecosystem" for all 460 modules in github.com/perl6/ecosystem/blob/ma.../META.list 23:44
timotimo, much preferably with some automated script :)
SmokeMachine_ this is my new solution for that Optional Type discuss... but when I augment the Any type, it's not being reflected on the Int type... www.irccloud.com/pastebin/NwcmKKWA/ 23:45
Zoffix I'm guessing that would involve taking the part of URL after the author and rewinding git history back to see when that URL starts showing up or something
23:46 Skarsnik left, havenn left, havenwood left 23:47 havenwood joined
lizmat SmokeMachine_: afaik, that's a long standing bug 23:47
in rakudo, children know about their parents, but parents don't know about their children
unless that change like in the past 10 days or so
*changed
timotimo i don't think it changed, no
23:47 Oatmeal joined 23:48 grondilu left 23:49 ribasushi left
raiph SmokeMachine_: rt.perl.org/Ticket/Display.html?id=116613 23:52
note especially irclog.perlgeek.de/perl6/2015-10-15#i_11379856 and jnthn's response
dalek kudo/nom: 6bd4006 | lizmat++ | src/core/Str.pm:
Make Str.lines 1.5x - 2x as fast

Thanks to further simplification now that CRLF is a single (synthetic) codepoint
23:56