»ö« 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.
ugexe parallel precompilation of provides funs... time diff: 0m43.068s -> 0m25.204s 00:00
00:10 nys left 00:13 brrt joined 00:16 brrt left
ugexe 3m51.945s -> 2m31.200s applying to both build + test 00:19
00:19 inokenty left 00:25 atroxaper joined 00:29 atroxaper left
timotimo not bad 00:34
00:38 dayangkun left
[Coke] I believe there is an outstanding grant that pmichaud is working on. 00:47
I'm not sure news.perlfoundation.org/2010/07/hag...lists.html was closed out. 00:49
00:57 BenGoldberg joined 01:14 slavik joined 01:19 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 01:34 Ben_Goldberg joined 01:37 BenGoldberg left 01:39 Ben_Goldberg left 01:40 gfldex left 01:46 BenGoldberg joined, ilbot3 joined
dalek kudo-star-daily: a451650 | coke++ | log/ (9 files):
today (automated commit)
01:56
kudo-star-daily: 568411e | coke++ | log/ (8 files):
today (automated commit)
rl6-roast-data: d7ac38a | coke++ | / (9 files):
today (automated commit)
rl6-roast-data: be7bdea | coke++ | / (9 files):
today (automated commit)
timotimo doc.perl6.org/routine/pack has a broken link: "unpack" 02:01
should lead to /routine/unpack rather than /method unpack
ah, flussence already opened an issue for that a few hours ago 02:02
02:05 mr-foobar left, noganex joined, mr-foobar joined 02:08 noganex_ left 02:13 atroxaper joined 02:18 atroxaper left 02:22 testtest joined 02:37 yqt left 02:50 laouji joined 02:53 xtreak joined 02:56 xtreak left 03:09 testtest left 03:19 aborazmeh joined, aborazmeh left, aborazmeh joined 03:23 cibs left 03:48 dayangkun joined, khw left 03:53 telex left 03:54 telex joined 03:57 atroxaper joined 04:09 szabgab joined
szabgab hi 04:09
perl6maven.com/web-development-using-perl6
If you know about any other site that runs on Perl 6, (or is generated by Perl 6 code), please let me know. 04:10
a pull request to this page might work best: github.com/szabgab/perl6maven.com/...-perl6.txt 04:16
04:16 szabgab left 04:39 colomon joined, AlexDaniel left 04:43 aborazmeh left 04:49 BenGoldberg left 04:56 raiph left 05:03 SmokeMachine joined, Mhoram joined 05:05 Mhoram left, isacloud joined 05:08 Mhoram joined 05:18 konsolebox joined 05:21 ggherdov joined 05:23 Mhoram left 05:24 Mhoram joined, atroxaper left 05:29 atroxaper joined 05:35 isacloud left, dj_goku_ left, gfldex joined 05:36 ggherdov left 05:39 chansen_ joined 05:42 dj_goku joined 05:46 Spot__ joined 05:52 isacloud joined 05:54 skids left 05:57 ggherdov joined 06:00 cibs joined 06:06 jack_rabbit joined 06:09 kaare_ joined 06:12 sisar joined 06:14 sisar left 06:17 atroxaper left 06:18 atroxaper joined 06:21 geekosaur left 06:22 geekosaur joined 06:24 yeahnoob joined
masak morning, #perl6 06:24
lizmat masak o/
06:26 pnu joined 06:27 FROGGS joined 06:28 Mhoram left 06:29 Mhoram joined
lizmat just wondering: should "use fatal" not fatalize worries as well ? 06:37
masak is a worry a kind of warning? 06:39
nwc10 use paranoia? :-) 06:40
06:41 mr-foobar left
lizmat m: my $a; say \$a # an uncatchable worry 06:43
camelia rakudo-moar 4b5e19: OUTPUT«Potential difficulties:␤ To pass an array, hash or sub to a function in Perl 6, just pass it as is.␤ For other uses of Perl 5's ref operator consider binding with ::= instead.␤ Parenthesize as \(...) if you intended a capture of a single var…»
06:45 cognominal joined
lizmat m: no worries; my $a; say \$a 06:46
camelia rakudo-moar 4b5e19: OUTPUT«\(Any)␤»
lizmat maybe "use fatal" should turn a worry into a sorry 06:52
06:52 [Sno] left 06:54 Mhoram left 06:55 Mhoram joined 06:59 zakharyas joined
dalek kudo/nom: fec1fa9 | lizmat++ | src/Perl6/Grammar.nqp:
Turn worries into sorries when use fatal
07:01
07:01 domidumont joined 07:02 cognominal left 07:05 FROGGS left 07:06 domidumont left, Mhoram left 07:07 Mhoram joined, domidumont joined, mr-foobar joined 07:14 amurf left, amurf joined 07:16 tinyblak_ joined 07:18 darutoko joined
masak .oO( turn furries into slurries ) 07:18
07:19 amurf left 07:20 rindolf joined, tinyblak left 07:22 llfourn joined, FROGGS joined
lizmat .o( ... gathered together in a cave and grooving with a pict ) 07:22
07:24 laouji_ joined 07:27 laouji left
masak m: say 3 ^^ 4 07:28
camelia rakudo-moar fec1fa: OUTPUT«Nil␤»
07:28 abraxxa joined
masak does anyone actually recall using ^^ in their Perl 6 code? 07:29
dalek kudo/nom: 030e675 | lizmat++ | src/core/CallFrame.pm:
Give CallFrame a gist method
ast: 24f0eaf | lizmat++ | S06-advanced/callframe.t:
Adapt tests to new CallFrame.gist method
07:30
lizmat masak: can't say that I do
07:31 pnu left, Spot__ left, SmokeMachine left 07:32 ggherdov left 07:48 SmokeMachine joined 07:53 Guest59246 is now known as cdc, espadrine_ joined 07:54 Spot__ joined 07:55 virtualsue joined 07:57 clkao joined 07:58 Spot__ left 08:03 laouji_ left 08:04 pnu joined 08:05 sven_123 joined, sven_123 left
dalek kudo/nom: ef4de62 | lizmat++ | src/core/Backtrace.pm:
Don't show <unit-outer> entries

This was stopped in "normal" backtraces already, but not if coming from an EVAL.
08:06
08:06 dakkar joined 08:07 dakkar left 08:08 dakkar joined 08:11 [Sno] joined 08:12 Hor|zon joined
lizmat good night, #perl6! 08:15
08:15 RabidGravy joined
nwc10 sleep well. 08:15
08:17 Hor|zon left 08:18 Hor|zon joined
jnthn Hm, "use fatal" turning compile-time warnings into compile-time errors is a curious extra feature to its existing role of turning runtime failures into runtime exceptions... 08:18
08:19 virtualsue left
jnthn I'm not sure I'd expect code that worried to suddenly fail to compile 'cus I moved it into a try block. 08:19
So +1 to the feature (compiler warnings as errors), but I think it needs to be given another name.
08:21 ggherdov joined
moritz "use tight;" 08:24
ShimmerFairy use Werror :P 08:25
08:27 TEttinger left 08:33 espadrine_ left, brrt joined
mathw use dont-ignore-the-warnings-dammit 08:42
llfourn m: %?LANG.say 08:47
camelia rakudo-moar ef4de6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bcWis45qGX␤Variable '%?LANG' is not declared␤at /tmp/bcWis45qGX:1␤------> 3<BOL>7⏏5%?LANG.say␤»
llfourn I think that used to work...
08:48 andreoss joined 08:55 CQ joined
andreoss m: for @x -> @y [3] { @y.perl.say } 08:56
camelia rakudo-moar ef4de6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hnFb7BRUIf␤Variable '@x' is not declared␤at /tmp/hnFb7BRUIf:1␤------> 3for 7⏏5@x -> @y [3] { @y.perl.say }␤»
andreoss m: my @x = 1...10; for @x -> @y [3] { @y.perl.say }
camelia rakudo-moar ef4de6: OUTPUT«Type check failed in binding @y; expected 'Positional' but got 'Int'␤ in block <unit> at /tmp/XVTUDZNQFT:1␤␤»
jnthn m: my @x = [3],[3],[2]; for @x -> @y [3] { @y.perl.say } 08:57
camelia rakudo-moar ef4de6: OUTPUT«[3]<>␤[3]<>␤Constraint type check failed for parameter '<anon>' in sub-signature of parameter @y␤ in block <unit> at /tmp/P4DvFqAFGS:1␤␤»
jnthn [...] is a positional unpack
andreoss m: my @x = ^10;for @x -> @y { @y.perl.say } 09:03
camelia rakudo-moar ef4de6: OUTPUT«Type check failed in binding @y; expected 'Positional' but got 'Int'␤ in block <unit> at /tmp/xOGd0ON5YA:1␤␤»
FROGGS m: my @x = ^10;for @x -> *@y { @y.perl.say } 09:05
camelia rakudo-moar ef4de6: OUTPUT«[0]<>␤[1]<>␤[2]<>␤[3]<>␤[4]<>␤[5]<>␤[6]<>␤[7]<>␤[8]<>␤[9]<>␤»
09:06 andreoss left, andreoss joined
andreoss can i loop through elements taking N of them without .rotor()? 09:07
m: for ^12 -> $,$,$ { $_.perl.say } 09:08
camelia rakudo-moar ef4de6: OUTPUT«Any␤Any␤Any␤Any␤»
arnsholt That's for @x -> $a, $b, $c {} IIRC
jnthn Yeah, that's how to do it. Provided you know how many you'll have 09:09
If not, then rotor
andreoss i want them in array
jnthn Then rotor
andreoss @x -> @y[3] gives NYI error? So it will there in the future? 09:11
jnthn Yes, but it will expect you to be iterating over arrays that are already 3 in length
It won't do anything so magical as give you 3 at a time.
09:12 Ven joined
llfourn m: my @x = ^9; while my $y = @x.munch(3) { say $y } 09:15
camelia rakudo-moar ef4de6: OUTPUT«0 1 2 3 4 5 6 7 8␤»
llfourn I think that should work but doesn't
09:15 bjz joined
llfourn m: my @x = ^9;say @x; while my $y = @x.munch(3) { say $y } 09:15
camelia rakudo-moar ef4de6: OUTPUT«0 1 2 3 4 5 6 7 8␤0 1 2␤3 4 5␤6 7 8␤»
llfourn but works if I put a say @x before it :S 09:16
jnthn I'm not sure whether munch was intended to be public API, or whether it'll survive GLR, fwiw.
09:17 inokenty joined
andreoss i want them in array 09:22
sorry 09:23
09:27 espadrine_ joined
andreoss m: ([X]^3,^3,^3).perl 09:29
camelia rakudo-moar ef4de6: OUTPUT«Method 'gimme' not found for invocant of class 'Any'␤ in block <unit> at /tmp/rO3R98aEbj:1␤␤»
llfourn would be nice to have something like: php.net/manual/en/function.array-chunk.php 09:30
09:31 TEttinger joined
andreoss doesn't it do the same .rotor() does? 09:32
09:36 Ven left
andreoss m: my \N = 2; ([X] ^N,^N,^N).map(-> $x,$y,$z { ^N X»+» [+] ($y,$z,$x) »*» N «**« ((^N X»+» 1))}).rotor(N*N).map(*.fmt: "%2d").join("\n").say; 09:37
camelia rakudo-moar ef4de6: OUTPUT« 0 1 4 5␤ 2 3 6 7␤ 2 3 6 7␤ 4 5 8 9␤»
ShimmerFairy m: say ([X] ^3,^3,^3).perl 09:41
camelia rakudo-moar ef4de6: OUTPUT«(0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 2, 0, 0, 2, 1, 0, 2, 2, 1, 0, 0, 1, 0, 1, 1, 0, 2, 1, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 0, 1, 2, 1, 1, 2, 2, 2, 0, 0, 2, 0, 1, 2, 0, 2, 2, 1, 0, 2, 1, 1, 2, 1, 2, 2, 2, 0, 2, 2, 1, 2, 2, 2)␤»
ShimmerFairy ^ forgot the space between the [X] and the first item in the list 09:42
09:45 yeahnoob left, andreoss left 09:46 andreoss joined 10:05 dayangkun left 10:10 TEttinger left 10:13 brrt left
andreoss m: say [X] ^2 xx 3 10:13
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
andreoss m: say [X] ^2, ^2, ^2 10:14
camelia rakudo-moar ef4de6: OUTPUT«0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1␤»
10:14 domidumont left
flussence notices the pod files p6doc installs serve a similar purpose to C header files, but lack that semantic linkage because there's no way in standalone Pod to set .WHY 10:15
andreoss m: say (^2 xx 3).reduce: ->$a, $b {$a X $b}
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
andreoss m: ($(^2) xx 3).reduce: -> @a, @b {@a X @b} 10:16
camelia ( no output )
andreoss m: say ($(^2) xx 3).reduce: -> @a, @b {@a X @b}
camelia rakudo-moar ef4de6: OUTPUT«0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1␤»
andreoss can't get if it's flattening too much or too little 10:20
10:38 Ven joined 10:39 xiaomiao left 10:43 xiaomiao joined 10:52 xiaomiao left, amurf joined
andreoss m: say (1,2; 1,2).cross 10:53
camelia rakudo-moar ef4de6: OUTPUT«Method 'cross' not found for invocant of class 'LoL'␤ in block <unit> at /tmp/_yv1kIOzmA:1␤␤»
10:56 TEttinger joined, xiaomiao joined, amurf left
andreoss what's .cross now? 11:00
jnthn wasn't aware there was a method form of the meta-op...
FROGGS m: say (1,2; 1,2).permutations # perhaps this? 11:02
camelia rakudo-moar ef4de6: OUTPUT«1 2 1 2 1 2 1 2␤»
11:02 xiaomiao left
jnthn Oh, maybe :) 11:02
11:03 xiaomiao joined, xiaomiao left, xiaomiao joined 11:04 M_o_C joined
andreoss m: (1,2 ; 3,4).permutations.perl.say 11:05
camelia rakudo-moar ef4de6: OUTPUT«(($(1, 2), $(3, 4)), ($(3, 4), $(1, 2)))␤»
andreoss m: (1,2 X 3,4).perl.say
camelia rakudo-moar ef4de6: OUTPUT«((1, 3), (1, 4), (2, 3), (2, 4))␤»
11:15 espadrine joined 11:18 espadrine_ left
andreoss m: my \N = 2; my \D = 3; ([X] ^N,^N,^N).rotor(D).map({^N X+[+] .rotate(1) »*» N «**« (^D X+1)}).rotor(N*N).map(*.fmt: "%{N}d").join("\n").say; 11:20
camelia rakudo-moar ef4de6: OUTPUT« 0 1 4 5␤ 2 3 6 7␤ 8 9 12 13␤10 11 14 15␤»
andreoss no futher golfing
11:34 larion joined 11:37 TEttinger left 11:50 virtualsue joined 11:52 M_o_C left 12:07 telex left 12:08 tinyblak_ left, telex joined 12:17 rindolf left 12:35 ][Sno][ joined 12:36 [Sno] left, gfldex left, gfldex joined 12:39 tinyblak joined 12:42 brrt joined 12:44 raiph joined 12:45 mkz joined 12:46 cschwenz joined 12:56 atroxaper left, larion left 12:57 larion joined
andreoss m: my $x = (1..10).join; $x ~~ tr/0..9/9..0/; 12:58
should it hang?
camelia rakudo-moar ef4de6: OUTPUT«(timeout)»
timotimo huh, does it fail to move forward? 13:00
moritz andreoss: it shouldn't hang 13:02
13:04 domidumont joined
andreoss m: $x.trans: /0..9/ => /₀..₉/ 13:05
camelia rakudo-moar ef4de6: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ₀ (must be quoted to match literally)␤at /tmp/_0dfpxTVZi:1␤------> 3$x.trans: /0..9/ => /7⏏5₀..₉/␤Unrecognized regex metacharacter . (must be quoted to match literally)␤at /tmp/_0dfp…»
FROGGS m: $x.trans: /0..9/ => '₀'..'₉'
camelia rakudo-moar ef4de6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PXbo0NeuOc␤Variable '$x' is not declared␤at /tmp/PXbo0NeuOc:1␤------> 3<BOL>7⏏5$x.trans: /0..9/ => '₀'..'₉'␤» 13:06
FROGGS m: my $x = (1..10).join; say $x.trans: /0..9/ => '₀'..'₉'
camelia rakudo-moar ef4de6: OUTPUT«12345678910␤»
13:06 cognominal joined
FROGGS m: my $x = (1..10).join; say $x.trans: 0..9 => '₀'..'₉' 13:06
camelia rakudo-moar ef4de6: OUTPUT«₁₂₃₄₅₆₇₈₉₁₀␤»
timotimo this is not about trying to build a range from 9 to 0 and it being an infinite list because going from 9 you never reach 0?
FROGGS m: my $x = (1..10).join; $x ~~ tr/0..9/9876543210/; 13:07
camelia ( no output )
FROGGS m: my $x = (1..10).join; say $x ~~ tr/0..9/9876543210/;
camelia rakudo-moar ef4de6: OUTPUT«StrDistance.new(before => "12345678910", after => "87654321089")␤»
FROGGS timotimo: I think you are right 13:08
andreoss why ₀ should by backslashed?
is it a meta-character of some sort?
*be
timotimo well, we just rely on one of the unicode properties to decide for us 13:09
jnthn .u ₀
yoleaux U+2080 SUBSCRIPT ZERO [No] (₀)
jnthn m: say '₀' ~~ /\w/
camelia rakudo-moar ef4de6: OUTPUT«Nil␤»
jnthn That's why
andreoss m: say (1..10).join.trans('0..9' => '⁰..⁹') 13:12
camelia rakudo-moar ef4de6: OUTPUT«ⁱ⁲⁳⁴⁵⁶⁷⁸⁹ⁱ⁰␤»
andreoss i? 13:13
jnthn m: say uniname(0x2080)
camelia rakudo-moar ef4de6: OUTPUT«SUBSCRIPT ZERO␤»
jnthn m: say uniname(0x2081)
camelia rakudo-moar ef4de6: OUTPUT«SUBSCRIPT ONE␤»
FROGGS m: say '2'.trans('0..9' => '⁰..⁹') 13:14
camelia rakudo-moar ef4de6: OUTPUT«⁲␤»
FROGGS m: say uniname('2'.trans('0..9' => '⁰..⁹'))
camelia rakudo-moar ef4de6: OUTPUT«<reserved>␤»
jnthn m: say ord(chr(0x2080).succ)
camelia rakudo-moar ef4de6: OUTPUT«8321␤»
FROGGS m: say ohh
camelia rakudo-moar ef4de6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qGXS8sbUX0␤Undeclared routine:␤ ohh used at line 1␤␤»
jnthn m: say ord(chr(0x2080).succ).base(16)
camelia rakudo-moar ef4de6: OUTPUT«2081␤»
jnthn Hm
FROGGS m: say ord(chr(0x2081).succ).base(16)
camelia rakudo-moar ef4de6: OUTPUT«2082␤»
FROGGS m: say uniname(0x2082) 13:15
camelia rakudo-moar ef4de6: OUTPUT«SUBSCRIPT TWO␤»
jnthn Beats me
FROGGS m: say ord('2'.trans('0..9' => '⁰..⁹'))
camelia rakudo-moar ef4de6: OUTPUT«8306␤»
FROGGS m: say ord('2'.trans('0..9' => '⁰..⁹')).base(16)
camelia rakudo-moar ef4de6: OUTPUT«2072␤»
FROGGS m: say (1..10).join.trans('0..9' => '⁰°°⁹') # :P 13:16
camelia rakudo-moar ef4de6: OUTPUT«°°⁹⁰°°⁹⁰°°⁰␤»
ShimmerFairy m: say "{$_.base(16)} '$_' ({$_.uniname})" for 0x2070..0x2074 13:17
camelia rakudo-moar ef4de6: OUTPUT«2070 '8304' (SUPERSCRIPT ZERO)␤2071 '8305' (SUPERSCRIPT LATIN SMALL LETTER I)␤2072 '8306' (<reserved>)␤2073 '8307' (<reserved>)␤2074 '8308' (SUPERSCRIPT FOUR)␤»
ShimmerFairy jnthn: looks like superscript 1 and 2 are elsewhere
jnthn oh, what...
ShimmerFairy m: say "¹".ord.base(16); say "²".ord.base(16)
camelia rakudo-moar ef4de6: OUTPUT«B9␤B2␤»
ShimmerFairy ^ In the land of extended ASCII, apparently.
FROGGS and printing on my keyboard... 13:18
jnthn ewww-nicode...
[Coke] celebrates the return of his main work laptop with a rakudo build.
timotimo yay 13:19
llfourn how to I export a sub via EXPORT rather than is export. When I return { exported_sub => sub { ... } } from EXPORT I get a symbol in the importer but to call it I have to do exported_sub.() 13:26
13:27 brrt left 13:28 JimmyZ_ joined
jnthn return { '&exported_sub' => sub { ... } } 13:33
sub foo() { } actually installs &foo in the symbol table 13:34
timotimo well, in the symbol table of the export sub, right?
jnthn Generally 13:36
llfourn jnthn: Works! thanks
jnthn We name mangle it for you on sub declarations and in "is export", but when you build your own export hash you have to take care of it yourself. 13:37
llfourn makes sense. I tried &exported_sub => sub { ... } w/o quotes but obv that didn't make sense 13:38
jnthn Indeed :) 13:40
llfourn I can't find much docs about sub EXPORT {}
moritz probably because there isn't much documentation for it :( 13:42
llfourn there is a short mention: design.perl6.org/S11.html
ill make a pull req for github.com/perl6/doc! 13:43
PerlJam llfourn++
jnthn llfourn++ 13:45
That's the most helpful response to missing docs :)
moritz llfourn: if you tell me your github username, I can give you access directly 13:46
llfourn LLFourn :)
13:46 brrt joined
moritz llfourn: invitation sent. Have the appropriate amount of fun! 13:46
llfourn moritz: Thanks will do 13:47
actually it is documented in 5to6: doc.perl6.org/language/5to6#Importi...m_a_module
but I never found that unitl cloining and grepping
moritz definitively shouldn't be the only place
jnthn If you want some small import examples, feel free to nab some from jnthn.net/papers/2015-fosdem-static-dynamic.pdf 13:48
timotimo there's also the ADT module that also uses EXPORT
jnthn That may not be a small example ;) 13:49
timotimo hm
b2gills m: say [X] (^2 xx 3) # does `xx` and `[ Operator ] List` have the right precedence order 13:56
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
13:56 atroxaper joined
b2gills m: say [X] ^2 xx 3 13:57
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
b2gills m: say [X] ^2, ^2, ^2
camelia rakudo-moar ef4de6: OUTPUT«0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1␤»
timotimo [X] has a very loose precedence 13:59
"list prefix"
13:59 cschwenz left
timotimo but it doesn't seem like it flattens there the way you expect 13:59
m: say [X] flat ^2 xx 3
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
timotimo m: say [X] |(^2 xx 3)
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
timotimo huh. 14:00
m: say [X] (^2 xx 3).list
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
timotimo m: say [X] (^2 xx 3).tree
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
timotimo m: say [X] (^2 xx 3).lol
camelia rakudo-moar ef4de6: OUTPUT«ListIter.new␤»
timotimo >_>
14:01 atroxaper left
jnthn m: say [X](^2 xx 3) 14:01
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
jnthn m: say [X](|(^2 xx 3)) 14:02
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
jnthn m: say [X] |(^2 xx 3)
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
jnthn Hm :)
b2gills m: say [X] (^2 xx 3).rotor: 2
jnthn No idea :P
timotimo GLR can't come soon enough ;)
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
jnthn I'm not sure if GLR will make much difference there :) 14:03
timotimo it'll at least give us the opportunity to look closer at this issue right here
masak nonsense. GLR will fix everything. 14:04
everything! :P
timotimo can GLR help me occupy my brain?
b2gills
.oO( The GLR seems like a magical being that will come and fix all the problems ever at this point )
timotimo i finished with my module 'cause it couldn't help me with my mind
14:05 rindolf joined
masak a mind is a terrible thing to GLR 14:06
timotimo it's a horrible night to have a GLR
brrt the GLR will fix the JIT 14:15
timotimo well ...
masak GLR fixed the JIT... in my heart.
timotimo with the GLR in place, we'll have fewer crap involved in list iteration 14:16
14:16 skids joined
timotimo and that'll make the JIT happier, of course ... more possibilities to inline, less pressure on the code cache for example 14:16
btyler_ speaking of which, is there anything that can be done to start making GLR happen? bunches of mechanical refactoring that lack tuits? it seems concerning that the dialogue around GLR is still "someday..." but September isn't so far off at all 14:17
timotimo well, there's the glr-refactored synopsis, there's at least one branch that larry has been working in for flattening changes 14:18
brrt ****** blogger 14:24
one misplaced ctrl-z and *EVERYTHING I TYPED IS GONE* 14:25
timotimo argh!
jnthn :/
brrt :-(
14:26 ][Sno][ is now known as [Sno]
brrt oh, saved by the preview page 14:26
*pfew*
masak blogger does suck, though. 14:27
I'm amazed that it's possible to fail that much with blog software.
brrt aye 14:28
the thing about that is, though
i really, really, really don't want to set up and manage a blog
or do web development in general
14:29 FROGGS left, khw joined
timotimo yeah 14:29
14:29 amurf joined
timotimo as much shit as i'm giving wordpress, at least their editor regularly saves backups into your local browser session storage 14:30
DrForr scribbles notes :)
timotimo though of course if you manage to overwrite your stuff and your browser somehow loses ctrl-z and whatever the redo button is ... :|
brrt cynic me notes that wordpress has spawned a reasonably-sized industry of 'web design' companies 14:31
timotimo "wordpress template development", eh?
brrt install wordpress: $500. install a wordpress template: $500. Paste in a logo with photoshop: $1000. Done 14:32
timotimo wow
brrt don't believe me?
timotimo i want to make that much money with so little work
brrt just need to find big enough fools 14:33
timotimo mhm
brrt of course, if you can find really big fools (i.e. media companies) then it becomes still more interesting
masak there is a positive side to that, though.
brrt keeps them off the streets? :-)
masak it's that companies who have no interest in web dev can hire someone with wordpress skills.
timotimo right 14:34
masak and both will be relatively happy.
timotimo do these people actually have wordpress skills? i.e. could they handle complicated problems if they arise?
brrt when do complicated problems arise with wordpress?
timotimo i have no clue
14:34 amurf left
brrt do lorry drivers have skills with engines? 14:35
masak customizing a plugin could happen, I guess.
brrt not perhaps the best example; but in a very distant past, they probably did
masak might be everything from slightly nontrivial to complicated.
timotimo mhm
14:35 xinming left
DrForr And are there problems that they wouldn't resolve by simply deactivating the plugin? :) 14:35
brrt installing another plugin :-P 14:36
PerlJam DrForr: But then they'd completely lose their whiz-bang feature!
14:36 ][Sno][ joined, xinming joined
DrForr Or just look for another plugin that does the same thing but under a different name? 14:36
PerlJam And that's what a "wordpress expert" gets paid to do :) 14:37
brrt on the other hand, it's all too easy to talk about the behavior of hypothetical people, including wordpress experts
timotimo mhm
it kind of seems to me that The Market is very unfair :S
brrt is kind of surprised by timotimo's surprise 14:38
timotimo not really a surprise
brrt didn't you know?
timotimo just a reminder
brrt :-P
PerlJam It's only unfair to an outside observer. Internally, it's still very fair. 14:39
14:39 mephinet joined
JimmyZ_ JIT is hard, let's install wordpress. 14:39
14:39 integral_ joined, integral_ left, integral_ joined
brrt really? what precisely is fair about 'the market' 14:39
14:39 itz joined, yogan_ joined
brrt JimmyZ_: halfway decent JIT is hard :-P 14:39
14:39 Quom joined 14:40 _sri_ joined
brrt asking from a curiosity standpoint, not having a political axe to grind 14:40
(might seem that way)
14:40 KotH_ joined, pecastro_ joined, rob joined, mst___ joined
tadzik I don't know what's unfair about it 14:40
14:40 dylanwh_ joined
tadzik from a pure, utopian-capitalistic point of view 14:40
PerlJam brrt: "I need an awesome website!" "I can get you one for $3000" "Deal!" <-- both parties attain happiness. That's fair. It doesn't matter that the guy bought a wordpress template that you could setup in 20 minutes.
14:40 rob is now known as Guest26120 14:41 eviltwin_b joined
tadzik his knowledge just earned him $3k 14:41
masak agreed.
14:42 jack_rabbit left, khw left
brrt hmm.. i get that point, but i'm not ready that concede that just because people are happy that the transaction was fair 14:42
14:42 dustinm` left, ohc joined, skarn_ left, clkao left, itz_ left, mephinet- left, [Sno] left, MilkmanDan left, Alina-malina left, profan left, hobbs left, geekosaur left, KotH left, hobbs joined, khw joined, lsm-desktop joined, eviltwin_b is now known as geekosaur, hobbs left, hobbs joined, felher joined, prammer joined
tadzik you could say that the wordpress person is exploiting the other person's lack of knowledge 14:42
but that's what happens with literally every knowledge requiring proffesion in the world
14:42 felher is now known as Guest58306
masak was gonna say 14:42
llfourn I've worked on wordpress. getting the basic thing working is easy. But if you can set up a 1) secure, 2) maintainable 3) modifiable wordpress website you deserve all the money in the world
tadzik "doctor, is my condition dangerous?" "No. Now pay my $10k" 14:43
14:43 MilkmanDan joined, Exodist joined, dustinm` joined
masak tadzik: man, that doctor is fast. 14:43
PerlJam llfourn: modifiable is easy! ;)
brrt hah, secure
tadzik masak: he studied 10 years to be more efficient than a wordpress person :P
there has to be *some* benefit... 14:44
brrt wonders if he can think of an example in which both parties attain happiness and it'd still be unfair, and preferably without involving a injured third party
14:44 mst___ left, mst___ joined
masak .oO( for too long these wordpress people have taunted me and my profession. I must learn to make lightning-fast diagnoses and charge $10k ) 14:44
14:45 clkao joined, skarn joined, dg joined
brrt lol 14:46
PerlJam brrt: The doctor example might be good for an unfair transaction, but I doubt you can get it where both parties are unhappy unless there's a lawsuit involved.
brrt one party may be unhappy
that's bad enough... 14:47
14:47 llfourn left, pecastro_ is now known as pecastro, KotH_ is now known as KotH 14:49 llfourn joined
PerlJam The problem with doctor-transactions are that we expect to pay for their medical knowledge, but they may not have any specific knowledge about *our particular ailment* Even if they are "experts" 14:49
s/are/is/
14:50 ][Sno][ is now known as [Sno]
hoelzro o/ #perl6 14:55
timotimo o/ hoelzro
brrt \o hoelzro
14:57 larion left 15:14 domidumont left
tadzik PerlJam: that's same with IT people though, isn't it :) 15:17
15:20 mst___ is now known as mst, FROGGS joined
PerlJam tadzik: indeed. It's an analogy I often use to explain to people why I can't solve every computer-related problem. "Brain surgeons may not make the best foot doctors" :) 15:21
15:25 nys joined 15:28 zakharyas left
tadzik I often heard it as a construction analogy, like "I'm an architect, don't ask me to lay floors" :) 15:28
masak that stance is very damaging in software, I'd say.
the best software architects I know are not afraid to wade into code.
tadzik yeah, but they may not necesserily know how to configure something in photoshop 15:29
I often hear "but you write programs, how come you can't fix other peoples' programs"
PerlJam "I can! I just need access to the source, the ability to modify it, an environment whereby I can compile it (including any 3rd party libs), and some time to learn how everything works" 15:31
:)
tadzik "I could, if they shared them like I do mine" :)
15:31 tinyblak left 15:35 andreoss left
masak sounds like a stance partway towards RMS's. 15:36
El_Che it been a good day combining perl6, ruby and puppet code. Configuration management makes live interesting, not simple :) 15:39
perl 5 I mean :(
tadzik reminds me Coulton's "Christmas is interesting" 15:41
"Christmas is interesting, like a stick in your eye. So freaking interesting that it might make you cry" 15:42
PerlJam Is there a good way to mark a ticket in RT as being GLR-related?
tadzik that's my puppet experience at least ;P
[Coke] PerlJam: for now, add [GLR] to the subject. 15:44
perl5 seems to like meta tickets, but we seem to do better with faux tags in the subject.
have a test failure in make test on rakudo-jvm 15:46
gist.github.com/coke/f22d30839b7f3d66a97e 15:47
15:49 brrt left 15:50 tinyblak joined
[Coke] pretty sure I've reported this before, getting a failure on spectest for moarvm on osx: 15:54
Unable to execute 'PERL6_BINARY=/Users/williamcoleda/sandbox/rakudo/perl6-m sh t/spec/S32-io/IO-Socket-INET.sh 7 1024' in block <unit> at t/spec/S32-io/IO-Socket-INET.t:170
getting -bash: t/spec/S32-io/IO-Socket-INET.pl: Permission denied 15:56
16:07 konsolebox left, yqt joined
PerlJam m: for ^0 { FIRST say 'first'; LAST say 'last'; LEAVE say 'leave'; } 16:14
camelia ( no output )
16:16 spider-mario joined
hoelzro why is it that Socket.send takes a Str, but Socket.write takes a Blob? 16:22
s/Str/Cool/
timotimo send is for string data, write is for binary data 16:23
hoelzro I figured that the send/write split was so that they map to their corresponding system calls
ugexe send just does the encode for you 16:24
16:24 konsolebox joined
hoelzro is that its only reason for existing? send is a convenient wrapper around write? 16:24
I can see some people getting confused, thinking that send is for send(2), and write is for write(2) 16:25
timotimo i don't recall what the difference is 16:26
hoelzro send(2) takes flags, and write(2) doesn't, basically
send with flags=0 is equivalent to write 16:27
timotimo ah, OK
i don't really like that we don't have a way to set flags on sockets, and also not on sending things
hoelzro if we want a convenient way to send a Cool, I would suggest that send be renamed to writes
write(Blob), writes(Str(Cool))
ugexe doesnt it also have to do with how IO::Handle handles those across the IO:: modules? 16:29
hoelzro ugexe: the send/write distinction? afaik, Socket is the only IO::Handle that has send()
16:30 araujo joined, araujo left, araujo joined
ugexe makes sense to me then 16:31
16:32 raiph left 16:43 virtualsue left 16:44 shlomif joined, rindolf left, shlomif is now known as rindolf 16:45 atroxaper joined 16:47 virtualsue joined 16:50 atroxaper left 16:54 rindolf left
avuserow m: class Foo {method bar () {try {self!wrong()}}}; my $f = Foo.new; $f.bar; 16:55
camelia rakudo-moar ef4de6: OUTPUT«===SORRY!===␤Cannot find method 'orig'␤»
avuserow ^^ can someone help me rakudobug that? thanks!
16:55 dakkar left
lizmat avuserow: rakudobugging is as simple as copying this conversation in an email to [email@hidden.address] 16:56
16:57 virtualsue left
avuserow okay, I'll have to do that after $dayjob then, if it's restricted to email 16:58
16:59 lucasb joined
TimToady m: say [X] |((^2,) xx 3) 16:59
camelia rakudo-moar ef4de6: OUTPUT«0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1␤»
avuserow I think I've submitted tickets before, but I haven't been able to find anything when searching for my handle 17:00
TimToady jnthn, b2gills, timotimo: the problem here is that Range is excessively autoflattening, I think
and I believe GLR will probably fix it
along with @foo, which also autoflattens in an unfortunate way 17:01
17:04 CQ left 17:06 raiph joined
hoelzro is anyone opposed to changing send to writes on Socket for now? I can make a spec change and deprecate send() if that's what the community wants 17:06
TimToady though perhaps that should be called "autoslip" with the new terminology; whatever we call it, ^2 and @foo shouldn't do it
17:08 virtualsue joined
TimToady m: say [X] |((0,1) xx 3) 17:08
camelia rakudo-moar ef4de6: OUTPUT«0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1␤»
17:08 colomon left
TimToady anyway, ^2 should probably be behaving more like (0,1) there 17:08
17:09 tinyblak left
TimToady m: say [X] |([0,1]<> xx 3) 17:09
camelia rakudo-moar ef4de6: OUTPUT«0 1 0 1 0 1␤»
TimToady there's the @foo failure
when we take itemization of [] away, that problem shows up more 17:10
under the glrish branch, (1,2),[3,4] currently returns 3 elements, due to unwanted Array autoslipping, which I haven't figured out how to disable 17:12
17:12 rindolf joined
TimToady (recall that glrish is trying to emulate the glr semantics on top of the old list engine as a top-down approach, whereas the actual GLR will have to be bottom up) 17:13
17:31 larion joined 17:37 espadrine left 17:43 yqt left 17:49 colomon joined
jnthn hoelzro: I'm not sure why it's not just called print, which is the usual thing on a file handle that accepts a Str 17:51
hoelzro jnthn: that's even better than writes! 17:52
17:56 abraxxa left, llfourn left, ssqq joined 17:57 Ven left 17:59 profan joined 18:05 roguelazer joined 18:07 amurf joined 18:08 khw left 18:11 telex left, amurf left 18:12 telex joined, ssqq left 18:13 domidumont joined 18:14 ssqq joined 18:18 virtualsue left, Alina-malina joined
hahainternet so i have an array, of arrayrefs 18:20
turns out 'unique' isn't deep
any easy way to make it deep enough to care about these arrayrefs? 18:21
jnthn Mabye trying passing :with(&infix:<eqv>) 18:22
masak was gonna say.
jnthn ...but you said too slow and I beat you :P
masak m: my @a = [1, 2, 3], [7, 8, 9], [1, 2, 3]; my &with = &[eqv]; say @a.unique(:&with).perl 18:23
camelia rakudo-moar ef4de6: OUTPUT«([1, 2, 3], [7, 8, 9])␤»
masak works. :)
masak waits for someone to yell at him for that abuse of :&with
hahainternet what the hell is that masak
i don't even understand it lol
masak :)
let me take you through it, step by step
you already know about .unique, obvs 18:24
hahainternet i assume you're passing it a named function reference
masak yep
hahainternet but i don't get how &[eqv] is caring about the inside a ref trivially
that is freaking magic
masak and &[eqv] is just practical shorthand for &infix:<eqv>
hahainternet oh
masak which is the *function* handling the *operator* of that name
hahainternet so it'll just construct it as l infix r
masak yes.
hahainternet and ultimately, eqv is equivalence?
masak value equivalence, kind of 18:25
or "snapshot equivalence", sometimes called
hahainternet could you do .unique(with => &[eqv]) or the p6 equiv?
masak yep
18:25 virtualsue joined
hahainternet fat commas still fine yeah? no preferred syntax? 18:25
masak that's why I expected to get yelled at, because that's actually clearer
far commas still fine, yeah
lucasb and even shorter :)
masak not for lack of trying by some :P
18:26 domidumont left
masak go with `with => &[eqv]`, it looks nice 18:26
jnthn indeed; masak++
masak notes that :as is spec'd but :with is not
18:27 virtualsue left
masak this might be a case that :with covers but :as doesn't 18:27
hahainternet so that does appear tow ork
but
i still don't quite understand &[eqv]
jercos wwebsite :as(on the internet)?
masak m: say &infix:<eqv>(3, 3) 18:28
camelia rakudo-moar ef4de6: OUTPUT«True␤»
hahainternet i assume the function 'eqv' or infix:eqv actually tests deep equivalence?
masak m: say &[eqv](3, 3)
camelia rakudo-moar ef4de6: OUTPUT«True␤»
masak m: say 3 eqv 3
hahainternet and it's nothing to do with the fancy &[] syntax?
camelia rakudo-moar ef4de6: OUTPUT«True␤»
masak hahainternet: all those three forms mean the same.
hahainternet: does that help?
hahainternet: &[op] is just short for &infix:<op>
18:28 larion left
hahainternet no i get that it's short for the op 18:28
masak hahainternet: (because we do it a lot)
hahainternet you know, doc.perl6.org/routine/eqv is where i should be reading 18:29
and currently am
because line #1 of the example answers my question
thank you masak, you constantly impress me
masak bows
hahainternet ultimately this has been mangled into this: perl6 -e 'push @list,[$_[^2]] for (^6).permutations; say join("\n",@list.unique(with => &[eqv]))'
masak it helps to have been involved in the design of these things ;)
hahainternet which is mathematically unsound as well as ugly
if you can be bothered, i'd appreciate a more perl6-y take on it so i can understand 18:30
also, i'd like a better adjective, similar to 'pythonic'
but 'perl-y' is too easily mistaken imo
PerlJam hahainternet: how about "p6y" :)
hahainternet oh darn 18:31
that doesn't work actually
masak hahainternet: 'sixy as hell' :)
hahainternet i need to sort it in another bit
damnit
18:31 colomon left
hahainternet yeah need a .sort after the [^2] to do what i intended 18:31
PerlJam hahainternet: maybe you want a set? 18:32
18:32 virtualsue joined
hahainternet but ultimately it works and was succinct and i learned more about perl6, job: done 18:32
PerlJam: yeah probably, but i don't know enough mathematics to express what i'm looking for
masak hahainternet: if you're interested in how sausage gets made, you can read irclog.perlgeek.de/perl6/2013-08-04#i_7409206
PerlJam hahainternet: you don't really need to know much math ... just what sets are, how to construct them and something like .classify 18:33
18:33 virtualsue left
masak hahainternet's use case causes me to (slightly) reconsider :with as something useful, even if it's slow. 18:33
(because I don't know how to do that with :as)
hahainternet masak: i'm familiar with sort/map/grep in p5, :with seems like a natural extension 18:34
also PerlJam that's kinda impossible for me to know whether i am competent, as an incompetent person doesn't think they are
but i'll go read classify and see if i can be slightly non stupid
masak hahainternet: sometimes I feel that all the list operations in Perl 6 have a nice underlying symmetry to them (that Perl 6 doesn't quite reveal)
PerlJam hahainternet: Don't let competency (or lack thereof) stop you! ;)
hahainternet PerlJam: oh i didn't, already pasted that code to a friend :D 18:35
PerlJam hahainternet++
hahainternet PerlJam: so honestly thoug, i don't see how a set would particularly help here, let me explain the problem succinctly 18:36
6 players, 4 slots on server, generate permutations that allow every possible player combination 18:37
this is clearly something well solved in maths / set theory / god knows what
lucasb hahainternet: Did you want something like this: .say for (^6).combinations.grep(*.elems == 2) ?
lizmat jnthn: wrt to Channel renaming, why not call it Thread::Queue , because afaics that's the P5 equivalent
hahainternet lucasb: hahaha wow
that works great
now i just have to understand why 18:38
18:38 ssqq left
masak m: .say for (^6).combinations(4) 18:38
camelia rakudo-moar ef4de6: OUTPUT«0 1 2 3␤0 1 2 4␤0 1 2 5␤0 1 3 4␤0 1 3 5␤0 1 4 5␤0 2 3 4␤0 2 3 5␤0 2 4 5␤0 3 4 5␤1 2 3 4␤1 2 3 5␤1 2 4 5␤1 3 4 5␤2 3 4 5␤»
hahainternet oh goddamnit perl
masak hahainternet: ^
hahainternet why are you so good
masak we can't help it, sorry
it's like a compulsion
hahainternet seriously though, how does lucasb's work
oh, because it's combinations 18:39
i was reading it as (^6).permutations.grep
lucasb I think masak's is even better: (^6).combinations(2)
masak I think mine is better too :>
hahainternet yeah it is, i misread yours for a second lucasb
lucasb I didn't know about the argument to combinations :)
hahainternet that really is fantastic
PerlJam I third it ... masak's is beter ;)
masak it's not bad, I guess 18:40
PerlJam hahainternet: you should still learn about .classify and sets
masak oh, .classify is awesome
I find myself wondering why other languages don't have that one
PerlJam hahainternet: then, when the time it right, you can be someone else's masak. ;)
hahainternet masak: you know the bgigest problem with the ^6 syntax
masak probably because they don't internalize hashes enough
hahainternet is that ^5 is the shorthand for 'hi-5'
masak hahainternet: I'm willing to live with that :P 18:41
hahainternet o/ is a pretty good substitute i guess
masak: o/
masak \o
:D
hahainternet PerlJam: any reading you recommend? i am usually that sort of nerd to friends, but perl6 is an 'order of magnitude' (more like a meta level) more complex than anything i know
masak hahainternet: you can read `^6` as "up to 6".
hahainternet masak: yeah exactly, plus of course ^..^
although i find this a bit weird: 18:42
m: .say for ^6.combinations(2)
camelia rakudo-moar ef4de6: OUTPUT«Potential difficulties:␤ Precedence of ^ is looser than method call; please parenthesize␤ at /tmp/HYNEGNWIPZ:1␤ ------> 3.say for ^67⏏5.combinations(2)␤»
masak hahainternet: `$a ^..^ $b` is pronounced "$a neko $b" :P
[Coke] m: ^5>>.sqrt.say
camelia rakudo-moar ef4de6: OUTPUT«2.23606797749979␤»
18:42 Guest58306 is now known as felher
hahainternet would have expected that to work, i mean it's clear why it doesn't 18:42
[Coke] m: say ^5>>.sqrt
camelia rakudo-moar ef4de6: OUTPUT«0..^1␤»
masak hahainternet: prefix ops are looser than a bunch of postfix things.
hahainternet >> is hyper list op or whatever right? christ if i can remember
masak hahainternet: one quickly learns to parenthesize (^$x) almost always. 18:43
hahainternet masak: sure, i'm not trying to argue it would be correct, just that i expected it to work
no criticism implied
masak hahainternet: yes, everything hyper is >>
hahainternet i learned how to type «» just for p6 <3
masak hahainternet: as you grow into the precedence, you will realize that it couldn't be any other way... for better or worse :) :/
hahainternet masak: i'll take your word for it, (^6) is no big harm
masak «3
jnthn lizmat: I'm not sure it belongs under Thread:: 18:44
lizmat jnthn: then maybe just Queue ?
18:44 larion joined
jnthn lizmat: If I was going to namespace it I'd maybe do Concurrent:: 18:44
18:44 atroxaper joined
hahainternet oh right, so i get how classify works 18:44
the single paragraph prose could do with a little work i think 18:45
it's very succinct but a little aggressive
lizmat jnthn: anyway, I thought putting it under Thread:: would be an indication of its primitiveness
masak hahainternet: .classify is like a generalized .grep
hahainternet indeed, the example makes it very clear
masak hahainternet: it sorts everything into bins according to some rule
hahainternet with even/odd, the prose is just a little, i dunno, it feels a bit weird
masak *nod*
lizmat oO( .bucketize )
masak hahainternet: hold on, dig you up a link
18:46 virtualsue joined
hahainternet masak: no pressure, i think i get it, although not sure how i'd do these combinations with it 18:46
masak hahainternet: strangelyconsistent.org/blog/6-buil...you-needed
hahainternet but i am here to be schooled
jnthn lizmat: It's not *that* badly primitive ;)
hahainternet masak: bookmarked immediately
jnthn lizmat: Big +1 on the name having queue in, anyway :)
masak hahainternet: might be more useful examples in that one. feel free to nab them for the documentation.
hahainternet: post is a bit old, and might be slightly out-of-date.
hahainternet masak: i found the explanations were really quite good
masak yay 18:47
hahainternet oh, that reminds me, i assume you've seen the 'generate a fibonacci based on infinite list, compare to 1/9999999... etc done with fatrat' example?
i can paste if required, just wanted to ask about syntax, but i can check on the terminal
masak hahainternet: you mean justrakudoit.wordpress.com/2015/07...cci-trick/ ?
18:47 colomon joined 18:48 brrt joined
hahainternet masak: that'd be the one 18:48
so, i'm not sure what's going on with .map(+*)
or Z==
i can guess [&&] is list equivalence or similar
masak hahainternet: ok, one at a time:
hahainternet: +* means the same as { +$_ } 18:49
hahainternet: so basically "numify", "turn into a number"
hahainternet: Z== is "pairwise =="
hahainternet oh right ok, i was confused because there should be no numerical addition going on there
ok so it produces a list of (True, True, True etc)
18:49 virtualsue left
hahainternet and then [&&] expand the list with infix &&s? 18:49
masak hahainternet: so @a Z== @b, means @a[0] == @b[0], ...
hahainternet: yes, exactly. it's a reduction on the op && 18:50
hahainternet ok, i thought Z== was part of the zip operator (hyper-operator?), is that X instead?
i know there is something that'll zip up two lists together
and i wasn't sure if you were testing pairwise for equality
jnthn OK, what should I hack on this evening, now I've rested and had dinner and bored myself with immigration law...
18:50 atroxaper left
hahainternet jnthn: which country's immigration law? 18:51
jnthn hahainternet: "Schengen" :)
masak jnthn: don't hack immigration law!
jnthn masak: If only :P
masak at least not tonight...
hahainternet jnthn: ah, truly a wonderful thing
jnthn Well, it's not as bad as debugging a parallel GC, but... :)
Ooh, we're only at 1031 tickets after I didn't fix any for a couple of days. I can get us back to 1030 easy enough then :) 18:52
18:52 Hor|zon left, JimmyZ_ left
hahainternet god i wish i could help out 18:52
i have just resolved to use p6 as my toy language to test everything with that might eventually get written in another
and this way at least i can learn plenty, if not be useful 18:53
jnthn m: my sub foo() returns Bar { }
camelia rakudo-moar ef4de6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dlhsslivJw␤Invalid typename␤at /tmp/dlhsslivJw:1␤------> 3my sub foo() returns7⏏5 Bar { }␤»
jnthn Complainant wishes the error contained the invalid typename...I guess :)
hoelzro: Is "include typename in error" enough for you? :)
std: my sub foo() returns Bar { }
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Invalid type name at /tmp/PUk_PGlehB line 1:␤------> 3my sub foo() returns 7⏏5Bar { }␤ expecting typename␤Parse failed␤FAILED 00:00 136m␤»
[Coke] jnthn: I read that ticket, and that seemed to be the missing part, yes.
hoelzro jnthn: for the returns BadType ticket?
yes 18:54
jnthn OK, easily done
[Coke] hoelzro++ jnthn++
hoelzro excellent, thanks!
jnthn I'll make it a typed exception while I@m at it
A good warm-up ticket for me :)
hahainternet oh i'd like to say one more thing while i'm here and chatting, the std/rakudo split and the number of tests i see entered as a result of tickets is truly fantastic. I'm a long time p5 devotee and I think what you guys (and gals) have produced is intelligent at every level
i love the fact i can come in here and be completely schooled in the best way
thanks again for your tireless efforts, remind me to put £100 in some donation box sooner or later please 18:55
you don't receive enough thanks imo
lizmat hahainternet: if youi're at OSCON, you could buy 2 Perl6 Core Dev Fund patches at 50 US$ each :-) 18:56
afk&
hahainternet i won't, but i'm happy to throw $150 at someone to do it on my behalf
nwc10 18:56 <dipsy> 100 GBP is 155.72 USD
real money is worth more. :-)
hahainternet we could split the difference and use €150 18:57
which is near as damnit £100 these days
PerlJam hahainternet: You could give via secure.donor.com/pf012/give (Scroll down to the Perl 6 Development box) 18:59
19:00 domidumont joined
masak hahainternet: always nice to hear from supportive p5ers. 19:00
hahainternet PerlJam: but now i want some patches :o
19:00 geekosaur left
PerlJam (as an aside, is there a name under perlfoundation.org that leads to the secure.donor.com link?) 19:00
hahainternet masak: i enjoy following raiph on reddit / pm and watching the drama follow him around too
masak oh, wow. raiph++ 19:01
19:02 geekosaur joined
hahainternet oh, yet another stupid question, can i perl6doc any of these functions/classes/what-have-you? 19:02
i use rakudobrew, but couldn't find any equivalent to perldoc in p6
masak hahainternet: there's docs.perl6.org/
hahainternet: I'm not aware of a terminal equivalent -- other people here may know of one. 19:03
or plans for one.
moritz there's a p6doc shipped with perl6/doc 19:04
hahainternet imho you certainly shouldn't abandon the terminal tool, but i'm not going to demand its implementation
itz not many of the ecosystem modules actually have embedded pod .. the use of github means the docs is README.md which isn't installed
masak moritz++ # see? someone knew. :) 19:05
19:06 domidumont left
PerlJam itz: aye, that's one of my chief annoyances with P6 ... once I install a module, I have to go back to the github repo to read how to use it (or read the source) 19:07
hahainternet that is something that would be a shame, the ability to use perldoc for all the lookups i need to do is something i've been teaching my placement student 19:08
allows you to avoid relying on google to start with, which is a bad habit that allows people to get too lazy :D
itz PerlJam: I did wonder if a work around would be to have panda install README.md for module Foo as Foo.pod (if that file doesn't exist)
or maybe even just README.md and make p6doc look for that 19:09
jnthn $ perl6-m -e "my sub foo() returns Bar { }" 19:10
===SORRY!=== Error while compiling -e
Invalid typename 'Bar'. Did you mean 'Bag'?
hahainternet if anything POD might be renderable to README.md
jnthn Suggestions :)
PerlJam jnthn++
jnthn For things where you couldn't possibly mean a typename I did: 19:11
perl6-m -e "my sub foo() returns !!!WTF???? { }"
===SORRY!=== Error while compiling -e
Malformed trait
itz I don't think converting pod to and from markdown would be hard
jnthn Which I think is fair enough
19:11 rangerprice joined
moritz itz: patches/modules welcome :-) 19:12
19:12 inokenty left
itz RSN 19:12
:)
rangerprice Hi guys !
hoelzro jnthn++ 19:13
moritz \o rangerprice
hoelzro itz: there's a Pod::To::Markdown impl
rangerprice I really love perl *-* 19:15
PerlJam rangerprice: we do too! :-) 19:16
masak rangerprice: hi! you're in the right place. :) 19:17
we love Perl so much, we made one from scratch!
PerlJam
.oO( Perl 6 -- now with even *more* love! )
19:18
rangerprice The perl wikipedia page say that they will have a RC of Perl 6 in september, is it true ?
moritz we strive to make it true 19:19
PerlJam I'm not even sure what that means
We have release candidates for a Perl 6 compiler every month!
:)
itz everything breaks due to no allowed deprecations in Sep? :)
19:20 larion left
PerlJam and what does a release candidate mean for the language spec? 19:20
jnthn PerlJam: "We don't intend to change much now" :)
masak it means free PR, that's what.
nothing much changes for the early adopter who already uses Perl 6.
rangerprice I think that when perl 6 will be officially released, it will become most popular that Python 19:21
than*
masak I... hope that doesn't happen overnight. 19:22
there's such a thing as growing pains.
hahainternet i think it would be quite amusing
moritz is sceptical it'll happen at all
hahainternet if Perl6 took off faster than Python 3
moritz python continues to grow, afaict
hahainternet just due to the heavy irony
rangerprice i speak french so here's my excuse for mmy spelling misteaks
masak moritz: I'm skeptical too.
moritz and the perl lovers and the python lovers are often (though not always) quite distinct species 19:23
PerlJam I'm not skeptical ... because I don't care about popularity contests ;)
masak m: say "misteaks".subst(/eak/, "ake")
camelia rakudo-moar ef4de6: OUTPUT«mistakes␤»
rangerprice :)
dalek kudo/nom: f90dfc9 | jnthn++ | src/ (2 files):
Improve errors for traits with bad typenames.

Include type name we couldn't find, if any, and give suggestions. Or, if we can't even parse a longname there, complain it's malformed. Do a typed exception too.
masak PerlJam: I was going to say that. but then I realize that I *do* have a slight egotistical benefit in there being a vibrant community around Perl 6. 19:24
PerlJam: it will mean the bugs I find get fixed faster, for one :P
PerlJam good point.
masak no such thing as pure altruism :P 19:25
rangerprice Is everybody here are on Linux ?
PerlJam Though ... I'm happy with #perl6 plus or minus the epsilon of transients ;)
dalek ast: 9530cf1 | jnthn++ | S32-exceptions/misc.t:
Tests for RT #125642.
ast: 827d80f | jnthn++ | S02-literals/types.t:
Update test now we have a typed exception here.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125642
masak PerlJam: oh, me too.
hahainternet rangerprice: i am, for what it's worth
19:25 [Sno] left
PerlJam rangerprice: nope, we've got some people on OSX and Windows too 19:25
rangerprice: I'm on ubuntu however :)
masak PerlJam: if #perl6 stayed like this forever, I wouldn't consider that a failure by any measure.
PerlJam masak: me too 19:26
masak PerlJam: #perl6 might be the best thing that ever happened to my programming career.
rangerprice ah okay, i'm on arch linux
itz just wait until the killer framework is written in perl6 and the channel flooded with n00bs?
masak itz: I keep saying, we had a foretaste of that around the first release of R*. 19:27
PerlJam itz: I will wait. Hopefully, when that happens, we'll be just has friendly and helpful as ever. Even with the random new people.
masak itz: it made me a little bit sick to the stomach :/ suddenly (a) I couldn't keep up with the IRC stream in real time, and (b) it was very low-quality 19:28
itz: it was as if someone had come in and broken #perl6
masak .oO( success-at-all-costs: avoid )
PerlJam In some sense the community building is way more important than the "official language release" 19:29
dalek ast: 6277a01 | jnthn++ | S14-roles/basic.t:
Unfudge a couple more passing tests.

Thanks to the better trait error reporting.
masak PerlJam: amen. 19:30
itz a new #perl6-help might become necessary ... I hope we can avoid the n00b unfriendliness sometimes assocated with perl5
it is hard
PerlJam itz: why is it hard do you think? 19:31
[Coke] We can have a backup plan to split into #perl6 and #p6p or something.
masak PerlJam: might be like on Twitter. generating bullshit costs $x. refuting/correcting it costs 10 * $x 19:32
PerlJam: even if the ratio isn't that bad, if the ratio of newcomers-to-regulars is 10:1, then it's hard to preserve any community spirit 19:33
masak thinks about this a lot :/
been thinking about this since 2009. strangelyconsistent.org/blog/how-ca...e-kindness
PerlJam masak: I tend to think it's more the hard-line pedantry that tends to hurt #perl (and Perl 5) than anything. It's the under-lying current of superiority that tends to change the tone of the community. 19:35
itz a number of reasons .. explaining difficult concepts over IRC can be time consuming and frustraiting for both parties
and "hard-line pedantry" is a problem 19:36
(over IRC, email and blogs I mean)
masak PerlJam: if I explain a thing kindly/pedagogically to newcomers 99 times, and then number 100 arrives, I can see how I might start to lose faith in humanity, and go "look, you *idiots*, I've told you a hundred times..." 19:38
especially if along the way people weren't always grateful/receptive.
PerlJam WE just need to continually remind ourselves (and everyone else) to "be nice" :) 19:39
felher masak: which would be wrong, because at this time, you only told them 99 times :P
itz ^100 you mean?
rangerprice masak do you need a blog that explain thing that you talk one time for every newcormers ?
it would be a good idea to save explained thing in a text document or in a paper to futur newcomers 19:40
masak rangerprice: yes, sometimes that's the solution. I write blog posts like that, to be able to URL people. 19:41
PerlJam rangerprice: and even still we should be nice in explaining that the information they seek is located in that document and be receptive when they have difficulty accessing it.
masak felher: :P
PerlJam: cultivating a "be nice" culture is one thing. Ruby did that. I think it's maybe necessary but not sufficient. 19:42
PerlJam masak: agreed. 19:43
masak PerlJam: case in point: I don't think the Ruby culture gets full marks on being accepting to women.
19:43 yqt joined
masak (cf. Matt Aimonetti, DHH) 19:44
PerlJam masak: I'll note that your blog post from Jun 2009 mentions "both sexes". That omits a whole host of people that we likely shouldn't be omitting. (out of sight, out of mind, out of community)
rangerprice PerlJam: in that case, the community can do the job
brrt hmm.. i'm not sure that's fair to ruby community
masak PerlJam: oh, oops. I'm willing to rephrase that. do you have a better phrasing. 19:45
brrt to the rails community and the big-bag-of-idiots they unleashed upon is, yes
masak PerlJam: ...?
brrt s/is/us/
FROGGS masak: all... ?
brrt hmm
masak brrt: yeah, the Rails community is probably worse. not sure it's fair to disconnect it entirely from the Ruby community, though.
brrt in my view perl was always kind of hacker-culture
masak PerlJam: ready to push s/both sexes/all sexes/, if you think that fixes things. 19:46
brrt well, hmm, let me phrase the ruby thing
PerlJam masak: fine with me. :)
masak pushed. blog post will update in a minute. 19:47
lucasb masak: don't forget the s-expressions too!
masak PerlJam++
lucasb: I'm working on macros for Rakudo. it's not likely I will forget s-expressions. :P
19:48 Hor|zon joined
rangerprice Really masak ? you work on putting macro system (similar than C macros) in perl 6 ? oh my god 19:48
PerlJam rangerprice: no, *not* similiar to C macros :) 19:49
brrt who said anything about similar to C
also, C macro's are pretty awesome :-)
PerlJam heh!
19:49 colomon left
rangerprice ah ok PerlJam :) 19:49
PerlJam rangerprice: masak is working on what'd like to call "real macros" rather than the simple substitution macros that C has. 19:50
*I
rangerprice ah ok
El_Che There is a difference between being not explicitely inclusive on every sentence and sexism. I don't every text should have a series of nouns separated by slashes. What works for me is being explicit on the inclusiveness in a central point on the site ("about", "who we are", "our vision") and writes text with a coherent noun usage (e.g. using she throuout the text). Just an idea. 19:51
19:51 kaare_ left
El_Che of course, if there is low hanging fruit like in PerlJam's example, even better 19:52
PerlJam Though, clearly there's a desire to have simple substitutions (just like C). I've wished for them a couple of times myself when I had to write the same "is export is native('foolib') {*}" a bunch of times (or things like that)
19:52 darutoko left, Hor|zon left
masak rangerprice: what PerlJam said. I'm pretty adamant that the macros ought to work on the AST level, not on the source text level. 19:52
(which means they'll be better in almost every way) 19:53
rangerprice: that said, the *spec* contains textual macros à la C, too.
19:53 llfourn joined
hahainternet there was a perl6advent a couple of years ago that displayed a very interesting prototype 19:53
masak rangerprice: but that's for someone way more insane to implement :P
hahainternet: the prototype is basically implemented in Rakudo already.
hahainternet: was it perl6advent.wordpress.com/2012/12/...23-macros/ perchance? 19:54
brrt notes that C macros work post-tokenization
hahainternet masak: looks like it, there was one or two other token parts that i read at the time
rangerprice ok 19:55
PerlJam El_Che: For me, I think we (the perl 6 community) should cultivate a gentle attitude of reminding each other to be inclusive and kind. (yes, I'm a bit of a dreamer sometimes)
masak brrt: tokenization in Perl 6 is woven all the way through the parser. good luck disentangling it :>
timotimo i'm very interested in making (well, keeping) the perl6 community as inclusive as possible; we are, to an extent, at the "beginning" of forming a/the community 19:56
brrt i was not suggesting that it'd be easy
19:56 roguelazer left
masak hahainternet: if you want the latest plans for Perl 6 macros, I recommend strangelyconsistent.org/blog/macros...long-break + my more recent bloggage 19:56
hahainternet PerlJam: i quite like the idea of codes of conduct, mostly because i'm tired of dealing with groups full of arseholes, but it's such a contentious topic i fear even including it in this sentence
El_Che PerlJam: it's the right for the social experiment. Before the trolls got in.
timotimo hahainternet: COC isn't only helpful for dealing with arseholes, though
hahainternet masak: muchos gracias, i need to investigate sum types and higher kinded etc in perl 6 too so i may read this later
19:56 amurf joined
masak hahainternet: sounds like you ought to talk to vendethiel :) 19:57
rangerprice if i give 100$ as donate, then this money will really help the project ? :)
hahainternet masak: oh god if only i had the time, i need to read and digest what i've learned about p6 so far
timotimo yeah, ven has been doing good things with parametric roles and such
PerlJam rangerprice: if you give it to the Perl 6 Dev Fund, yes.
hahainternet timotimo: i don't disagree, but i'm much too afraid to express a strong opinion
masak Perl 6 doesn't really have the typological rigor for sum types and higher-kinded types, unfortunately.
timotimo rangerprice: you can put the money towards letting jnthn do a few more hours of focused perl6 work, and that will have a measurable (and feel-able!) impact
19:58 llfourn left
timotimo hahainternet: well, what i mean is it can be a good crystallization seed for interesting and helpful discussion 19:58
hahainternet masak: that is how i understand it at the moment, but considering the current scope of std, i'd like to see what someone with it in mind could come up with
19:58 virtualsue joined
timotimo i've recently seen a discussion around a CoC go horribly wrong; i think it was FreeBSD 19:58
hahainternet timotimo: no disagreement whatsoever
timotimo :)
hahainternet Go's was fairly horrible too, i stopped reading
even though in general the Go community has been excellent imho
El_Che PerlJam: Wendy and me have met some of the toxic python troll at the Perl booth at Fosdem. It's funny how silly they sounded and how off-putting they are for people dipping their toes in that community 19:59
timotimo hahainternet: and even though i'm all for making the community more diverse, i have no clue if/how i should approach people who fall into any kind of minority to advertise perl6
20:00 roguelazer joined, roguelazer left
PerlJam hahainternet: I'm not really a fan of formal codes of conduct as much as a conscious "living code of conduct" present in the community as a whole. 20:01
20:01 amurf left
hahainternet oh god it starts, look i only mentioned it because it was incidental 20:01
i am not advocating nor condemning the idea :D
work it out amongst yourselves
20:01 brrt left
timotimo PerlJam: having an actual, written code of conduct lets people - and i don't speak from experience, sadly/luckily - have less fear of speaking up on issues that impact them or others around them 20:02
hahainternet ultimately though, i'd like to hear the best burns the 'python trolls' have to come up with :D
timotimo PerlJam: if you have only a vague "people have always been nice" thing going, one thing i could imagine to be problematic is erosion - the kind of slow worsening of behavior that's made possible by successive weak "bad things" 20:03
hahainternet: "your spec isn't even finished yet!" probably ranks way up there?
PerlJam timotimo: aye. Could be.
hahainternet timotimo: well the best trolls have a way of exposing actual weaknesses
so most are banal, but some can be quite cutting and funny
timotimo there's the "best" trolls and the "loudest" trolls, i suppose
hahainternet indeed 20:04
PerlJam The best trolls come from within the community :)
20:04 shlomif joined
jnthn <troll>Rakudo's closure serialization has bugs!</troll> 20:04
timotimo i'm not sure "i thas bugs!" is a very good trolling strategy 20:05
jnthn The bug is trolling me right now :P
jnthn is trying to fix RT #125634
timotimo ;( 20:06
hahainternet: do you have experience with good projects/efforts to increase inclusiveness or even just attractiveness of a community?
jnthn Maybe I should have worked on a sort-of-hard bug rather than going from "easy" to "nasty" in one leap :) 20:07
hahainternet timotimo: i'm afraid not, it also depends what you mean by inclusiveness
if you are looking for cultural diversity i think that's something that comes naturally
timotimo hahainternet: i'm not too sure of that myself
hahainternet but it's worthwhile making an effort to ensure diversity of viewpoints
for example, i am utterly incapable with haskell, but i feel p6 should aim to encompass every use it has, but i am also nobod 20:08
y
timotimo every use it has ... that's very difficult
20:08 rindolf left, shlomif is now known as rindolf
hahainternet well, i don't mean the haskell infrastructure, just the language capabilities 20:09
i'm not asking for that fwiw, i just mean as an example of a viewpoint that might be useless
PerlJam hahainternet: you don't need to self-editorialize here :) 20:10
hahainternet just in case eh, but yeah i'm trying to take some time to learn ocaml and haskell after that because i'm interested in my friend's viewpoint that Go has ignored developments in type theory 20:11
and if that is indeed the case, which obviously seems to be partly opinion, i'd like to learn what's 'missing' from p6
PerlJam hahainternet++ excellent! We welcome your insights :)
masak hahainternet: if you need someone to discuss type theory (and category theory) with, I'm here for you :> 20:12
PerlJam
.oO( I wonder if I like using :) so much because I often punctuate real-life conversations with a smile (sometimes wry, sometimes not))
hahainternet the problem is that i'm not sufficiently versed in either p6 or ocaml yet, hell i don't even really know how 'does' and 'is' work
TimToady p6 is missing the bits that require you to learn all of type theory before you start :)
timotimo one thing that only now enters my mind is: how well is perl6 usable for blind people? do braille displays handle our plethora of special characters well?
hahainternet i overuse emoticons when i am worried i am not expressing my emotional state clearly alongside my text :D 20:13
PerlJam timotimo: Does braille do unicode?
20:13 virtualsue left
masak or Latin-1, for that matter 20:13
20:13 espadrine joined
TimToady I suspect most such graphemes would be translated to their uniname 20:14
PerlJam so ... Perl 6 looks like COBOL to the blind?
rangerprice What this line mean in a perl code: *ù$^!!§\|-
masak rangerprice: it means "someone needs a hug!!!" :D
hahainternet TimToady: i'm honestly not sure what parts it is missing, obviously you have a better idea than me, but its type structure seems quite well thought through 20:15
masak hugs rangerprice
hahainternet it would seem that for example, using type variables in declarations would fit in
but again, i'm extremely ignorant
rangerprice ahah ah :D
timotimo please explain "use type variables in declarations"? we have that, or something like that anyway 20:16
masak notes that rangerprice laughs just like Dracula, and ends the hug quickly
PerlJam masak: heh! 20:17
20:17 colomon joined
PerlJam colomon: o/ 20:17
rangerprice but dracula doesn't exist. This is my revelation
masak colomon: \o
TimToady hahainternet: actually, I just left out the parts I don't understand :)
masak rangerprice: that's exactly what a secret vampire count would say, though.
hahainternet timotimo: can you link me to what's you think is already like that? 20:18
because it's quicker for me to read and see if i've explained things badly vs type out a 5 line explanation lol
colomon \o
rangerprice yes ahahaha
masak backs away some more
timotimo m: sub testsub(::T $a) { my T $b = $a; say $b.WHAT; } testsub(5); testsub("foo"); 20:19
masak rangerprice: www.youtube.com/watch?v=vC0uvUuXVh8
camelia rakudo-moar f90dfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WxU3DiKdv_␤Strange text after block (missing semicolon or comma?)␤at /tmp/WxU3DiKdv_:1␤------> 3b(::T $a) { my T $b = $a; say $b.WHAT; }7⏏5 testsub(5); testsub("foo");␤ expecting any of:␤ …»
20:19 rangerleaderpric joined
timotimo m: sub testsub(::T $a) { my T $b = $a; say $b.WHAT; }; testsub(5); testsub("foo"); 20:19
camelia rakudo-moar f90dfc: OUTPUT«(Int)␤(Str)␤»
rangerprice masak: ahahaaaah 20:20
hahainternet timotimo: can i find this on docs easily enough? or in the spec?
not sure what i should be looking for 20:21
timotimo hmm. type variables? parameterization?
rangerprice masak: www.youtube.com/watch?v=hfD2xyOWm6U
timotimo you'll probably find most information on that by looking at roles?
hahainternet also TimToady if i figure out anything that makes sense that's missing i'll be sure to mention it
timotimo: roger, i haven't come across the ::T syntax before you see
i'm sure i've just missed it
20:22 muraiki joined
timotimo ah 20:22
jnthn m: say $*a; my $*a = 42;
camelia rakudo-moar f90dfc: OUTPUT«(Any)␤»
timotimo try "type capture"
jnthn std: say $*a; my $*a = 42;
camelia std 28329a7: OUTPUT«ok 00:00 136m␤»
jnthn TimToady: rt.perl.org/Ticket/Display.html?id=74756 wants the above to complain
TimToady: A bit like: 20:23
m: my $a; { say $a; my $a; }
camelia rakudo-moar f90dfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lhpnxXiuHL␤Lexical symbol '$a' is already bound to an outer symbol;␤the implicit outer binding must be rewritten as OUTER::<$a>␤before you can unambiguously declare a new '$a' in this scope␤at /tmp/lhpn…»
20:23 rangerleaderpric left
masak rangerprice: Oreos solve everything. -- Oreo, Inc. :) 20:23
jnthn TimToady: Something you can rule on quickly? ;)
lucasb m: if $*something {} 20:26
camelia ( no output )
lucasb ^^ This is case of failure silently getting discarded in boolean context 20:27
Can't it be a error instead?
FROGGS lucasb: that's intentional
masak m: say $*something
camelia rakudo-moar f90dfc: OUTPUT«Dynamic variable $*something not found␤ in block <unit> at /tmp/kRyiUAuh7g:1␤␤»
jnthn lucasb: Uhh...boolean context is designed to disarm failures
lucasb yes, failures are ok; what I'm saying is about undeclared dynamic variables lookup 20:28
jnthn They don't need declaration
FROGGS lucasb: that returns a failure
jnthn That isn't my point, my point is "do we want to catch cases where the programmer may be confused what they're accessing"
lucasb oh, they don't need declaration...
20:28 larion joined
jnthn In "say $*a; my $*a", the $*a there refers to the thing declared with "my" in the same scope 20:29
20:30 rindolf left
TimToady if it's possible to detect without too much effort, I wouldn't mind banning that 20:34
lucasb I didn't like the fact they don't dynvars don't need declaration because that could easy lead to typos getting ignored.
TimToady but I'd call it an illegal post-declaration
20:34 atroxaper joined
jnthn lucasb: If that actually hurts you, you're probably using dynvars too much ;) 20:35
TimToady: I don't think it'll be a load of effort.
PerlJam lucasb: sure, but the twigils are there to remind you of the implicit contract between you and the compiler. "you don't have to declare these, so be careful, ok?"
TimToady if you're using so many...what jnthn said
masak m: my $*x = 1; { say $*x; my $*x = 2; say $*x }; say $*x
camelia rakudo-moar f90dfc: OUTPUT«(Any)␤2␤1␤»
TimToady btw, just measured dynvar overhead today, and looks to be 2-3% of compiling the setting
lucasb ok, thanks everybody! 20:36
jnthn TimToady: Yowser... :)
TimToady: I really should get rid of those we don't need in the QAST -> MAST :)
TimToady: If I can get one more quick ruling:
TimToady though perhaps as much as 5%, since the logging was considered outside
jnthn std: /a:/
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter : (must be quoted to match literally) at /tmp/fkGSJm2wD8 line 1:␤------> 3/a:7⏏5/␤Check failed␤FAILED 00:00 136m␤»
jnthn std: / a: /
camelia std 28329a7: OUTPUT«ok 00:00 135m␤»
jnthn m: /a:/
camelia ( no output )
jnthn m: / a: /
camelia ( no output )
TimToady looks like a STD bug 20:37
jnthn In Rakudo we use <!alpha> after the : backtrack control, in STD it uses <!before \s>
Who, if anyone, is doing it right? :)
20:37 rangerprice left
jnthn std: / a: %% x / 20:37
camelia std 28329a7: OUTPUT«ok 00:00 135m␤»
jnthn I...think that one is an STD bug :P 20:38
m: / a: %% x /
camelia rakudo-moar f90dfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uUk29XL6XN␤'' many only be used immediately following a quantifier␤at /tmp/uUk29XL6XN:1␤------> 3/ a: %% x7⏏5 /␤»
jnthn The error reporting being off aside, Rakudo nails that as wrong
STD parses a : backtrack control as a quantifier, which leads to the separator oddness
TimToady : isn't really a quantifier 20:39
jnthn Rakudo does it all the way up in quantified_atom
20:39 atroxaper left
TimToady <!alpha> is probably okay for now 20:39
m: foo:; 20:40
camelia rakudo-moar f90dfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OJcZAWqLO1␤Confused␤at /tmp/OJcZAWqLO1:1␤------> 3foo:7⏏5;␤ expecting any of:␤ colon pair␤»
TimToady there's a spot we also require space, though
and /a:/ is highly artificial
since there's almost always something after it to cause said backtracking 20:41
and space is a really good idea there
jnthn Now you're argued it both ways :) 20:42
TimToady plus if we require the space, it'll catch more thinkos of the needs backslash variety
dalek p: c32f2f9 | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Fix a busted error reporting about bogus %/%%.
20:43
TimToady otgh, requiring a space under :s is a problem
well, maybe that space is always insignificant... 20:44
m: say 'foobar' ~~ /foo: bar/ 20:45
camelia rakudo-moar f90dfc: OUTPUT«「foobar」␤»
TimToady m: say 'foobar' ~~ /:s foo: bar/
camelia rakudo-moar f90dfc: OUTPUT«Nil␤»
TimToady I guess it's considered sigspace currently
m: say '00:11:22' ~~ /00:11:22/ 20:46
camelia rakudo-moar f90dfc: OUTPUT«Nil␤»
TimToady I'm a little worried about this though
maybe <!alnum> would be more appropriate 20:47
masak that ought to at least warn...
TimToady std: say '00:11:22' ~~ /00:11:22/
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Unrecognized regex modifier :11 at /tmp/vqp2vqOAa_ line 1:␤------> 3say '00:11:22' ~~ /00:117⏏5:22/␤Unrecognized regex modifier :22 at /tmp/vqp2vqOAa_ line 1:␤------> 3say '00:11:22' ~~ /00:11:227⏏5/␤Check failed␤FAILED …»
masak right.
masak submits rakudobug 20:48
'night, #perl6
raydiak good night masak 20:49
timotimo gnite masak :)
oh hey raydiak
raydiak afternoon timo o/
(and hello #perl6) 20:50
20:52 integral_ left 20:53 [Sno] joined, llfourn joined, integral joined, integral left, integral joined 20:54 virtualsue joined 20:55 lucasb left 20:58 llfourn left
jnthn $ perl6-m -e "say $*a; my $*a = 42;" 21:00
===SORRY!=== Error while compiling -e
Cannot post-declare dynamic variable '$*a'; earlier accesses
must be rewritten as CALLER:<$*a>
...anyone got any word-smithing for the message?
PerlJam not really, but I'd mention something about scope probably 21:02
FROGGS jnthn: isnt there a colon missing?
jnthn FROGGS: yes
PerlJam: Suggestion? 21:03
FROGGS: Fixed that one
PerlJam: I wrote "in this scope" and then was like "but huh, you can't post-declare it in any scope" so removed it again :P
TimToady "Illegal post-declaration of dynamic variable '$*a'; earlier access must be written as CALLER:<$*a>" 21:04
PerlJam "Cannot declare dynamic variable '$*a' after access in the same scope"
or something
TimToady ...if that's what you meant" 21:05
jnthn TimToady: heh, you actually want the "if that's what you meant" on the end? :P
It's tempting ;) 21:06
TimToady well, it might not be what they meant
jnthn True
TimToady they might have thought the post-decl would work
jnthn *nod*
jnthn adds it
TimToady anyway, singular "access" and no need for the "re" 21:07
jnthn yup
Used your wording, thanks.
It's nearly done spectesting.
Wasn't too hard.
TimToady m: say Foo; class Foo {...}
camelia rakudo-moar f90dfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_7tvu9v8D4␤Illegally post-declared type:␤ Foo used at line 1␤␤»
TimToady hmm, that's a bit different yet... 21:08
I remembered it a little worng
jnthn OK. I'll push the patch and you can word-smith further if you like :) 21:09
TimToady will probably move on from dynvars to looking at current overhead of lexing 21:10
21:10 dolmen joined
jnthn TimToady: OK. My plan for tomorrow is to try and get the multi-dim access into Rakudo 21:11
colomon \o/
jnthn TimToady: Provided I wake up clear-headed enough for it...
TimToady: If you read my S17 ponderings: did they seem sane/right direction?
(I'm more after a "semantic" check; I know you'll probably want to go renaming...) 21:12
dalek kudo/nom: b7d00f0 | jnthn++ | src/ (3 files):
Complain about "say $*a; my $*a".
21:13
ast: 6f3f112 | jnthn++ | S02-names-vars/contextual.t:
Test for RT #74756.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=74756
jnthn There goes another 5-year-old RT...
std: /00:11:22/ 21:16
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Unrecognized regex modifier :11 at /tmp/EEoNYPrllF line 1:␤------> 3/00:117⏏5:22/␤Unrecognized regex modifier :22 at /tmp/EEoNYPrllF line 1:␤------> 3/00:11:227⏏5/␤Check failed␤FAILED 00:00 136m␤»
TimToady I'd probably just go ahead and require space if it weren't for the sigspace issue 21:17
maybe require space or closer
haven't looked at S17, but maybe I can do that later today 21:18
jnthn TimToady: OK, it's not a patch to S17, more a gist
TimToady: I had the S09 issues gist too :)
TimToady I saw in the backlog, but was skimming at the time
jnthn Neither are blocking me yet
OK
I'd love to get the new supply syntax sugar in ahead of when I gotta submit my YAPC::Asia talk though :) 21:19
TimToady nodnod
TimToady should start thinking about what to talk about too... 21:20
jnthn TimToady: I went with <!alnum> and fixed the modifier error reporting for now...
TimToady k
jnthn I'm assuming you meant "don't do the whitespace demand 'cus of the sigspace issue"?
TimToady if we did do it, we'd need to allow ] as well to disambiguate under sigspace 21:21
[foo:] bar
but <!alnum> is okay for now 21:22
jnthn OK
PerlJam m: say <a a b b c c d d>.Bag.fmt('%s'); 21:23
camelia rakudo-moar f90dfc: OUTPUT«a␤c␤b␤d␤»
PerlJam TimToady: is a Bag a listy thing or a hashy thing?
jnthn m: say <a a b b c c d d>.Bag.fmt('%s times %s');
camelia rakudo-moar f90dfc: OUTPUT«a times 2␤c times 2␤b times 2␤d times 2␤»
PerlJam (this is from RT#121947) 21:24
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=121947
PerlJam I think it's behaving as it should and the ticket should be closed. 21:25
jnthn PerlJam: I don't see anything surprising there
m: say <a a b b c c d d>.Bag.list.fmt('%s');
camelia rakudo-moar f90dfc: OUTPUT«Directives specify 1 argument, but 2 arguments were supplied␤␤»
jnthn m: say <a a b b c c d d>.Bag.list.perl 21:26
camelia rakudo-moar f90dfc: OUTPUT«(:a(2), :c(2), :b(2), :d(2))␤»
jnthn ah, what's the other thing... :)
m: say <a a b b c c d d>.Bag.^methods
camelia rakudo-moar f90dfc: OUTPUT«total Bag BagHash Mix MixHash elems pick fmt list categorize-list Set of ACCEPTS classify-list Int Num Real Bool hash grabpairs pickpairs Numeric default grab maxpairs new minpairs kxxv roll SetHash new-from-pairs BUILD WHICH Method+{<anon>}.new Method+{<a…»
jnthn m: say <a a b b c c d d>.Bag.kxxv.fmt('%s')
camelia rakudo-moar f90dfc: OUTPUT«a a c c b b d d␤»
jnthn There you go
Dammit folks, I was *joking* when I suggested kxxv as the method name for that :P 21:27
Even if it makes total sense :)
TimToady nobody could think of a better name :P
jnthn Nor can I, that's the annoying thing... 21:28
21:28 skids left
jnthn m: /a:omg/ 21:37
camelia rakudo-moar f90dfc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6xwCNunQhC␤Unrecognized regex modifier :omg/␤at /tmp/6xwCNunQhC:1␤------> 3/a:omg/7⏏5<EOL>␤»
21:37 Hor|zon joined 21:38 yqt left
dalek p: ee89370 | jnthn++ | src/QRegex/P6Regex/Grammar.nqp:
Tighten check on what can come after : backmod.

We don't allow numerics as well as alphanumerics.
21:39
p: 78c7b8d | jnthn++ | src/QRegex/P6Regex/Grammar.nqp:
Bring modifier failure reporting inline with STD.

Also make it overridable.
21:41 yqt joined, Hor|zon left 21:42 espadrine left
dalek kudo/nom: 5be3c1b | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for regex engine fixes.
21:45
kudo/nom: 1b91828 | jnthn++ | src/ (2 files):
Typed exception for unrecognized regex modifier.
ast: aa2cc2e | jnthn++ | S05-metasyntax/unknown.t:
Test for RT #125648.
ast: 13775df | jnthn++ | S05-metasyntax/regex.t:
Test for RT #77524.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125648
Link: rt.perl.org/rt3/Public/Bug/Display...l?id=77524
21:45 amurf joined 21:46 spider-mario left
jnthn And another ancient RT down :) 21:46
Enough for tonight 21:49
o/
PerlJam jnthn: sleep well and awaken clear-headed :) 21:50
21:50 amurf left 21:52 muraiki left 22:03 dolmen left 22:19 bjz left 22:34 nys_ joined 22:36 virtualsue_ joined, nys left 22:37 virtualsue left, virtualsue_ is now known as virtualsue 22:39 nys_ is now known as nys 22:41 RabidGravy left, virtualsue left 22:44 rangerprice joined
rangerprice ih 22:44
hi*
22:47 rangerprice left 22:53 larion left 22:55 dha joined 23:10 xiaomiao left 23:11 skids joined 23:14 xiaomiao joined 23:22 vike joined 23:26 Hor|zon joined 23:28 amurf joined 23:31 Hor|zon left
TimToady .tell jnthn S17 gist seems sane to me, but that's a pretty low bar today :) 23:33
yoleaux TimToady: I'll pass your message to jnthn.
dalek kudo-star-daily: bb867fc | coke++ | log/ (8 files):
today (automated commit)
rl6-roast-data: 0bbd34b | coke++ | / (9 files):
today (automated commit)
23:57 dha left