»ö« 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.
cognominal class A { method a is export { say 'a'}}; # so I suppose it means I can call it A::a as well as A.a 00:02
makes more sense
psch m: class A { has $.b; method a is export { say $.b }}; import A; a A.new(:b(5))
camelia rakudo-moar fd8c98: OUTPUT«5␤»
00:02 adu left
psch m: class A { has $.b; method a is export { say $.b }}; import A; say &a.signature 00:03
camelia rakudo-moar fd8c98: OUTPUT«(A $: *%_)␤»
00:03 RabidGravy left 00:07 colomon left 00:08 colomon joined
cognominal what is the dollar in the signature? 00:08
psch cognominal: a scalar invocant
m: class A { has $.b; method a is export(A $self: ) { say $self!b }}; import A; say &a.signature 00:09
camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/btTGXDIdP6␤Two terms in a row␤at /tmp/btTGXDIdP6:1␤------> 3class A { has $.b; method a is export(A7⏏5 $self: ) { say $self!b }}; import A; sa␤ expecting any of:␤ infix␤ infix…»
psch oh
that's not where the signature goes...
m: class A { has $.b; method a (A $self: ) is export { say $self!b }}; import A; say &a.signature
camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yE4twEl1Gl␤No such private method 'b' for invocant of type 'A'␤at /tmp/yE4twEl1Gl:1␤------> 3hod a (A $self: ) is export { say $self!7⏏5b }}; import A; say &a.signature␤»
psch oh, the param is outside..? 00:10
m: class A { has $.b; method a (A $self: ) is export { say $self.b }}; import A; say &a.signature
camelia rakudo-moar fd8c98: OUTPUT«(A $self: *%_)␤»
psch anyway, there
cognominal psch++ 00:12
00:16 tokuhirom joined
psch ah, no, if it's not literal self it always goes through method dispatch... 00:16
m: class A { has $!b; method a (A $self: ) is export { say self!b; say $self =:= self }}; import A; a A.new(:b(1)) 00:17
camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ci7T9lM3z2␤No such private method 'b' for invocant of type 'A'␤at /tmp/ci7T9lM3z2:1␤------> 3thod a (A $self: ) is export { say self!7⏏5b; say $self =:= self }}; import A; a A.␤»
cognominal m: class A { my &a = method a { say 'a' }; method b { a A }}; A.b # wicked
camelia rakudo-moar fd8c98: OUTPUT«a␤»
psch well, okay, that has me a tad confused...
oh duh
$.a is the same as self.a, but self!a isn't the same as $!a 00:18
konobi is there a version of the 'nix' language in nqp land? 00:19
00:20 tokuhirom left
[Coke] not to my knowledge. 00:34
cognominal m: class A { my &a = method { say 'a' }; my &b = method { say 'b' }; our @a = ( &a, &b ) }; A.@A::a 00:43
camelia rakudo-moar 1051fc: OUTPUT«Invocant requires a type object of type Array, but an object instance was passed. Did you forget a 'multi'?␤ in block <unit> at /tmp/Vr4mqfhqbE:1␤␤»
cognominal m: class A { my &a = method { say 'a' }; my &b = method { say 'b' }; our @a = ( &a, &b ) }; say @A::a
camelia rakudo-moar 1051fc: OUTPUT«[<anon> <anon>]␤»
01:00 tokuhirom_h joined 01:04 tokuhirom_h left
cognominal m: 1.infix:['+'](2) 01:06
camelia rakudo-moar 1051fc: OUTPUT«Method 'infix:<+>' not found for invocant of class 'Int'␤ in block <unit> at /tmp/oXpkTheTnw:1␤␤»
cognominal m: say infix:['+'](1, 2) 01:08
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/F4e_z7kUwW␤Undeclared routine:␤ infix:['+'] used at line 1. Did you mean 'infix:<+|>', 'infix:<+>', 'infix:«+>»', 'infix:«+<»', 'infix:<+^>'?␤␤»
01:08 yqt left
AlexDaniel .u ⚠ 01:10
yoleaux U+26A0 WARNING SIGN [So] (⚠)
sprocket is there something akin to a PERL5LIB environment var for rakudo that i can use to specify alternate library paths? 01:11
cognominal sprocket, I think this is in flux right now. 01:12
sprocket cognominal: what’s the current method? i just need a way to test a module i’m working on, before i package it up
cognominal I think you can use -I when invoking rakudo 01:13
sprocket ah ok
cognominal I see PERL6LIB in the sources 01:14
github.com/rakudo/rakudo/blob/nom/...ore/Inc.pm 01:15
sprocket cognominal: I’ll check it out - thank you!
cognominal m: say 1.:<+>(2) 01:16
camelia rakudo-moar 1051fc: OUTPUT«Cannot find method 'CALL-ME'␤ in block <unit> at /tmp/bCGdBoTIi0:1␤␤»
cognominal at least they all parse :) 01:17
raiph .ask itz_stmuk re: pl6anet stats... Any idea what happened on Oct 21 (flat visits/pages etc but a crazy hit spike)? ... Why are so many hits 404s (70% in Oct!)? 01:23
yoleaux raiph: I'll pass your message to itz_stmuk.
zengargoyle is there a particular reason FIRST { … } can't be used in a while loop? 01:26
but LAST { … } can. 01:27
m: my $x = True; while $x { FIRST { say "first" }; LAST { say "last" }; $x = False; } 01:29
camelia rakudo-moar 1051fc: OUTPUT«last␤»
zengargoyle m: my $x = True; while $x { once { say "first" }; LAST { say "last" }; $x = False; }
camelia rakudo-moar 1051fc: OUTPUT«first␤last␤»
01:29 finanalyst left
psch m: say &infix:['+'](1,2) 01:31
camelia rakudo-moar 1051fc: OUTPUT«3␤»
psch hm, not sure if that's autogen or the other bit...
gfldex m: my $i = 10; while $i-- { FIRST { say 'first' } }; 01:32
camelia ( no output )
gfldex m: my $i = 10; while $i-- { FIRST { say 'first' } say 'alive' };
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_ychOoa7Lc␤Strange text after block (missing semicolon or comma?)␤at /tmp/_ychOoa7Lc:1␤------> 3= 10; while $i-- { FIRST { say 'first' }7⏏5 say 'alive' };␤ expecting any of:␤ infix␤ …»
gfldex m: my $i = 10; while $i-- { FIRST { say 'first' }; say 'alive' };
camelia rakudo-moar 1051fc: OUTPUT«alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤»
gfldex zengargoyle: please rakudobug
zengargoyle heh, seems like i'm rakudobuging something every day :P 01:33
01:35 TEttinger joined 01:36 cognominal left
mst design.perl6.org/Differences.html 01:36
is there any chance we can replace 'perl6 has a "real" object system' with something saying it's built into the language rather than provided by libraries or whatever
or if that doc's considered 'out of date, meh' can we put some sort of thing at the top saying that 01:37
01:38 MadcapJake joined
zengargoyle rakudobug'd: [perl #126535] AutoReply: [BUG] - FIRST phaser not firing in while 01:39
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126535
AlexDaniel .u 🛂 01:47
yoleaux U+1F6C2 PASSPORT CONTROL [So] (🛂)
01:48 aborazmeh joined, aborazmeh left, aborazmeh joined
[Coke] m: say "\c[PASSPORT CONTROL]" ~ "\c[COMBINING DIAERESIS]" 01:51
camelia rakudo-moar 1051fc: OUTPUT«🛂̈␤»
01:53 xpen joined 01:55 laouji joined
AlexDaniel .u 💬 01:55
yoleaux U+1F4AC SPEECH BALLOON [So] (💬)
01:55 laouji left
psch m: say "\c[PASSPORT CONTROL]\c[COMBINING SPEECHBALOON]" # i wonder... 01:56
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5beV6hPyp4␤Unrecognized character name COMBINING SPEECHBALOON␤at /tmp/5beV6hPyp4:1␤------> 3SSPORT CONTROL]\c[COMBINING SPEECHBALOON7⏏5]" # i wonder...␤»
psch aww unicode, why not
:P
TEttinger m: say "\c[PASSPORT CONTROL]\c[COMBINING SPEECHBALLOON]" 01:57
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/E_CVaKrj52␤Unrecognized character name COMBINING SPEECHBALLOON␤at /tmp/E_CVaKrj52:1␤------> 3SPORT CONTROL]\c[COMBINING SPEECHBALLOON7⏏5]"␤»
TEttinger m: say "\c[PASSPORT CONTROL]\c[COMBINING SPEECH BALLOON]"
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_z1WSSNTDm␤Unrecognized character name COMBINING SPEECH BALLOON␤at /tmp/_z1WSSNTDm:1␤------> 3PORT CONTROL]\c[COMBINING SPEECH BALLOON7⏏5]"␤»
TEttinger aw
is there a way to search the unicode DB for all matches? 01:58
[Coke] .u SPEECH
yoleaux U+2EC8 CJK RADICAL C-SIMPLIFIED SPEECH [So] (⻈)
U+2F94 KANGXI RADICAL SPEECH [So] (⾔)
U+1F4AC SPEECH BALLOON [So] (💬)
[Coke] .u SPEECHB
yoleaux No characters found
AlexDaniel .u BALOON 01:59
yoleaux No characters found
AlexDaniel oops
.u BALLOON
yoleaux U+2723 FOUR BALLOON-SPOKED ASTERISK [So] (✣)
U+2724 HEAVY FOUR BALLOON-SPOKED ASTERISK [So] (✤)
U+2749 BALLOON-SPOKED ASTERISK [So] (❉)
AlexDaniel so it is limited to just 3
TEttinger .u COMBINING SPEECH 02:01
yoleaux No characters found
TEttinger .u COMBINING BALLOON
yoleaux No characters found
TEttinger .u COMBINING BUBBLE
yoleaux No characters found
TEttinger .u SPEECH BALLOON
yoleaux U+1F4AC SPEECH BALLOON [So] (💬)
TEttinger hm
AlexDaniel there is no combining bubbles, stop it! :D 02:02
psch "\x0".."\xffff" .grep({.uniprop eq 'Mn'}) # get all the marks!
AlexDaniel here's the list of all combining stuff: en.wikipedia.org/wiki/Combining_character 02:03
02:03 adu joined
AlexDaniel 🛂⃠ 02:04
psch ooh, COMBINING HALF-WIDTH LEFT ALIGNED BLOCK 02:05
02:06 sprocket left
psch better goes to bed :S 02:06
02:08 goofyFuzzball joined
diakopter haha 02:15
02:22 risou left
Sgeo Does/will Perl6 have a reasonable FFI? 02:22
02:25 yeahnoob joined
AlexDaniel Sgeo: like Inline::Python? 02:27
zengargoyle TEttinger: are you on a linux box?
TEttinger nope
Sgeo I don't know anything about Inline::Python
Sgeo wants to use an opaque C library
adu opaque?
TEttinger why, zengargoyle?
gfldex Sgeo: see NativeCall 02:28
adu and Inline::C
gfldex design.perl6.org/S21.html
adu and C::Parser
zengargoyle ah, don't know about Win/Mac... i usually zcat /usr/shar/i18n/charmaps/UTF-8.gx | fgrep <whatever>
TEttinger ah ok
zengargoyle other OS might have a file somewhere of characters...
adu zengargoyle: Mac is pretty close to most other unixen 02:29
zengargoyle yeah, i almost count Mac, but don't know file locations.
not sure, think that file is part of iconv 02:30
02:30 bpmedley left
adu zengargoyle: usually if you substitute historical monikers with TitleCaseWords, the directory structure is pretty close 02:30
zengargoyle uh, no locales package it seems. 02:31
adu zengargoyle: like /home is /Users, /usr is /Library and lib/ is Frameworks/ and include/ is Headers/ 02:32
zengargoyle lol
adu zengargoyle: it's exactly the same :P 02:33
zengargoyle: but I think most developer I know install homebrew or macports to smooth out the differences 02:34
zengargoyle yeah, scripting and unix-y app wise i mostly consider them equivalent... it's now 'will probably work on Linux/Mac, don't know about Windows' as long as you can find the package in your package manager. 02:36
and is more likely to work on Mac than Solaris. :P
adu most unix-y people I know who use windows install Cygwin
02:37 BenGoldberg left
adu I've tried Solaris, it's /dev tree is like an alien world 02:37
zengargoyle quite a bit of Solaris at $WORK, but i leave those details to others. it's sorta very slowly being phased out ever since the Oracle took over. 02:41
02:41 goofyFuzzball left
gtodd adu: and if you want, you can even make symlinks to TitleCaseWords and olde fashioned unix to feel more part of the NeXT-generation 02:44
02:47 cognominal joined 02:59 cognominal left 03:05 kaare_ joined 03:10 aborazmeh left 03:12 MadcapJake left, atweiden left 03:18 risou_awy joined, risou_awy is now known as risou
raiph m: sink 1 03:20
camelia ( no output )
03:20 cognominal joined 03:22 tokuhirom joined 03:28 finanalyst joined 03:31 cognominal left 03:32 aborazmeh joined, aborazmeh left, aborazmeh joined 03:37 Actualeyes joined 03:38 xinming left
zengargoyle back in college days i kept my laundry in a NeXT box. too cool. 03:40
03:44 xinming joined 03:54 Oatmeal left 04:00 Oatmeal joined 04:04 khw joined 04:06 kaare_ left, aborazmeh left
dalek kudo-star-daily: 5ec59e7 | coke++ | log/ (9 files):
today (automated commit)
04:29
04:39 Actualeyes left 04:43 adu left 04:44 skids left 04:45 llfourn joined 04:58 Actualeyes joined 05:04 khw left 05:05 sprocket joined
Hotkeys does perl 6 have an equivalent to the $INPUT_RECORD_SEPARATOR or $RS or $/ variables from perl 5? 05:07
moritz Hotkeys: you can specify the separator during open with nl => "separator" 05:08
TimToady I thought there was a problem with autochomp if you do that 05:09
yoleaux 1 Nov 2015 21:39Z <lizmat> TimToady: I'm having a hard time describing your work on autogen the past week. Could you summarize that in a line of 1,2,3 (or more) for the Perl6 Weekly?
TimToady anyway, at the moment I think slurp.split is faster
05:09 atweiden joined
TimToady hopefully will change in the next week or two 05:09
moritz there's also open(...).split iirc 05:13
which might be less memory hungry
TimToady .tell lizmat There's a sense in which none of the metaoperators are really there, but are abstractions; up till now they've autovivified themselves as needed only when used in a normal operator slot, but now they autovivify when mentioned as nouns or function names too, in any of &foofix:<op>, foofix:<op>, or &[op] now also honor the abstraction 05:15
yoleaux TimToady: I'll pass your message to lizmat.
raiph .tell atweiden It's something like Rats are Rat[64]s -- they overflow to Nums when the denominator of a result overflows 64 bits so consider using Rat[128+]s or FatRats instead 05:23
yoleaux raiph: I'll pass your message to atweiden.
05:23 AlexDaniel left 05:31 sprocket left
atweiden raiph: thanks, didn't know about Rat64 05:32
yoleaux 05:23Z <raiph> atweiden: It's something like Rats are Rat[64]s -- they overflow to Nums when the denominator of a result overflows 64 bits so consider using Rat[128+]s or FatRats instead
atweiden any thoughts on Rat64 vs rat64 native types?
moritz rats are composite types; there's not much point having a native one 05:33
TimToady we had specced a native form that has a numerator twice as big as the denominator, since there's not much use in limiting numbers to be close to 1 when when the denom is huge 05:34
so a rat64 would actually have an int128 for its numerator 05:35
05:42 [Sno] left
zengargoyle m: say "ア つ.ぐ".match(/<:Kana :Hira [.\h]>+/); 05:45
camelia rakudo-moar 1051fc: OUTPUT«「ア つ.ぐ」␤»
zengargoyle m: say "ア つ.ぐ".match(/<:Kana :Hira [.]>+/);
camelia rakudo-moar 1051fc: OUTPUT«「ア」␤»
arnsholt zengargoyle: [...] doesn't introduce a character class in Perl 6, FYI =)
It's a non-capturing group like (?:) in Perl 5 05:46
TimToady it's inside <>
zengargoyle insise < >
TimToady but you need +
m: say "ア つ.ぐ".match(/<:Kana+:Hira+[.]>+/);
camelia rakudo-moar 1051fc: OUTPUT«「ア」␤»
TimToady m: say "ア つ.ぐ".match(/<:Kana+:Hira+[.\h]>+/);
camelia rakudo-moar 1051fc: OUTPUT«「ア つ.ぐ」␤»
zengargoyle m: say "ア つ.ぐ".match(/<:Kana :Hira [.\h]>+/); 05:47
camelia rakudo-moar 1051fc: OUTPUT«「ア つ.ぐ」␤»
arnsholt Oh, derp. It would appear that reading comprehension deteriorates as thesis writing intensifies >.<
zengargoyle m: say "ア つ.ぐ".match(/<:Kana+:Hira+[.]>+ % ' '/);
camelia rakudo-moar 1051fc: OUTPUT«「ア つ」␤»
zengargoyle why is [.] not matching the '.' 05:48
TimToady that...shouldn't work work without +
05:48 finanalyst left
zengargoyle tried both ways and decided + didn't make a difference and thought maybe it was the default... 05:49
TimToady m: say "ア つ.ぐ".match(/<[\w] [.\h]>+/); 05:50
camelia rakudo-moar 1051fc: OUTPUT«「ア つ.ぐ」␤»
zengargoyle m: say "つ.ぐ".match/<:Hira+[.]>+/ 05:51
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at /tmp/J8YuEQDvI1:1␤------> 3say "つ.ぐ".match/<:Hira+[.]>+/7⏏5<EOL>␤Regex not terminated.␤at /tmp/J8YuEQDvI1:1␤------> 3say "つ.ぐ".match/<:Hira+[.]>+/7⏏5<EOL>␤Unable to parse regex; …»
TimToady eep, + isn't supposed to be default
zengargoyle m: say "つ.ぐ".match/<:Hira+[.]>+/);
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5===␤Null regex not allowed␤at /tmp/xag7STumLQ:1␤------> 3say "つ.ぐ".match/<:Hira+[.]>+/7⏏5);␤Unable to parse regex; couldn't find final '/'␤at /tmp/xag7STumLQ:1␤------> 3say "つ.ぐ".match/<:Hira+[.]>+/7⏏5);␤ …»
zengargoyle m: say "つ.ぐ".match(/<:Hira+[.]>+/);
camelia rakudo-moar 1051fc: OUTPUT«「つ.ぐ」␤»
zengargoyle m: say "つ.ぐ つ.ぐ".match(/<:Hira+[.]>+ % ' '/); 05:52
camelia rakudo-moar 1051fc: OUTPUT«「つ」␤»
05:53 raiph left
zengargoyle m: "つ.ぐ つ.ぐ" ~~ m :g /<:Hira+[.]>+ % ' '/; say @(); 05:56
camelia rakudo-moar 1051fc: OUTPUT«(「つ」 「.」 「ぐ つ」 「.」 「ぐ」)␤»
zengargoyle wishes linenoise handled wide characters. 05:59
atweiden is it Rat128? getting invalid typename. 06:08
maybe i'll try rat64 first, but is it implemented? 06:09
m: my rat64 $r = 0.0 06:16
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5===␤Type 'rat64' is not declared␤at /tmp/4JyC2ay_s2:1␤------> 3my rat647⏏5 $r = 0.0␤Malformed my␤at /tmp/4JyC2ay_s2:1␤------> 3my7⏏5 rat64 $r = 0.0␤␤»
atweiden m: my rat32 $r = 0.0
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5===␤Type 'rat32' is not declared␤at /tmp/nL33VHIKZU:1␤------> 3my rat327⏏5 $r = 0.0␤Malformed my␤at /tmp/nL33VHIKZU:1␤------> 3my7⏏5 rat32 $r = 0.0␤␤»
atweiden m: my Rat64 $r = 0.0 06:17
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5===␤Type 'Rat64' is not declared␤at /tmp/8ajKDsPbz7:1␤------> 3my Rat647⏏5 $r = 0.0␤Malformed my␤at /tmp/8ajKDsPbz7:1␤------> 3my7⏏5 Rat64 $r = 0.0␤␤»
atweiden how do you declare one of these larger Rats?
TimToady no, all we have is Rat and FatRat so far 06:31
06:37 jevin_ joined 06:42 quester joined
quester p6: my $i = 65536; say $i; $i *=2; say $i 06:42
camelia rakudo-moar 1051fc: OUTPUT«65536␤131072␤»
quester p6: my int $i = 65536; say $i; $i *=2; say $i 06:58
camelia rakudo-moar 1051fc: OUTPUT«65536␤131072␤»
06:58 quester left 07:06 diana_olhovik_ joined 07:12 baest_ is now known as baest 07:27 firstdayonthejob joined 07:32 [Sno] joined 07:38 stux|RC-only joined 07:41 abraxxa joined 07:42 RabidGravy joined 07:45 darutoko joined
RabidGravy marnin 07:46
07:46 abraxxa left 07:55 colomon left 07:56 colomon joined 08:00 abraxxa joined 08:09 kjs_ joined 08:17 _mg_ joined 08:20 atweiden left, ely-se joined 08:28 firstdayonthejob left, Humbedooh left 08:30 Humbedooh joined
lizmat good *, #perl6! 08:33
yoleaux 05:15Z <TimToady> lizmat: There's a sense in which none of the metaoperators are really there, but are abstractions; up till now they've autovivified themselves as needed only when used in a normal operator slot, but now they autovivify when mentioned as nouns or function names too, in any of &foofix:<op>, foofix:<op>, or &[op] now also honor the abstraction
lizmat .tell TimToady Thanks for the quote!
yoleaux lizmat: I'll pass your message to TimToady.
nine lizmat: do you actually understand this? 08:34
dalek kudo/nom: ee87d79 | lizmat++ | t/01-sanity/53-transpose.t:
Fixup TRANSPOSE tests after changes
08:35 zakharyas joined
lizmat I think so :-) 08:35
nine lizmat: then I look forward to your explanation in the weekly :)
moritz does 08:36
llfourn is there any fun that can be had with CompUnit interface that is worth documenting yet?
lizmat well, my interpretation is that if you say [+] @array, it is actually auto-vivified because they are needed
moritz there are infinitely many operators that you can create from basic operators and meta operators
lizmat whereas if you say my $a = &[+], they weren't yet
nine llfourn: there's much fun in completely refactoring CompUnit and friends ;) 08:37
llfourn takes that as a no
moritz for example from infix:<+>, you can create X[ZR+] or so
so we don't create them up-front, but on demand
llfourn nine: good luck with that :)
moritz that used to work for calls, but not for references to those operators
now it works for references too
m: say &infix:<Z+>.signature.perl 08:38
camelia rakudo-moar 1051fc: OUTPUT«:(+ is raw)␤»
moritz star-m: say &infix:<Z+>.signature.perl
camelia star-m 2015.09: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Tpk56BPwpu␤Undeclared routine:␤ &infix:<Z+> used at line 1. Did you mean '&infix:<∖>', '&infix:<lt>', '&infix:<eq>', '&infix:<>=>', '&infix:<=>>'?␤␤»
nine moritz: thanks! Crystal clear now 08:39
lizmat nine: what moritz said
moritz: can I use your exegesis in the P6W ?
TimToady notes that infix:<+>(1,2) is technically a call too, but didn't work before 08:40
yoleaux 08:33Z <lizmat> TimToady: Thanks for the quote!
TimToady also, &[+] is an existing operator
lizmat TimToady: ah. duh :-) 08:41
moritz lizmat: sure 08:42
star-m: say infix:<+>(1,2)
camelia star-m 2015.09: OUTPUT«3␤»
moritz star-m: say infix:<Z+>(1,2)
camelia star-m 2015.09: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6rTbHU4LNg␤Undeclared routine:␤ infix:<Z+> used at line 1. Did you mean 'infix:<∖>', 'infix:<lt>', 'infix:<eq>', 'infix:<>=>', 'infix:<=>>'?␤␤»
mrf * #perl6 08:44
RabidGravy rtp
er
TimToady ah, yeah, infix:<Z+> didn't work before, duh 08:46
TimToady should go to bed soon...
08:46 pdcawley joined
TimToady btw, I'm okay with /x ** ^10/ but not okay with /x ** $x/, 'cuz I wanna keep the {}-less form static, and because people will get confused by whether a subscript is allowed there 08:47
as for /x ** ^*/, that's pretty darn useless, and confusing to look at, given that both ^ and * are normal regex metachars 08:48
mrf TimToady: That that seems fair. 08:49
TimToady mrf++ for the ^10 form though
mrf I only added ^* as it seems to keep consistent with the use of ^ as a range
TimToady (though calling '^' min seems a bit weird)
TimToady does wonder if people will think ^10 means 0..10 though, when it should mean 0..9 08:50
ShimmerFairy I would expect 0..9, as it is everywhere else :) 08:51
RabidGravy depends on what you think "up to 10" means ;=) 08:52
mrf hmm I actually expected ^10 to be the same as 0..10. I had clearly missed that it was 0..9
llfourn I exptected 0..10 tbh but 0..10 makes more sense when you think about it. If for ^10 iterated 11 times that would be confusing.
lizmat most people should think of it as 10 times
RabidGravy yes
lizmat m: .say "foo" for ^10
camelia rakudo-moar 1051fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CccAJuZGHc␤Two terms in a row␤at /tmp/CccAJuZGHc:1␤------> 3.say7⏏5 "foo" for ^10␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier…»
lizmat m: say "foo" for ^10 08:53
camelia rakudo-moar 1051fc: OUTPUT«foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤»
ShimmerFairy m: say ^10
camelia rakudo-moar 1051fc: OUTPUT«0..^10␤»
ShimmerFairy m: say (^10).list 08:54
camelia rakudo-moar 1051fc: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
ShimmerFairy ^ that's what I think of when I think of the upto syntax. So I'd expect ** ^10 to mean ** 0..9
mrf I might update the Range type docs to make it clearer that ^ is exclusive of the endpoint
lizmat m: say + ^10
camelia rakudo-moar 1051fc: OUTPUT«10␤»
mrf Also I suspect that might mean there is a bug in my NQP patch 08:55
m: say "foo" ~~ /o ** 0..2/ 08:57
camelia rakudo-moar ee87d7: OUTPUT«「」␤»
ShimmerFairy The discovery of /a ** ^10/ not working was because ^10 is another way to write a Range which was accidentally not covered. Deviating from that (by suddenly pretending it's 0..10 instead of 0..^10) would be a bug in my eyes.
mrf m: say "foo" ~~ /o ** 0..^2/
camelia rakudo-moar ee87d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sI2dB5PMRF␤Malformed Range␤at /tmp/sI2dB5PMRF:1␤------> 3say "foo" ~~ /o ** 0..7⏏5^2/␤»
mrf ShimmerFairy: Agreed. I believe my patch would treat it as 0..10 not 0..^10 which would be erroneous. 08:58
ShimmerFairy m: say "AAAA" ~~ /A ** {0..^4}/ # this is also a bug in how regexes handle Ranges, though IIRC I came across it a while back :) 08:59
camelia rakudo-moar ee87d7: OUTPUT«「AAAA」␤»
Hotkeys <lizmat> m: say + ^10
did you mean
m: say [+] ^10
camelia rakudo-moar ee87d7: OUTPUT«45␤»
lizmat no, just showing the number of elems in ^10 09:00
Hotkeys oh
TimToady m: say "AAAAAAAA" ~~ /A ** {0..^4}/
camelia rakudo-moar ee87d7: OUTPUT«「AAAA」␤»
TimToady okay, it's just an off-by-one there due to not considering the exclusion
but definitely a bug
dalek kudo/nom: 63f6fc9 | lizmat++ | src/core/Str.pm:
Also use TRANSPOSE for tr/x// case
09:01
ShimmerFairy TimToady: if it's using .bounds on the returned Range there, could that possibly be a more general issue with .bounds not considering exclusion?
m: say (1..^4).bounds
camelia rakudo-moar ee87d7: OUTPUT«(1 4)␤»
09:01 espadrine joined
TimToady we need an intbounds methods or so 09:01
mrf I will take a look at it and see if I am able to fix it to allow exclusionary ranges
RabidGravy I actually that that the { ... } bits in regexes got handed off to perl proper to determine the value 09:02
timotimo mrf: sorry for not spotting that off-by-one :S
lizmat TimToady: I've been wanting that for a while, will add that now
ShimmerFairy RabidGravy: yeah, so my first guess is that Range.bounds is being passed to the regex engine without correction :)
mrf timotimo: no worries. You have been super helpful and given me mre than enough support 09:03
timotimo++
TimToady lizmat: note the code for .elems already has the logic
mrf psch++ # also helping
timotimo yay
lizmat TimToady: I'm going one step further and making $!excludes-min/max native ints internally 09:04
mrf timotimo: Considering I thought I would be incabable of doing anything. You got me to the point where I could submit a patch. That is an awesome thing.
Is ^10 a synonym for "10 iterations" then?
Timbus 'upto 10'
creates a list from 0..9 09:05
TimToady ^10 is just short for 0 ..^ 10
mrf Timbus: Sadly upto ten is subjective. Some people would be inclusive and some wouldn't
Timbus luckily, it looks a lot like the long form
mrf TimToady: That is probably a better answer.
TimToady but understanding that, "upto" is how it's pronounced :) 09:06
mrf Timbus: It does but I caught me out. I was expecting it to be equivelant of 0..10.
TimToady: ok
I suppose that is consistent with its use in a full range.. 09:07
TimToady it's our answer to python's [:10] tomfoolery 09:08
mrf TimToady: I will remove the ^* option if your would prefer. Though I am now curious as to what "upto infinity" actually means :D 09:10
ShimmerFairy mrf: probably the * quantifier :P 09:11
Timbus lucky it stops before you get there eh
mrf ShimmerFairy: likely yes
TimToady it's the opposite of "to infinity and beyond"
mrf :D
ShimmerFairy
.oO( / a ** ^* / --> "ERROR: You used three asterisks, along with a caret, where just one is enough. Please unjam your shift and 8 keys as needed and try again" :P )
09:12
mrf ShimmerFairy: Thats not actually a terrible unhelpful error. 09:13
timotimo ShimmerFairy: that error message should introspect the currently active keyboard layout
shift-8 on my system is „, for example
ShimmerFairy timotimo: of course, but just think of the ungodly mess of dependencies in that :P 09:14
timotimo: it also doesn't account for the * key on my numpad, fwiw :)
timotimo very problematic!
ShimmerFairy mrf: aside from the casual tone of my fake message, I wonder if ** ^* and/or ** ^Inf would be worth noticing. 09:17
RabidGravy m: module Foo { sub foo() is export { } }; import Foo; say &foo::BLURB # what is BLURB refering to here? 09:26
camelia rakudo-moar 63f6fc: OUTPUT«(Any)␤»
mrf ShimmerFairy: If we want to say that ^* and ^Inf are likely a sign that the user is doing something unnecessary then it seems fair to warn them about it. 09:28
RabidGravy "Perl 6: a million characters of helpful error message with some useful code attached" 09:30
09:36 azawawi joined
azawawi hi 09:36
moritz RabidGravy: uhm, nothing? 09:37
RabidGravy eh?
moritz RabidGravy: do you think it should?
m: say &sin::NOTACOSINE
camelia rakudo-moar 63f6fc: OUTPUT«(Any)␤»
RabidGravy no I stumbled on it by accident and just wondered if it was something, like something defined in the code or something 09:38
timotimo azawawi: when you wrote "i'm on it" on the .bat launcher issue, it sounded like "i'm going to fix this", now you're asking "any updates on this one?", i'm confused 09:41
nine timotimo: I don't get it. I changed the line in the optimizer to "if $optype eq 'p6for' && $op.ann('context') eq 'sink' {" yet it still changes both parts of the QAST::Want or none. 09:43
timotimo ah, hehe. 09:44
nine timotimo: aah... I guess that's because of $past.annotate('statement_level', -> { $sinkee.annotate('context', 'sink') });
timotimo as an optimization, we often share QAST objects
azawawi timotimo: i fixed it and nobody merged it... So i was asking when it will be committed... sorry if i was not clear. I will update it :)
nine So if the loop is in sink context, both parts are annotated with sink? 09:45
timotimo that's why sometimes you see QAST nodes getting their children popped out of the children list and replaced, rather than replacing the node itself
on the other hadn
hand*
if we already know the context and have it annotated like that, why does the Want even still exist?
nine I don't know. It's been this way even before the GLR
timotimo tbh, i'm not sure how the for-to-while optimization did the sink detection before :\ 09:46
azawawi timotimo: updated .... thanks :)
nine timotimo: that answers my question of how on earth this could have worked before
09:46 dakkar joined
mrf timotimo: I have added some notes to the PR I created and closed it for now. Will try and work on it later today 09:47
timotimo mrf: cool :)
09:47 espadrine left
nine timotimo: oh it did: if $optype eq 'callmethod' && $op.name eq 'sink' && 09:47
timotimo azawawi: oh, on the web interface i see the commit now 09:48
nine: well, that's looking for the method call; is that how?
so maybe the interesting place to look is what happened for the GLR where the sink method call used to be added?
nine timotimo: I pass the context as annotation to the p6for op. p6for then uses the annotated "context" as method name to call on the result 09:50
timotimo oh, interesting
RabidGravy azawawi, I merged your PR to H::UA manually 'cause it keeps the history cleaner :) 09:51
timotimo so, when you said "i don't get it. [...]", did you mean it doesn't work? or just that the optimizer's output is confusing to you?
nine timotimo: the latter
timotimo does that mean spec tests pass? :D
nine the "&& $op.ann('context') eq 'sink'" certainly helped, but there are still failures 09:52
09:52 g4 joined
timotimo uh oh 09:52
dalek kudo/optimize_for_again: 489fdbf | timotimo++ | src/Perl6/Optimizer.nqp:
WIP for -> loop; doesn't handle value-returning for yet
09:53
kudo/optimize_for_again: 4eb9e1e | (Stefan Seifert)++ | src/Perl6/Optimizer.nqp:
Only optimize for Range to while when looping in sink context
azawawi RabidGravy: im not sure you picked up all the pieces in that commit :) see github.com/azawawi/http-useragent/.../README.md
RabidGravy Hmm. let me try that again 09:55
azawawi is testing most of his modules on his windows box and fixing stuff along the way :)
10:01 TEttinger left
azawawi RabidGravy: re github.com/sergot/http-useragent/t...master/bin ... shouldnt we refactor these scripts to App::HTTP::UserAgent or something like that? 10:03
RabidGravy I'm relaxed about that :) I don't think I've ever used the scripts 10:04
azawawi RabidGravy: rationale, HTTP::UserAgent is the API, those scripts may not be needed to be installed by dependent modules 10:05
10:05 duncan_dmg joined
azawawi RabidGravy: hmm then let us move them to examples/ 10:05
RabidGravy I'd stick an issue, get sergot to decide seeing as it's his module and all ;-) 10:06
azawawi sure
RabidGravy I've made a right pigs ear of rebasing this, I've made the situation I was trying to avoid worse
10:08 yeahnoob left
azawawi RabidGravy: github.com/sergot/http-useragent/issues/112 10:08
RabidGravy: happens that's why i avoid it lol 10:09
azawawi starts reads Perl weekly perlweekly.com/archive/223.html
s/reads/reading/
RabidGravy well it's quite obvious that it was me that screwed up rather than anyone else ;-)
all done now 10:10
azawawi im going to read this in the afternoon think-like-a-git.net/ ... my Git foo is not enough :)
10:11 andreoss joined, espadrine joined
azawawi runs panda install HTTP::UserAgent on linux and windows to make sure everything is ok :) 10:11
10:12 Alina-malina joined
timotimo ugh. the "git for ages 4 and up" video recording was hosted on blip.tv 10:15
huh
opened the video on youtube and one of the first few words (well ... two, really) was "perl six" 10:16
azawawi :) 10:17
RabidGravy feeling a bit blocked at the moment, maybe it's time to start something new 10:23
timotimo played too much minecraft? 10:25
andreoss m: (dir) ==> map slurp 10:27
camelia rakudo-moar 63f6fc: OUTPUT«Cannot call map(Str, Seq); none of these signatures match:␤ (&code, + is raw)␤ in block <unit> at /tmp/zdH9GGNcbn:1␤␤»
dalek kudo/nom: 7c5390b | lizmat++ | src/core/Range.pm:
Little makeover of Range preludes

  - excludes-min/max/infinite are now native ints internally
  - all .new candidates are now one liners for better inlining
10:28
10:28 telex left
timotimo lizmat: does that commit make Range unsubtypable? 10:30
10:30 telex joined
timotimo because submethod BUILD takes positionals there? 10:30
lizmat that didn't change
that's been like that for a *long* time already
timotimo ah, ok 10:31
that's fine, then :)
masak the "Perl Weekly" people seem to have made a sport out of not understanding my macro posts :( 10:32
jnthn morning, #perl6
yoleaux 31 Oct 2015 20:13Z <psch> jnthn: checking $cur_candidate<rwness> in Routine.analyze_dispatch seems to fail the parameter binding too early to still throw Parameter::RW, so i'm not sure where this check should happen
lizmat jnthn o/
gfldex masak: it's not just the perl weekly people :-> 10:33
timotimo masak: oh, is there a link to look at to see it?
masak dunno
gfldex: if you have any ideas how to make the topic more approachable...
I mean, macros are not for everybody. it's taken me a while to get to this point, too. 10:34
mrf \o jnthn 10:36
ShimmerFairy masak: I still have a lot of trouble seeing what macros are useful for (which is at least partially a bootstrapping concern). The best I've come up with is dealing with repetitive code, e.g. a bunch of similar class declarations, or a loop where each iteration needs a different piece of code, as opposed to the more normal "different data" 10:38
lizmat fwiw, I could have used macros in the settings: now I needed to make a script to generate the source I needed
10:38 dayangkun left
masak ShimmerFairy: for a long time, I was at that stage too. 10:38
lizmat masak: tools/build/makeSLICE.pl6 FWIW 10:39
masak ShimmerFairy: it might be good to know that they are good for a number of things, and that I plan to blog about those in due time :)
pdcawley ShimmerFairy: You can do some very weird stuff with scope as well.
ShimmerFairy: inject all sorts of weird and wondrous things into scopes.
ShimmerFairy masak: as an example, in a DLX solver I wrote for hexslide a while back, there was a bit of repetition in populating the board; setting up horizontal and vertical pieces of varying lengths. It was the kind of repetition better served by macros then by awkwardly over-engineering things, as I recall. 10:40
lizmat pdcawley o/
pdcawley lizmat: o/
ShimmerFairy: Yup, that's a really useful aspect of macros.
Lots of lisp forms implemented as macros that boil down to a heavily boilerplated chunk of code that sets a couple or three variables and builds a function. 10:41
lizmat m: say ^10 .elems, 0..^10 .elems # something's off here
camelia rakudo-moar 63f6fc: OUTPUT«100..^1␤»
lizmat m: say ^10 .elems
camelia rakudo-moar 63f6fc: OUTPUT«10␤»
lizmat m: say 0..^10 .elems
camelia rakudo-moar 63f6fc: OUTPUT«0..^1␤»
pdcawley ShimmerFairy: The other place they get useful when you want to fiddle with evaluation order. 10:42
gfldex to answer the question, what some stuff is good for, one needs a time machine :) 10:43
ShimmerFairy masak: Would it be fair to think of macros as the calculus of programming, in a sense? I recall hearing once that algebra is arithmetic with varying numbers, and calculus is algebra with varying formulas (something like that).
So what I mean there is that macros could be seen as "functions with varying code", as opposed to "functions with varying data". 10:44
(you can tell I'm not very good with macros, can't you? :P)
gfldex the following could use some work: rosettacode.org/wiki/Random_number_...%29#Perl_6 10:47
dalek kudo/nom: d99ab18 | lizmat++ | src/core/Range.pm:
Simplify Range.elems
10:49
10:50 donaldh joined
masak ShimmerFairy: distracted; will answer later 10:50
ShimmerFairy no problem, I'm sure macros won't get any _more_ confusing anytime soon :P 10:51
gfldex is there any consensus how references to nieca are to be handled?
in text ment for members of the public that is
lizmat I guess similar to pugs, by now ?
gfldex same question stands for pugs
lizmat ah :-)
"Pugs/Niecza were earlier attempts at implementing the Perl 6 specification. They are currently no longer maintained" 10:52
gfldex i will go and purge rosettacode of outdated intarwebs then 10:54
pdcawley ShimmerFairy: Macros manipulate the parse tree of your program (while said parse tree is being built)
10:55 leont joined 11:01 lucasb joined
gfldex m: gist.github.com/anonymous/fba291c151cc58da708e 11:04
camelia rakudo-moar 7c5390: OUTPUT«This type cannot unbox to a native integer␤ in any at gen/moar/m-Metamodel.nqp:1674␤ in sub sha256 at /tmp/lXzD62K2Gb:43␤ in sub sha256 at /tmp/lXzD62K2Gb:12␤ in block <unit> at /tmp/lXzD62K2Gb:1␤␤»
11:04 dakkar left 11:06 mprelude joined
|Tux| test 50000 36.054 35.946 11:06
test-t 50000 37.328 37.219
11:07 dalek joined, ChanServ sets mode: +v dalek
RabidGravy m: say Version.new("v0.0.1").Str # it may be just may but I'd be happier if there was a way of indicating that this was a string representation of a perl version literal and lose the "v" 11:09
camelia rakudo-moar 7c5390: OUTPUT«v.0.0.1␤»
RabidGravy "just me"
timotimo m: say Version.new("0.0.1").Str 11:10
camelia rakudo-moar 7c5390: OUTPUT«0.0.1␤»
timotimo m: say Version.new("0.0.1").perl
camelia rakudo-moar 7c5390: OUTPUT«Version.new('0.0.1')␤»
timotimo hum.
RabidGravy m: say Version.new("v0.0.1") 11:11
flussence isn't all that fond of the amount of dots v-strings use
camelia rakudo-moar 7c5390: OUTPUT«vv.0.0.1␤»
11:11 kaare_ joined
RabidGravy flussence, you don't need to use that many dots, it's just a convention 11:12
:)
flussence I mean:
m: say $*VM
camelia rakudo-moar 7c5390: OUTPUT«moar (2015.10.14.g.5.ff.3001)␤»
RabidGravy it combs for alpha parts and digit parts
flussence that comes from "2015.10.14-g5ff3001" in git, which is a bit more readable 11:13
RabidGravy It's more spectacularly weird with some more third party version strings 11:14
lucasb Would it make sense to exist a VersionStr?
somethink like: say <1 1.0 1e0 1i v1.0>.perl
just like there are IntStr, etc. 11:15
11:16 dakkar joined
ilmari m: say 'skjærgårdsøl'.encode('ascii').decode('utf8') 11:17
camelia rakudo-moar 7c5390: OUTPUT«skj?rg?rds?l␤»
flussence oh well, the world's not on fire for lack of a perfect solution here, so I'll stop complaining :)
ilmari any chance of getting that fixed for 6.christmasj?
RabidGravy and the world is full of the wrecks of "perfect versioning schemes" 11:18
ilmari IMO .encode should die on unrepresentable characters, and have an adverb for specifying replacement if one wants it (possibly with a sensible default)
11:18 adhoc left
lucasb Can't version objects have a revision attribute instead of splitting g5ff3001 in alphas and digits? 11:18
flussence would probably make more sense to split on punctuation than start trying to account for edge cases like that... 11:20
jnthn ilmari: That's RT #123673, which is on the xmas todo list 11:21
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123673
RabidGravy unfortunately there are probably as many semantic schemes for versioning as there are software projects 11:22
for special cases I'd go with sub-classing Version
ilmari jnthn: ah, cool
dalek kudo/nom: c5c19a5 | lizmat++ | src/core/Range.pm:
Implement Range.intbounds
11:24
11:26 cygx joined
cygx o/ 11:27
psch m: say infix:['Z+'](^4, ^4)
camelia rakudo-moar d99ab1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZA4k6fJQFq␤Undeclared routine:␤ infix:['Z+'] used at line 1␤␤»
psch m: say &infix:['Z+'](^4, ^4)
camelia rakudo-moar d99ab1: OUTPUT«(0 2 4 6)␤»
nine jnthn: just a heads up: I've completed the code restructuring phase of the curli branch and I'm quite positive that I've learned enough along the way to implement the rest. 11:28
cygx so, what do I have to do to make exporting a trait_mod:<is> work with precompilation when using a manual EXPORT sub? 11:29
psch .tell jnthn actually i think i have the rwness check working for moar but not jvm though
yoleaux psch: I'll pass your message to jnthn.
cygx is there anything special I have to do when exporting multi candidates?
jnthn nine: Cool!
yoleaux 11:29Z <psch> jnthn: actually i think i have the rwness check working for moar but not jvm though
11:29 adhoc joined 11:30 _mg_ left
jnthn psch: What did you mean by "too early", ooc? 11:30
cygx: Just labeling the trait_mod "is export" should do it 11:31
psch jnthn: that was a bad test case, actually
jnthn: i had one cand with an Int invocant, and got Multi::NoMatch 11:32
e.g. multi f(Int:D: $a is rw) { "Int" }; multi f(int $a is rw) { "int" }
with f(5) that throws NoMatch, correctly
jnthn Yeah 11:33
That's the right answer :)
I'm not sure how well the multi-dispatcher is handling "is rw" yet though
iirc, when I looked into it, I found the dispatch cache may need tweaking.
psch yeah, that may be 11:34
i noticed yesterday that during failed dispatches i get lots of invocations of the native candidate
as in, i added "note $which-cand-am-i" to the Int and int postfix:<++> candidates
and for 5++, i got around a dozend "int" outputs 11:35
but maybe that's just because we int inc on that path a lot
gfldex m: say 'I can haz massuge?'; say 'a' <=> 'b';
camelia rakudo-moar d99ab1: OUTPUT«I can haz massuge?␤X::Multi::NoMatch exception produced no message␤ in block <unit> at /tmp/0OuD3uqvtl:1␤␤»
11:36 bpmedley joined, Sqirrel_ joined
gfldex is that rakudobug worthy? 11:37
moritz aye
11:37 Sqirrel left
gfldex just LTA or some deeper problem? 11:38
jnthn Yeah, it looks like the error reporting is bust
moritz gfldex: <=> coerces to Numeric, and the coercion fails, and it doesn't properly deal with that 11:39
11:42 abraxxa left
azawawi has anyone worked on `rakudobrew build-zef` ? If not, I am going to work on it :) 11:43
gfldex reported as #126536 11:44
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126536
11:45 finanalyst joined
psch "failed to produce a message" is what i got on jvm when i mis-invoked the throwers from P6EX 11:46
11:46 tokuhirom_h joined
RabidGravy goes with the ugly but worky 11:46
m: class MetaVersion is Version { multi method new(Str() $ver where * ~~ /^v\d+/) { my $v = $ver; $v ~~ s/^v//; self.new($v) } }; say MetaVersion.new("v0.0.1").Str
camelia rakudo-moar d99ab1: OUTPUT«0.0.1␤»
timotimo oh wow. 11:48
i dreaded having to "repair" my computer
turns out all i had to do was wiggle some cables
it's probably time to run a good backup ...
lizmat
.oO( it's *always* time to run a good backup)
11:48 xpen left
psch m: say cis(1.1) 11:49
camelia rakudo-moar d99ab1: OUTPUT«0.453596121425577+0.891207360061435i␤»
11:49 rindolf joined
timotimo the words "oh no! he was one day from retirement!" come to mind 11:49
11:50 tokuhirom_h left
psch m: my $x; ++++$x # this one is kind of troublesome on jvm 11:55
camelia rakudo-moar c5c19a: OUTPUT«Parameter '$a' expected a writable container, but got Int value␤ in block <unit> at /tmp/0NXb3v2tBV:1␤␤»
dalek p: 7710de0 | jnthn++ | src/HLL/Compiler.nqp:
Fix thinko in \r\n -> grapheme prep.

Need to use double quotes for a \r, not single.
psch 'cause the place where we'd have to throw Parameter::RW is in RakudoContainerSpec.store
well, except if i'm missing some earlier spot to catch it 11:56
jnthn psch: Yeah, should be able to do an isrwcont check in the binder
src/Perl6/Metamodel/BOOTSTRAP.nqp:404 is where we do it for Moar's
psch jnthn: i have adapted that, but i must've done something insufficiently, 'cause with my adaption it still went through to store 11:57
but then my adaption also still threw AdHoc "expected a native int" for int $x; $x++... 11:58
so yeah, definitely a lot missing :S
the hard part for me is figuring out where to draw the line between "this is optimizer/inlining" and "this is jvm Binder" 11:59
12:03 Oatmeal left 12:04 donaldh left
gfldex m: my $a = 0; 'abc'.substr(-$a).say; 12:08
camelia rakudo-moar c5c19a: OUTPUT«abc␤»
gfldex ^^^ heisenwarning
llfourn m: my ($a,*@b) = flat (1,[2,3]); say @b; # can't get this to DWIM 12:10
camelia rakudo-moar c5c19a: OUTPUT«[]␤»
llfourn m: my ($a,*@b) = (1,[2,3]); say @b; # can't get this to DWIM 12:11
camelia rakudo-moar c5c19a: OUTPUT«[[2 3]]␤»
llfourn lets say the RHS is being returned from a sub and have no control over it, how to put the first in $ and the rest in @
without double arraying 12:12
jnthn m: my ($a, @b) := (1,[2,3]); say @b
camelia rakudo-moar c5c19a: OUTPUT«[2 3]␤»
llfourn swears he tried that
ahhh :=
psch m: my ($a, @b); with (1,[2,3]) -> @ [$x, *@y] { $a = $x; @b = @y }; say @b # the long way around 12:13
camelia rakudo-moar c5c19a: OUTPUT«[2 3]␤»
llfourn jnthn: thats strangely consistent :)
psch: I am not even sure I have seen that syntax before :P 12:14
with ( .. ) -> @ [ <=== what it that
jnthn heh, cute :)
psch m: sub f(@ [$x, @xs]) { say $x; say @xs }; f [1,2,3,4]
jnthn Both use the signature binder, fwiw
camelia rakudo-moar c5c19a: OUTPUT«cannot stringify this␤ in sub f at /tmp/tNR22aId16:1␤ in block <unit> at /tmp/tNR22aId16:1␤␤»
psch huh
jnthn m: sub f(@ [$x, *@xs]) { say $x; say @xs }; f [1,2,3,4] 12:15
camelia rakudo-moar c5c19a: OUTPUT«1␤[2 3 4]␤»
psch oh, right, has to slurp
jnthn That looks like an error reporting fail
12:15 Oatmeal joined
psch llfourn: "array unpacking" is how i've heard it called usually 12:15
psch forgot how the general unpack worked
llfourn psch: I see so you have this floating '@' in the signature... 12:16
psch llfourn: yeah, it's just an anonymous array
m: my ($a, @b); with (1,[2,3]) -> @all [$x, *@y] { say @all; $a = $x; @b = @y }; say @b
camelia rakudo-moar c5c19a: OUTPUT«(1 [2 3])␤[2 3]␤»
gfldex m: my ($a, @b); with (1,[2,3]) -> [$x, *@y] { $a = $x; @b = @y }; say @b 12:17
camelia rakudo-moar c5c19a: OUTPUT«[2 3]␤»
psch hm, should shapes give us a segmentation there?
e.g. -> [@a[3], @b[9]]
jnthn psch: Some day, though doubt we'll make that feature by 6.c 12:18
gfldex i would prefer a warning
RabidGravy before I try and fail miserably, would setting the STORE of a Proxy to a multi work?
12:19 kjs_ left
llfourn m: my ($a, @b); with (1,[2,3]) -> [$x, *@y] { $a = $x; @b = @y }; say @b; 12:20
camelia rakudo-moar c5c19a: OUTPUT«[2 3]␤»
llfourn psch: works without the floating '@'... 12:21
timotimo RabidGravy: i think it should; otherwise: rakudobuggable :)
psch llfourn: yes. to me, the explicit array just makes it more visible what happens - as in, that's how i remember i'm doing array unpacking 12:22
12:23 _mg_ joined
llfourn psch: got it thanks :) 12:23
RabidGravy timotimo, let me see what happens
llfourn gains ability 'array unpacking'
cygx jnthn: I could not get exporting to work and had to pull out the multi candidate intp its own .pm file 12:24
timotimo RabidGravy: i mean, it's just a callable you're installing ... isn't it? 12:25
12:27 abraxxa joined
llfourn is there any way to do like python: my (_, @b) := (1,[2,3]); 12:27
timotimo you mean discard something?
llfourn ie junk the first element returned
yes
jnthn llfourn: $
timotimo you can just assign it to $ i believe
llfourn thanks! 12:28
m: my ($, @b) := (1,[2,3]); say @b # but looks like it won't work here :( 12:29
camelia rakudo-moar c5c19a: OUTPUT«[2 3]␤»
llfourn ...or will it... :D
m: ($, my @b) := (1,[2,3]); say @b # I was doing this 12:30
camelia rakudo-moar c5c19a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FC_l1GJurN␤Cannot use bind operator with this left-hand side␤at /tmp/FC_l1GJurN:1␤------> 3($, my @b) := (1,[2,3])7⏏5; say @b # I was doing this␤»
llfourn m: ($, my @b) = (1,[2,3]); say @b # which works without := 12:31
camelia rakudo-moar c5c19a: OUTPUT«[[2 3]]␤»
jnthn my ($, @b) := ...
llfourn jnthn: yes :)
psch FSVO works - you get a nested array like that
jnthn The (...) there is parsed as a signature
12:32 abraxxa left
jnthn So it's same as how to discard args 12:32
sub second($, $a) { $a }
cygx if I may do say so myself, I'm pretty pleased how the refactor of the TinyCC module is shaping up: github.com/cygx/p6-tinycc/blob/v2/t/01-sanity.t
llfourn jnthn: yes it's once again strangely consistent :) 12:33
12:37 duncan_dmg left, aborazmeh joined, aborazmeh left, aborazmeh joined
psch hrm, i must be missing something 12:38
m: with :1a -> Pair $ (:$key, :$value) { say $key, $value }
camelia rakudo-moar c5c19a: OUTPUT«a1␤»
psch m: class A { method foo { "foo" }; method bar { "bar" } }; with A.new -> A $ (:$foo, :$bar) { say $foo, $bar }
camelia rakudo-moar c5c19a: OUTPUT«(Mu)(Mu)␤»
psch is unpacking only for Attributes?
12:38 duncan_dmg joined
timotimo doesn't it also work for hashes? 12:38
psch timotimo: well, that and hashes excepted... :) 12:39
12:39 kjs_ joined
psch so, the general, object unpacking 12:39
timotimo :)
12:39 doublec joined
timotimo isn't it supposed to work for all methods? 12:39
jnthn No, attributes 12:40
psch i'm not sure, design is a bit dense for my taste on this
ah, alright
jnthn Though you're free to write custom accessors
timotimo oh? didn't know
jnthn So long as you declare the attrs with has $.foo
12:46 abraxxa joined 12:48 leont left
psch jnthn: the Optimizer doesn't have the actual args, but only the types, does that mean trial_bind should bail on SIG_ELEM_IS_RW or should the Optimizer try to figure out if we know it's a container? 12:53
jnthn psch: I'd bail for now
psch jnthn: that also means we don't need any rwness check in analyze_dispatch yet, iiuc 12:55
jnthn psch: Yeah; I think it's probably easiest to just refuse to analyze such things for the moment
psch: 'cus it needs a little more design work 12:56
12:56 woolfy joined
jnthn (on the containerness stuff) 12:56
psch alright, i'll try and get this working for moar first, and then see if i can port it correctly too
woolfy At the bottom of doc.perl6.org/language/5to6-nutshell it says "Generated on 2015-11-01T17:57:36Z from Language/5to6-nutshell.pod from perl6/doc on GitHub." The link github.com/perl6/doc/raw/master/li...tshell.pod gives a 404 error. I don't know who to report this to. 12:57
timotimo needs to be raw.githubusercontent.com/perl6/do...tshell.pod 12:58
i.e. change lib to doc
jnthn psch: fwiw, the trial bind logic doesn't really need to be written in Java, so you might look to see if you can't use the NQP impl of it that Moar has
(The normal binding kinda does for performance)
psch well, in this specific case it appears the change is simple enough and easily portable, but yeah, i suppose i can try to unify them to the BOOTSTRAP.nqp impl of trial_bind 12:59
13:00 aborazmeh left
masak ShimmerFairy: yes, macros as functions with "varying code" is exactly right 13:01
RabidGravy timotimo, yep that works 13:03
m: gist.github.com/jonathanstowe/8a7f...b0586b5027
camelia rakudo-moar c5c19a: OUTPUT«v0.0.1␤v0.0.1␤»
azawawi github.com/tadzik/rakudobrew/pull/64 # rakudobrew build-zef :) 13:04
RabidGravy azawawi++ # on a rol
l
azawawi RabidGravy: rol\rl or rol\r\nl ? :) 13:05
RabidGravy: thx :)
psch S17-procasync hangs are annoying :/ 13:06
azawawi RabidGravy: lwpcook idea for H:U:A is great imho. RabidGravy++ 13:07
ShimmerFairy masak: I think the problem I have is that they're on such another level it's hard to comprehend where they'll happen. I did run into needing them when fiddling with elisp once, but elisp didn't seem nearly as manipulexitous as Perl 6 :)
(Whereas in contrast I feel Perl 6 has a great deal of manipulexity before you even consider macros, so the place where macros come into play feels just that much more out of reach) 13:08
13:08 tokuhirom_h joined
arnsholt Macros can be very useful 13:09
But they also introduce a whole new way things can go wrong
In Lisp, I've been told that a common beginner mistake is to reach for macros too quick
gfldex m: my $date = DateTime.new(2015-13-32); # <-- I would like to have a macro to a) make that work and b) fail at compile time
camelia ( no output )
ShimmerFairy Sure, I've no doubt :) . I can't help but feel that if I took the time to learn a non-lisp that had real macros, I'd be much better at understanding them. I just keep hoping that language could be Perl 6 instead :P 13:10
13:13 tokuhirom_h left
psch uhm, what's with S32-num/complex.t? "Bad plan. You planned 488 tests but ran 89." 13:14
timotimo a crash? 13:15
or some kind of exception thrown in the middle of it
psch hm, this is weird
standalone it works 13:16
13:16 leont joined
psch ah, it's the indeterministic "Method 'Int' not found for invocant of class 'Any'" 13:16
lizmat m: -5i .. 5i 13:19
camelia rakudo-moar c5c19a: OUTPUT«WARNINGS:␤Useless use of ".." in expression "-5i .. 5i" in sink context (line 1)␤»
masak ShimmerFairy: yes, that is also right. it's like Perl 6 is already flexible enough that (compared to other languages) you're tempted to reach for macros much, much later. 13:20
ShimmerFairy: the counterargument to that is this, though: it's not like we're short on complexity that needs to be tackled! macros may be high on the solution ladder, but the ladder is also very tall.
lizmat m: -5i .. ^5i
camelia rakudo-moar c5c19a: OUTPUT«WARNINGS:␤Useless use of ".." in expression "-5i .. ^" in sink context (line 1)␤Can not convert 0+5i to Real: imaginary part not zero␤ in block <unit> at /tmp/FL2rkCHH_g:1␤␤Actually thrown at:␤ in block <unit> at /tmp/FL2rkCHH_g:1␤␤»
lizmat hmmmm
ShimmerFairy masak: Yeah, I've certainly run into situations where, say, having a class-generating macro that I could pass a list of names to, instead of manually defining each class, would be nice. It's just that I don't often run into the slang/macro area of problems :) 13:21
dalek kudo/nom: 76391ca | peschwa++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Refuse to compile-time bind subs with rw parameters.
13:22
masak ShimmerFairy: re "algebra" vs "calculus" -- I've also heard various definitions like that, but I think they're more conventions than strict categories. for example, abstract algebra contains a whole lot of symbols!
ShimmerFairy: and lambda calculus could just as well have been called "lambda algebra", IMO.
timotimo for some reason i get twitter mails "for businesses" with cheerful subjects like "followers today --> customers tomorrow" 13:23
ShimmerFairy masak: sure, what I heard I internalized as "arithmetic = playing with numbers. algebra = now we generalize the numbers. calculus = now we generalize the formulas", but I certainly don't think it's a hard-n-fast rule :)
masak lizmat: please don't make complex numbers do something funky with prefix:<^> ;) 13:24
lizmat I was going to give them the same treatment as Reals ?
13:24 Sqirrel_ left, Sqirrel joined
masak lizmat: "the same treatment"...? 13:24
lizmat or should we just forbid Ranges with Complex ?
masak lizmat: the latter seems prudent/conservative to me. 13:25
lizmat well, you can't iterate over them, but you can get the bounds
13:25 xpen joined
masak oh, hm. 13:25
I have no opinion on that, then.
m: class B {}; say B.new .. B.new
camelia rakudo-moar c5c19a: OUTPUT«B.new..B.new␤»
masak lizmat: fine by me ;)
lizmat++ # thinking the impossible :)
timotimo well, there's no problem with iterating over -5i to +5i by one i each time 13:26
masak ShimmerFairy: actually, "calculus" just means "pebble" :P
ShimmerFairy As soon as you can tell me if -5i is less than +5i, I'd be OK with -5i..5i :P
lizmat ok, closing that pit for now: going to outlaw Complex as endpoints, just like Range and Seq 13:27
timotimo right
ranges should very much be about orderable things
masak we don't have a first-class concept of "orderable", though 13:28
13:28 ollej left
masak m: say False..True 13:28
camelia rakudo-moar c5c19a: OUTPUT«Bool::False..Bool::True␤»
timotimo that's right :\
so only allow Range with Int, Num, Rat :)
nine False and True are actually Ints in Perl 6
So there is order there 13:29
masak m: say Less..More
camelia rakudo-moar c5c19a: OUTPUT«Order::Less..Order::More␤»
timotimo order! i will have order!!
masak m: say Less < More 13:30
camelia rakudo-moar c5c19a: OUTPUT«True␤»
13:30 Woodi joined
masak m: say Less < Same < More 13:30
camelia rakudo-moar c5c19a: OUTPUT«True␤»
ShimmerFairy m: say Less ~~ More 13:31
camelia rakudo-moar c5c19a: OUTPUT«False␤»
ShimmerFairy Turns out less isn't more :/
13:31 leont left
masak it's more of a figure of speech. 13:31
woolfy timotimo: "needs to be raw.githubusercontent.com/perl6/do...shell.pod" -> lizmat tells me she can adapt the link
psch m: say Less..More .list 13:32
camelia rakudo-moar c5c19a: OUTPUT«Order::Less..1␤»
psch m: say (Less..More) .list
camelia rakudo-moar c5c19a: OUTPUT«(-1 0 1)␤»
nine
.oO( language constructs explained with Perl 6 )
psch m: say abs Less == More 13:33
camelia rakudo-moar c5c19a: OUTPUT«0␤»
psch m: say abs(Less) == More
camelia rakudo-moar c5c19a: OUTPUT«True␤»
ShimmerFairy masak: I figure the speech is wrong :P
psch Less is absolutely More... vOv
timotimo masak: you're a figure of speech yourself, if you don't mind my saying
psch actually, "Less absolutely is More" is probably preciserer
ShimmerFairy psch: "In an absolute sense, less is in fact more" 13:34
azawawi quick q, with the new filesystem, will stacktrace be modified back to original module names?
in submethod BUILD at /home/azawawi/.rakudobrew/moar-nom/install/share/perl6/site/3:31 # rather odd 13:35
13:35 cygx left
timotimo that'd be nice 13:35
psch ShimmerFairy: that's probably the precisest 13:36
dalek c: bba2bfc | lizmat++ | lib/Pod/Htmlify.pm6:
Fix source-url, spotted by woolfy++, timotimo++
timotimo also, $*PROGRAM_NAMe or which it is ... :)
whichever gets output in the $?USAGE 13:38
azawawi rakudobrew + perl6 weirdness... looking into it 13:39
13:39 Sqirrel left
lucasb perl6 --ll-exception ... |& sed "s|$HOME/\.rakudobrew/moar-nom/install/share/||" 13:40
^^ I remember to have put this in some script...
to short the long pathnames
13:40 ely-se left
dalek kudo/nom: 7f6396d | lizmat++ | src/core/Range.pm:
Complex numbers are no valid endpoints for Ranges
13:42
kudo/nom: ae4bafe | lizmat++ | src/core/Range.pm:
Kebab-case smashcased intbounds, ab5tract++
13:44 Sqirrel joined 13:45 ely-se joined 13:46 khw joined 13:49 AlexDaniel joined 13:50 robinsmidsrod joined 13:51 Sqirrel left
azawawi interesting on windows 7 and later, you have 'where $executable-name' to replace which 13:52
WHERE /R c:\windows *.exe *.dll *.bat # interesting 13:53
where /R "c:\Program Files (x86)" firefox.exe # since firefox is not in PATH... go figure lol 13:56
[Coke] thought: we should have a document ship with p6c that lists what things are still known to be experimental so we can more easily change them when needed (like macros) 13:57
RabidGravy sounds like a plan 13:59
14:05 adu joined, abraxxa left
dalek ast: 733886c | lizmat++ | S03-operators/range-basic.t:
Simplify a lot of tests, add some more

Result is actual fewer tests reported, but more tests done, thanks to the magic that is subtest {} !
14:06
ast: 3eab3f3 | lizmat++ | S02-types/range.t:
Follow Range.perl changes
14:06 cygx joined 14:07 sprocket joined
cygx github.com/cygx/p6-tinycc/commit/4...49a04af443 # no comment 14:07
timotimo that's adorable 14:08
14:08 pmurias joined 14:09 n0tjack joined
pmurias what does #~ mean in the rakudo code base? I see it in src/Perl6/Metamodel/DefiniteHOW.nqp? 14:10
jnthn: do you think using cross-compiling for rakudo-js is sane? (until nqp-js is of comparable speed to nqp-m)
jnthn: or will it just get me into trouble and I should just work on getting nqp-js faster 14:11
timotimo i suppose that's how FROGGS' editor comments out stuff?
jnthn pmurias: I'd be a bit hesitant in so far as you need BEGIN time to work 14:13
nine pmurias: that's really just comments.
jnthn pmurias: And my gut feeling is that you might run into issues
(If not bootstrapped)
You'd make it through the build up to BOOTSTRAP.nqp without issues, I suspect 14:14
14:14 sprocket left
llfourn m: .say for &postcircumfix:<{ }>.candidates; 14:15
camelia rakudo-moar 76391c: OUTPUT«sub postcircumfix:<{ }> (\SELF, \key) { #`(Sub|38262536) ... }␤sub postcircumfix:<{ }> (\SELF, \key, Mu \ASSIGN) { #`(Sub|38258128) ... }␤sub postcircumfix:<{ }> (\SELF, \key, Mu :$BIND! is raw) { #`(Sub|38261320) ... }␤sub postcircumfix:<{ }> (\SELF…»
14:15 azawawi left
llfourn I get "Method 'iterator' must be implemented by Iterable because it is required by a role" at the end of that 14:15
14:16 tokuhirom left 14:17 adu left
ilmari m: .perl for &postcircumfix:<{ }>.candidates; 14:18
camelia rakudo-moar 76391c: OUTPUT«Method 'iterator' must be implemented by Iterable because it is required by a role␤ in any compose_method_table at gen/moar/m-Metamodel.nqp:2661␤ in any apply at gen/moar/m-Metamodel.nqp:2671␤ in any compose at gen/moar/m-Metamodel.nqp:2807␤ in…»
14:18 sprocket joined
pmurias what should I use to measure nqp-js optimalizations? 14:18
llfourn ilmari: there you go :)
ilmari the missing bit of the stack trace is: in any make_pun at gen/moar/m-Metamodel.nqp:1639, in any find_method at gen/moar/m-Metamodel.nqp:1667 14:19
jnthn pmurias: For profiling, or what benchmark? 14:20
14:20 kjs_ left
jnthn pmurias: If you're mostly concerned with compile time, then I'd profile compiling one of the NQP source files, if that ain't too much data. 14:21
llfourn ilmari: what do you mean? :)
ilmari: ah nvm --ll-exception I see it 14:22
ilmari llfourn: the bit that camelia didn't output 14:23
pmurias jnthn: for the start I'm more concerned about just having a number that so that I can check if the code nqp-js spits outs is getting faster 14:26
timotimo cygx: can you tell me why you chose Empty instead of just "" for your add method thingie there?
pmurias: does perl6-bench already know how to build nqp-js?
pmurias jnthn: just compiling something with nqp-js-compiled-to-js seems like a decent start
lizmat m: say "a".."z" ~~ "a" .. "z" # shouldn't this just work ? 14:27
camelia rakudo-moar ae4baf: OUTPUT«X::Multi::NoMatch exception produced no message␤ in block <unit> at /tmp/Tkp8JvImIS:1␤␤»
pmurias timotimo: not yet
llfourn m: .signature.params[0].perl for &postcircumfix:<{ }>.candidates
camelia ( no output )
14:27 kjs_ joined
llfourn m: .signature.params[1].perl for &postcircumfix:<{ }>.candidates 14:27
camelia rakudo-moar ae4baf: OUTPUT«Method 'iterator' must be implemented by Iterable because it is required by a role␤ in any compose_method_table at gen/moar/m-Metamodel.nqp:2661␤ in any apply at gen/moar/m-Metamodel.nqp:2671␤ in any compose at gen/moar/m-Metamodel.nqp:2807␤ in…»
pmurias timotimo: how do I make it benchmark nqp-js?
timotimo pmurias: perhaps adding it to compiler.json and components.pl would be a good start?
llfourn ilmari: something wrong with the 2nd argument of one of them :P
timotimo cygx: never mind, i get it now 14:30
lucasb llfourn: this happens when something tries to 'say' Iterable. Iterable is a role, so it tries to auto-pun itself before any method on it will work. It fails because it needs a 'iterator' on the composing class. 14:31
timotimo lucasb: can easily be solved by giving every empty class an "iterator" method! 14:32
14:32 cognominal joined
llfourn lucasb: In this case one of the params is iterable? (it happens with just .perl instead of say) 14:32
lucasb I think this happens with any method 14:33
dalek kudo/nom: 42922fb | lizmat++ | src/core/Range.pm:
Streamline Range.perl/gist for better readability
kudo/nom: 939e5c9 | lizmat++ | src/core/Range.pm:
Remove thinko from Range.Str
lucasb m: Iterable.oh-hai
camelia rakudo-moar ae4baf: OUTPUT«Method 'iterator' must be implemented by Iterable because it is required by a role␤ in any compose_method_table at gen/moar/m-Metamodel.nqp:2661␤ in any apply at gen/moar/m-Metamodel.nqp:2671␤ in any compose at gen/moar/m-Metamodel.nqp:2807␤ in…»
llfourn m: .signature.params[0,2..*].perl for &postcircumfix:<{ }>.candidates #works 14:35
camelia ( no output )
llfourn m: .signature.params.perl for &postcircumfix:<{ }>.candidates #fails
camelia rakudo-moar ae4baf: OUTPUT«Method 'iterator' must be implemented by Iterable because it is required by a role␤ in any compose_method_table at gen/moar/m-Metamodel.nqp:2661␤ in any apply at gen/moar/m-Metamodel.nqp:2671␤ in any compose at gen/moar/m-Metamodel.nqp:2807␤ in…»
llfourn ^^ why I thought it's a param that's causing it
lucasb: but thanks for the info lucasb++ 14:36
14:41 sprocket left
llfourn lucasb: yep the routine that fails has the sig: (Any Iterable) 14:43
14:43 sprocket joined
llfourn .signature.params.map({ .type.^name } ).say for &postcircumfix:<{ }>.candidates 14:44
14:49 sprocket left
lizmat is preparing the Perl 6 Weekly again 14:49
14:49 n0tjack_ joined
lizmat let me know of anything newsworthy that you think I might have missed ! 14:49
dalek c: 258a6ae | (Ronald Schmidt)++ | doc/Language/classtut.pod:
Update classtut.pod

Fix partially broken link to section of objects doc.
14:50
14:51 n0tjack left 14:52 TimToady left, Alina-malina left
jnthn lizmat: My main news was correcting the NFG algo (mostly done except the \r\n case) 14:53
lizmat that's the headline already :-)
jnthn m: my $a = 0; ++$a++
camelia rakudo-moar ae4baf: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VEbDb2Kq3h␤Operators '++' and '++' are non-associative and require parentheses␤at /tmp/VEbDb2Kq3h:1␤------> 3my $a = 0; ++$a++7⏏5<EOL>␤ expecting any of:␤ postfix␤»
jnthn That non-assoc error I did too
timotimo the headline is "lizmat: My main news was correcting the NFG algo (mostly done except the \r\n case)"?
jnthn m: /^+/
camelia rakudo-moar ae4baf: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PbgNCj2mXg␤Can only quantify a construct that produces a match␤at /tmp/PbgNCj2mXg:1␤------> 3/^+7⏏5/␤ expecting any of:␤ term␤»
timotimo don't make it that, that's just weird
jnthn And that :)
lizmat 2015.45 Grapheme Clustering
14:53 TimToady joined
timotimo i bet you also saw the literal mistype thing 14:54
14:54 n0tjack_ left
lizmat yep, also mentioned already :-) 14:54
14:55 skids joined
jnthn
.oO( litreal mistype )
14:56
14:56 g4 left
dalek kudo/nom: 385850b | lizmat++ | src/core/Range.pm:
Streamline Range.iterator

Possible since $!excludes-min and $!excludes-max have sensible int values.
14:58
llfourn lizmat: you can now search for control flow stuff like 'if','given' in docs if that rates a mention... 14:59
14:59 pmurias left
lizmat llfourn: cool, I did miss that :-) 14:59
but first, some cycling while the sun is still out& 15:00
timotimo cycle the sun back in!
nine lizmat: I'd be happy if you mentioned my YAPC talks video: niner.name/talks/YAPC2015-Granada-N...-HD720.m4v
15:01 pmurias joined
RabidGravy the fog has finally lifted in merry old London 15:02
dalek c: a481420 | (Lloyd Fournier)++ | doc/Language/control.pod:
if got missed out of X<>
15:04
llfourn ...now you actually can search for if :P 15:05
(when it gets rebuilt)
TimToady yawns after 5 hours of sleep, and plans to take a siesta later... 15:11
[Coke] nine: that's a hell of an opener. 15:15
nine [Coke]: err....what do you mean? :) 15:16
[Coke] I have the volume down low as I'm in an office sans headphones, but it sounded like something about rolling around naked in teh snow. Perhap I need my ears checked.
PerlJam Coke: he was *dancing* and *half* naked :) 15:17
flussence I'm confused; RAKUDO_MODULE_DEBUG=1 tells me "." (and "blib") is in @?INC by default (and the code agrees), but I'm getting an error because it turns out it's not. 15:19
[Coke] PerlJam: well then! 15:20
nine At least I can't remember any rolling ;) 15:21
15:22 tokuhirom joined 15:24 xpen left
TimToady What is this stuff coming down from the sky? It reminds me of something we used to see around here sometimes... 15:24
Oh yeah, I think it's called rain.
One of those rare meteorological phenomena you read about but rarely see. 15:25
If you're Californian...
nine TimToady: stuff coming down from the sky? Now you're dreaming 15:26
PerlJam move to Texas and you'll see more than you want to for a while
masak 'night, #perl6
PerlJam masak: g'night
15:27 isacloud_ joined, tokuhirom left 15:28 timo joined 15:29 timo is now known as Guest80685, robins joined, pmurias_ joined 15:30 itz_stmu1 joined, kipd_ joined, smash_ joined, b^_^d joined, erdic_ joined, lucs_ joined 15:31 ely-se left, cxreg2 joined 15:32 mattp_ left 15:35 pmurias left, robinsmidsrod left, finanalyst left, Jonis left, integral left, smash left, dustinm` left, erdic_ is now known as erdic, mattp_ joined, dustinm` joined
dalek p: cc97cd9 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for improved line reading.
15:35
p: d70e1a0 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map readlinechompfh and setinputlineseps on Moar.
15:37 isacloud_ is now known as isacloud
dalek p: 5f82f9e | jnthn++ | t/moar/03-line-seps.t:
Tests for multi-char seps and chomped readline op.

Just for MoarVM; porting this functionality to JVM is an open task for anyone interested.
15:37
p: 0cbc4cd | jnthn++ | / (2 files):
Harden tests in prep for \r\n -> 1 grapheme.
15:38 kipd_ is now known as kipd 15:40 robins is now known as robinsmidsrod
lucasb Someone interested will have the amazing oportunity of doing the task 15:41
15:41 salva joined
lucasb j/k :) 15:42
15:42 finanalyst joined 15:43 softmoth joined
jnthn delegates what he can... :) 15:43
15:44 xpen joined, pdcawley left
jnthn Seems I've fixed RT #122971 :) 15:44
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=122971
15:45 Sqirrel joined
pmurias_ jnthn: It's great where there is a bunch of fun/bite-sized tasks around 15:45
15:46 pmurias_ is now known as pmurias, sprocket joined, clkao joined
jnthn pmurias: I guess you'll want to do those for js too ;) 15:47
15:47 hoelzro joined, pdcawley joined
pmurias jnthn: I'm rebuilding nqp and getting to work on that right know 15:47
hoelzro o/ #perl6 15:48
15:50 Sqirrel left, kjs_ left 15:52 n0tjack joined 15:55 yqt joined 15:57 kjs_ joined
jdv79 how come there seems to be a diff between the scope of the imported symbols from a use and a require in the same spot? 15:57
oh, nm 15:58
pmurias hoelzro: hi
hoelzro o/ pmurias
pmurias jnthn: the change to version 16 of the serialization format for MoarVM happened in April? 15:59
jnthn pmurias: Sorry, I don't know without looking at the git history 16:00
(git log src/6model/serialization.c should be revealing)
jdv79 is require broken? i feel like this particular worked not long ago.
hoelzro pmurias: I take it nqp-js doesn't like the new serialization format?
jdv79 *particular code 16:01
pmurias hoelzro: updating it should be a big problem
hoelzro =(
pmurias * shouldn't
hoelzro I can maybe help with it, since I handled the 13 → 14 and 14 → 15 changes
pmurias I'm just confused why it popped up right now when it happend a few months ago
hoelzro oh, good =)
16:01 cygx left
hoelzro maybe something wasn't writing out in v16? 16:01
or it has something to do with NQP bootstrap? 16:02
16:02 pdcawley left, uruwi left
hoelzro oh, that *is* interesting; v16 came out in April? 16:03
16:03 Alina-malina joined 16:07 integral joined
jnthn Anyone know anything about the "Method 'Int' not found for invocant of class 'Any'" hiesenbug? 16:08
dalek rl6-roast-data: 0535d8a | coke++ | / (9 files):
today (automated commit)
pmurias hoelzro: that's what I gather from the git log 16:09
hoelzro: (that it came out in April)
dalek kudo/nom: 273e895 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for line reading improvements.

MoarVM can now handle multi-char separators, which we get with this bump without doing anything further. Also makes available support for multiple separators and chomping them at VM level.
[Coke] jnthn: only that i tripped over it.
dalek ast: b709a7c | jnthn++ | S16-filehandles/io_in_while_loops.t:
Test for RT #122971.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=122971
jnthn [Coke]: Yeah, I get it on only some runs :/
[Coke]: What platform you hit it on?
itz_stmu1 error: short SHA1 38585 is ambiguous. 16:10
[Coke] all those JVM tickets recently were most recently tested on OS X.
itz_stmu1 never seen that before!
16:10 itz_stmu1 is now known as stmuk
[Coke] github.com/coke/perl6-roast-data/b...ummary.out is the last run on hack.p6c.org 16:10
dalek c: d5b6854 | (Lloyd Fournier)++ | doc/Language/modules.pod:
fix typos in modules.pod
16:11
jdv79 gist.github.com/anonymous/e45bf78f9e29adf16633
what's wrong there?
hoelzro I'm wondering if github.com/MoarVM/MoarVM/blob/mast...on.c#L1672 has something to do with it
(the nqp-js issue)
jnthn [Coke]: Wait, you got the method Int on Any error on JVM too?
16:11 _mg_ left 16:12 xpen left
[Coke] ... I may be confusing my b00gs. 16:12
pmurias hoelzro: nqp-js issue? you mean the random js code disappearing?
16:12 mattp_ left
jnthn [Coke]: Yeah, I don't see it in github.com/coke/perl6-roast-data/b...ummary.out 16:12
hoelzro pmurias: I mean the serialization format issue
[Coke] jnthn: apologies. 16:13
16:13 mattp_ joined
[Coke] I blame my 2.5 hours of sleep last night! 16:13
jnthn np
And, ouch!
hoelzro yeah, there is a lot of if(version <= 15) { /* use int */ } else { /* use varint */ } code in serialization.c 16:14
I'm guessing that if the else branches are ported over to deserialization.js, nqp-js will build once again
jdv79 lizmat: maybe. for now i'm just "new and clone"ing to do what i want
lizmat: maybe at a perf stage that might be better... idk. 16:15
JimmyZ <= 15 is for boostrap code ..
pmurias hoelzro: the way strings are serialized changed, I'm working on that rcurrently
jnthn pmurias: fwiw, I expect to do an NQP re-bootstrap shortly
nine jnthn: I've seen that heisenbug on Linux, too
jnthn OK, good...can Valgrind it at least then :) 16:16
bbi5
jdv79 anyone get what's going on with the gist above? seems simple enough.
dalek ast: 6d74106 | coke++ | S05-modifier/counted.t:
slight fudge for jvm

  (needs more)
16:17 xfix joined
jdv79 hmm. require Foo; seems to require a sym lookup to use that stuff as in ::('Foo').new instead of Foo.new - seems wrong 16:19
hoelzro pmurias: I did a bunch of similar work for the merge a little while back; BinaryCursor.prototype.locate_thing does something like the new string reading code, iirc
PerlJam jdv79: require is run-time, there is no Foo symbol for the Foo.new at compile-time. 16:20
jdv79 i suspected that was it 16:21
PerlJam jdv79: you'd have to do something like BEGIN require Foo; or require Foo; need Foo;
jdv79 the whole point is late loading though at runtime
16:22 lucasb left
jdv79 for this use at least. hmm 16:22
moritz jdv79: iirc it's supposed to install a symbol Foo anyway
jnthn moritz: What could it install? 16:23
moritz jdv79: TimToady++ complained about the other day
jdv79 i guess i'm remembering it wrongly then
p5ism
moritz jdv79: a container holding Any, for example?
sprocket if i start running a p6 program as the user, can i drop privileges to a regular user simply by setting the $*USER var? 16:24
16:25 pdcawley joined, _Ven joined
ilmari Cannot modify an immutable IdName 16:26
_Ven hoy, #perl6! 16:27
sprocket apparently not, as it’s immutable. is there a setuid/setgid?
moritz sprocket: I don't think so; though you could always call it via NativeCall
sprocket: compare doc.perl6.org/language/nativecall#C...rd_library
sprocket moritz: ah ok. is that something that’d be provided later via a POSIX lib?
moritz sprocket: presumably, yes 16:28
sprocket moritz: great, ok, thanks!
pmurias hoelzro: like most finds in the new serialization it seems to be similiar but slightly different 16:29
16:29 n0tjack left
hoelzro yeah, it seems to primarily use varints instead of int32s in many places 16:30
jnthn Mostly thanks to nwc10++'s work to shrink the serialized size of things :)
RabidGravy nwc10++ # anyway
16:36 sprocket left 16:37 diana_olhovik_ left
RabidGravy I was going to ask sprocket how much they wanted that, could be a few minutes to knock together 16:38
16:39 pdcawley left
dalek ast: c51a7e1 | jnthn++ | S16-filehandles/io.t:
Add missing .close calls, to fix on Windows.
16:41
kudo/optimize_for_again: fdf6dfa | (Stefan Seifert)++ | src/Perl6/Actions.nqp:
Fix optimized for range loop messing up lexicals

The optimized code is created from the original op tree, not what p6for generates. So creating the closure for $block in p6for is not enough. Add the block_closure to the original op tree instead, so we get it in the optimized code, too.
16:42 zakharyas left
nine .tell timotimo found another issue with the for range optimization. Now there's only one left (last/next support) till we have a clean spec test again :) 16:42
yoleaux nine: I'll pass your message to timotimo.
jdv79 i thought symbols were forward declared or whatever that's called
but its only a wrinkle in this use so not a big deal 16:43
_Ven (whoever added the exercism.io perl6 exercises)++ 16:44
did a few, it was fun (although the test file doesn't load the correct class) 16:45
16:45 Oatmeal left, n0tjack joined
nine Ok, that was my small contribution of the day. Out now for some socializing :) 16:45
16:48 sprocket joined 16:52 LLamaRider joined 16:54 LLamaRider left 16:55 SHODAN joined 16:58 Oatmeal joined
dalek ast: 61ee17d | jnthn++ | S16-io/lines.t:
Add missing file closing, fixing test on Windows.

You can't unlink and then re-spurt a file that was not closed on Windows.
16:58
ast: 369aa88 | jnthn++ | S32-io/pipe.t:
Avoid doing a run that spits out a warning.
17:00
17:05 _Ven left 17:06 liztormato joined 17:08 finanalyst left
andreoss m: (dir) ==> grep * !~~ :f ==> map &say 17:11
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/j4IuVAmLEQ␤Variable '&infix:<!~~>' is not declared␤at /tmp/j4IuVAmLEQ:1␤------> 3(dir) ==> grep * 7⏏5!~~ :f ==> map &say␤»
17:13 liztormato left
andreoss m: (1,2,3,4) ==> grep * !== 1 ==> map &say 17:13
camelia rakudo-moar 273e89: OUTPUT«2␤3␤4␤»
andreoss m: (1,2,3,4) ==> grep * !~~ 1 ==> map &say
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XF03A6dO0J␤Variable '&infix:<!~~>' is not declared␤at /tmp/XF03A6dO0J:1␤------> 3(1,2,3,4) ==> grep * 7⏏5!~~ 1 ==> map &say␤»
andreoss m: (1,2,3,4) ==> grep { $_ !~~ 1 } ==> map &say 17:14
camelia rakudo-moar 273e89: OUTPUT«2␤3␤4␤»
andreoss prefix:<!> is misparsed in feeds? bug? 17:15
17:16 Sqirrel joined
andreoss m: say 1 !~~ 2 17:17
camelia rakudo-moar 273e89: OUTPUT«True␤»
psch m: say ^10 .grep: * !~~ { $_ %% 2 }($_) 17:18
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/McREyGOl2J␤Variable '&infix:<!~~>' is not declared␤at /tmp/McREyGOl2J:1␤------> 3say ^10 .grep: * 7⏏5!~~ { $_ %% 2 }($_)␤»
andreoss m: my &z = * !~~ 2; say z(1);
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Um_mMAe8Te␤Variable '&infix:<!~~>' is not declared␤at /tmp/Um_mMAe8Te:1␤------> 3my &z = * 7⏏5!~~ 2; say z(1);␤»
psch m: say ( * !~~ Int )(5)
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iP3Y0Tqf94␤Variable '&infix:<!~~>' is not declared␤at /tmp/iP3Y0Tqf94:1␤------> 3say ( * 7⏏5!~~ Int )(5)␤»
andreoss rather with WhateverCode
17:18 n0tjack left
psch m: say ( 5 !~~ * )(5) 17:18
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tBa_lOnlJ1␤Variable '&infix:<!~~>' is not declared␤at /tmp/tBa_lOnlJ1:1␤------> 3say ( 5 7⏏5!~~ * )(5)␤»
17:20 Sqirrel left
RabidGravy I've spent a bit of time toshing up Cache::Memcached but I'm not even sure that people use memcached in their apps anymore 17:20
andreoss m: sub infix:<!~~>($a,$b){ $a !~~ $b } ; say (* !~~ Int)(Nil); 17:22
camelia rakudo-moar 273e89: OUTPUT«True␤»
sprocket how can i create a new type in p6?
ie) if i wanted to create a new type that was called “MyInt” and it was just a int32 17:23
RabidGravy subset
dalek p: 12bab30 | (Pawel Murias)++ | src/vm/js/nqp-runtime/deserialization.js:
[js] Fix deserialization of things under the serialization format 16.
17:23 sprocket left, sprocket joined
psch an different name for an existing type i'd use constant for, fwiw 17:23
andreoss m: subset MyInt of int32; my MyInt $x = 6; say $x; 17:24
camelia rakudo-moar 273e89: OUTPUT«Type check failed in assignment to $x; expected MyInt but got Int␤ in block <unit> at /tmp/T0pyEq8P6C:1␤␤»
psch m: constant MyInt = Int; my MyInt $x = 5;
camelia ( no output )
psch that's just a different name again, though
underneath it's still an Int
sprocket psch: ah, thanks!
andreoss m: constant MyInt = int32; my MyInt $x = 6; say $x;
camelia rakudo-moar 273e89: OUTPUT«6␤»
andreoss why subset didn't work? 17:25
jnthn You can't really subset native types
RabidGravy because
17:25 yqt left
RabidGravy m: class MyInt is int32 { } 17:25
camelia rakudo-moar 273e89: OUTPUT«===SORRY!===␤Cannot find method 'BUILDPLAN'␤»
jnthn Because the value gets boxed on the way to the thing that checks it
RabidGravy that could be more awesome 17:26
jnthn RabidGravy: Indeed. 17:27
Can probably patch that easily 17:28
jnthn includes an attempt to fix it with the other thing he needs to spectest
andreoss m: my &infix:<~~~> := &infix<~~>; say (* !~~~ 1)(2); 17:29
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1TG3cpWxjh␤Undeclared routine:␤ &infix used at line 1. Did you mean '&indir', '&index'?␤␤»
andreoss m: my &infix:<~~~> := &infix:<~~>; say (* !~~~ 1)(2);
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2b3lezm_Lr␤Variable '&infix:<!~~>' is not declared␤at /tmp/2b3lezm_Lr:1␤------> 3my &infix:<~~~> := &infix:<~~>; say (* 7⏏5!~~~ 1)(2);␤»
andreoss m: my &infix:<smart-match> := &infix:<~~>; say (* !smart-match 1)(2); 17:30
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4S_ZkhW0q3␤Cannot negate smart-match because additive operators are not iffy enough␤at /tmp/4S_ZkhW0q3:1␤------> 3x:<smart-match> := &infix:<~~>; say (* !7⏏5smart-match 1)(2);␤ expecting any of…»
17:30 diana_olhovik_ joined
jnthn RabidGravy: Yeah, got a patch that fixes the error. 17:30
17:30 ggoebel2 joined
RabidGravy jnthn++ # make things good 17:31
the problem with error messages that reference something esoteric in the implementation is that the uninitiated have no way of knowing whether it is something they have done wrong or not 17:32
AlexDaniel I actually like this one: 17:35
m: class MyInt is MyInt { }
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/avu7aWZeCv␤'MyInt' cannot inherit from itself.␤at /tmp/avu7aWZeCv:1␤»
sprocket how do i run the tests in a p6 module i’ve checked out of github?
AlexDaniel look! There's an error message for that! :D
jnthn There's one for things you can't inherit from too, it's jsut that native types flagged themselves as being inheritable.
moritz sprocket: PERL6LIB=lib prove -e perl6 t
sprocket moritz: thanks :) 17:36
jdv79 RabidGravy: why wouldn't people use memcached?
moritz sprocket: I think there's also a panda-test command or something
sprocket moritz: is panda a package/module manager? 17:37
jdv79 $work used to use it lically and the aws version
*locally
moritz sprocket: yes
AlexDaniel m: class MyInt is Any is Int { }
camelia rakudo-moar 273e89: OUTPUT«===SORRY!===␤Could not build C3 linearization: ambiguous hierarchy␤»
17:37 n0tjack joined
AlexDaniel is it internal? 17:38
jnthn No
moritz AlexDaniel: no, it's a user error
RabidGravy jdv79, I don't know, people don't talk about it, I've used it rarely myself but it had a lot more buzz a few years ago. or has it just become an "appliance"
jnthn But it could use a line number
AlexDaniel why no line number then?
jdv79 yes
AlexDaniel submits rakudobug…
oh these tiny things! 17:39
jnthn :)
jdv79 iirc fb still uesd it last i knew
jnthn It's not a common error to run into :)
jdv79 even though its got its issues ^H
AlexDaniel jnthn: well, I'm not so sure
dalek kudo/nom: 60ff7e5 | jnthn++ | src/core/ (4 files):
Factor our setting handle line ending.

Also add support for multiple endings, though we're not using this anywhere just yet.
kudo/nom: 6154e5f | jnthn++ | src/Perl6/Metamodel/NativeHOW.nqp:
Can not inherit from native types.
[Coke] up to RT: 1046 17:40
jnthn AlexDaniel: I am; people using multiple inheritance is thankfully already quite rare :)
[Coke]: But xmas down by 1 more today, I hope :)
Well, I know, 'cus I closed it... :) 17:41
AlexDaniel m: class Weirdness is Nil { }; my Weirdness $var = Nil; 17:45
camelia ( no output )
17:45 dakkar left
AlexDaniel m: class Weirdness is Nil { }; my Weirdness $var; 17:45
camelia ( no output )
AlexDaniel is there any way to only allow defined Nils?
I've tried Nil:D but it does not work, as far as I can see
psch ..defined Nil? 17:46
m: say (Nil but role { defined { True } }).defined # ?
AlexDaniel m: class Weirdness is Nil { }; my Weirdness:D $var;
camelia rakudo-moar 273e89: OUTPUT«WARNINGS:␤Useless use of "defined { True } " in expression "defined { True } " in sink context (line 1)␤False␤»
rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Nx_ig99iYC␤Variable definition of type Weirdness:D requires an initializer␤at /tmp/Nx_ig99iYC:1␤------> 3eirdness is Nil { }; my Weirdness:D $var7⏏5;␤ expecting any of:␤ constraint␤»
psch m: say (Nil but role { method defined { True } }).defined # ?
camelia rakudo-moar 273e89: OUTPUT«True␤»
17:46 diana_olhovik_ left
psch that's the only defined Nil i can imagine :S 17:46
AlexDaniel well Weirdness:D should do the trick, but I want that to be exactly in its type, hm 17:47
psch AlexDaniel: the question, to me, is "where do you get a defined Nil"
AlexDaniel is always asking for some crap and expects Perl6 to handle that somehow
psch m: my $x = Nil; say $x.defined
camelia rakudo-moar 273e89: OUTPUT«False␤»
psch m: my $x = Nil.new; say $x.defined
camelia rakudo-moar 273e89: OUTPUT«False␤»
AlexDaniel so basically :D means that it is initialized? 17:48
what does the “D” stands for then? 17:49
psch doc.perl6.org/type/Signature#Constr...ned_Values 17:50
RabidGravy isn't Nil designed to behave undefined whatever you do to it?
psch AlexDaniel: the issue is that Nil *cannot* be defined
AlexDaniel: not that :D doesn't mean defined
AlexDaniel OK, what if I want it to be Nil but not Any?… 17:51
psch ...unless i'm confusing .defined and .DEFINITE again, then it's about .DEFINITE :l
m: say Nil ~~ Any
camelia rakudo-moar 273e89: OUTPUT«True␤»
AlexDaniel hmmm
psch Nil isa Any :)
TimToady only for implementation convenience; Nil is the absence of a value, so it cannot really have a type 17:53
17:53 diana_olhovik_ joined
psch m: my Cool $x := Nil 17:53
camelia ( no output )
psch m: my Cool $x := Nil; say $x.WHAT
camelia rakudo-moar 273e89: OUTPUT«Nil␤»
jnthn TimToady: At the moment, we have in IO handles a .nl which is the separator for reading line by line 17:54
psch AlexDaniel: ^^^ something like that?
jnthn TimToady: We really need to support setting that to an array of separators, but I discovered that we're double-purposing .nl for the output separator too :S
TimToady: Can I have a pair of names you like? nl-in and nl-out are two candidates. :)
AlexDaniel psch: I don't know :) I'm just having fun with the fact that I can write “is Nil”
in fact, it is much simpler 17:55
m: my Nil $var = Nil;
camelia ( no output )
psch m: class F { }; my F $x = F.new; say $x.perl; $x = Nil; say $x.perl
camelia rakudo-moar 273e89: OUTPUT«F.new␤F␤»
jnthn TimToady: Being able to have the input separator be ["\n", "\r\n"] is one of the last things for getting \r\n as a grapheme, and so the new NFG stuff wrapped up :) 17:56
TimToady jnthn: that seems okay to me; let's just not do anything that would preclude a regex instead of an array someday
jnthn TimToady: OK, I'll go with in and out. Thanks.
TimToady since a regex can subsume matching an array
jnthn (nl-in and nl-out)
17:56 atweiden joined
jnthn *nod* 17:56
[Coke] jnthn: XMAS: 66 17:57
jnthn Aww...I thought we were already at 66 and now'd have 65... :)
psch TimToady: the *fix:[] form doesn't work &-less, is that intentional? 17:58
m: say infix:['+'](1,2)
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fnBKlEQ2m7␤Undeclared routine:␤ infix:['+'] used at line 1. Did you mean 'infix:<+|>', 'infix:<+>', 'infix:«+>»', 'infix:«+<»', 'infix:<+^>'?␤␤»
TimToady nah, just a buglet
can work around with &
psch right 17:59
jnthn TimToady: Other I/O question: there's an RT about Windows line endings and making \n magically turn into \r\n on Windows.
TimToady: I was pondering going so far as default nl-out to \r\n on Windows
17:59 diana_olhovik_ left
jnthn TimToady: But if you print "foo\n" then you get the \n you asked for and no magic 17:59
Any feelings on that? 18:00
(Input from others welcome too)
18:00 eliasr joined
TimToady well, Perl has "always" distinguished text mode from binary, so not really sure how that plays with the \r\n grapheme thing 18:00
18:00 ^elyse^ joined
TimToady Perl 5 translates \r\n -> \n -> \r\n at IO boundaries 18:00
(on text files) 18:01
well, or relies on STDIO to do so
18:01 Actualeyes left
[Coke] RT: 1046; XMAS: 66, NOM: 8; GLR: 7; JVM: 37; LTA: 86, WEIRD: 10, TESTS: 11 18:02
18:03 andreoss left
sprocket any idea what might be causing this error while using NativeCall: Cannot locate native library 'libc.so': /usr/lib/arm-linux-gnueabihf/libc.so: invalid ELF header 18:04
TimToady wel already have /\n/ matching CRLF, but that's mostly there for accidental file sharing from win to *nix
sprocket the file exists, but NativeCall doesn’t seem to like it all that much
TimToady making "\n" turn into CRLF on windows would need consideration
jnthn At the moment we're not doing any translation at the boundary 18:05
RabidGravy sprocket, what does "file" say about the file? 18:06
[Coke] m: say ('a' x 10000).IO.open ;# wtf?
camelia rakudo-moar 273e89: OUTPUT«Malformed UTF-8 at line 2 col 7␤ in block <unit> at /tmp/R1N0bu_X0J:1␤␤»
jnthn stdio.h on Windows does indeed do such transforms, though we actually read everything as binary at the moment and decode it. We know at the VM level if we're interested in text or bytes, of course. But we ain't going through the magical stdio stuff
sprocket oh, odd, it says: /usr/lib/arm-linux-gnueabihf/libc.so: ASCII text
and it is indeed ASCII
[Coke] ^^ RT #125813
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125813
[Coke] jnthn, there's a weird UTF-8 error for you. :) 18:07
m: say "नि".chars
camelia rakudo-moar 273e89: OUTPUT«1␤»
ilmari sprocket: it's a linker script 18:08
TimToady well, we also need to worry about getting accidental *nix files into win, so maybe coercing to the native format is the right default
18:08 kjs_ left
[Coke] m: say «நி กำ षि "\r\n"»».chars 18:08
camelia rakudo-moar 273e89: OUTPUT«(1 1 1 2)␤»
18:08 abraxxa joined
[Coke] jnthn: is there a separate RT for \r\n ? 18:08
sprocket ilmari: ah. i’ve located the actual libc, and now i just need to convince NativeCall to use that one instead 18:09
ilmari sprocket: .so are generally for the compile-time linker, not the dynamic linker, which uses the versioned .so.X.Y
RabidGravy sprocket, are you explicitly specifying the library in the "is native" ? You shouldn't need to
jnthn TimToady: I was rather hoping to not coerce at all, given \n and \v in regexes do the right thing under NFG, and folks doing line-based stuff will typically work with .get/.lines (which auto-chomp) and .say (which can pick the correct platform ending)
sprocket RabidGravy: i was yes - if i drop it, it’ll just look for it in the already loaded libc?
RabidGravy yeah
ilmari sprocket: if it's in libc it'll already be loaded, so you can just do 'is native(Str)' 18:10
sprocket: doc.perl6.org/language/nativecall#C...rd_library
sprocket ilmari, RabicGravy: great, will give it a try
TimToady jnthn: yeah, forcing nl-out to CRLF (or LF) seems like it covers most of the cases, except perhaps for socket programming
18:11 DrPete joined
TimToady and maybe even there, if we're careful 18:11
jnthn TimToady: OK, I'll go with that, and say that print "foo\n" doesn't get special treatment, only "say foo"
TimToady but the question remains whether \n should mean CRLF on windows 18:12
jnthn Ah, you were still wondering that :)
hmm
[Coke] jnthn: \r\n is covered by RT #125927
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125927
TimToady well, there are conflicting design goals here
18:12 abraxxa left
AlexDaniel
.oO( whether anything should mean \n… )
18:12
TimToady culturally speaking, people expect \n to both mean a simple line feed, and to do the right thing in text files 18:13
jnthn [Coke]: We're more discussing rt.perl.org/Ticket/Display.html?id=88674 by now; I think we agree that \r\n will be one grapheme and that's fairly orthogonal to what we're considering at the moment. :)
TimToady in regex we've made the call that it's a logical newline, not a \xa
so do we be inconsistent with *nix culture, or with P6 regexes? 18:14
[Coke] jnthn: right, I'm just trying to close tickets. 18:15
18:15 kjs_ joined
PerlJam TimToady: self-consistency is a worthy goal ;) 18:15
TimToady way back in the mists of time, \n was supposed to be a logical newline, but that kinda went away over the years
jnthn [Coke]: I've done most of the work for 125927, just missing the \r\n case, which is what I've been working on the last days, but it ended up having to yak shave another RT first :) 18:16
18:17 duncan_dmg left
[Coke] m: say chr 999999999999999999999999999 18:17
camelia rakudo-moar 273e89: OUTPUT«Cannot unbox 90 bit wide bigint into native integer␤ in block <unit> at /tmp/LiDTTrQn4t:1␤␤»
TimToady if we make it go to CRLF on windows only, that doesn't hurt anyone's *nix program, so the question is are there any windows programs that would be hurt by assuming \n means CRLF?
or programs that would be hurt after porting from *nix to windows? 18:18
jnthn How do you force output of a UNIX-style \n in Perl 5 when running on Windows, ooc?
Do you have to drop to binary mode? 18:19
TimToady default is text, and you have to do binary to bypass it
ilmari binmode($fh, ':raw')
and :encoding(), probably 18:20
jnthn notes that qq{rn} eq qq{n} isn't true in Perl 5
ilmari no, it's only on IO
jnthn So I'm not quite sure exactly where the "magic" is happening
TimToady note the $fh argument 18:21
ilmari in the :crlf PerlIO layer
AlexDaniel [Coke]: maybe you wanna have a look at #125820 as well? 18:22
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125820
AlexDaniel [Coke]: it seems like the first one does not hang anymore
ilmari which the :raw pseudo-layer removes
AlexDaniel [Coke]: and other one-liners are printing the same error
TimToady well, and binmode without the 2nd arg defaults to raw 18:23
AlexDaniel [Coke]: which probably means that other 99999999 reports should be reviewed
#126014
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126014
ilmari TimToady: yeah, :raw is more useful in the second arg to open 18:24
AlexDaniel #125814 #125811
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125814
jnthn ilmari: Does that essentially amount to an extra pass over all strings on input/output on Windows?
AlexDaniel [Coke]: not all of them are fixed, but it seems like some are 18:25
ilmari jnthn: each perlio layer can buffer and transform the data however it wants
TimToady I suppose we could have a 'use newline "\xa\xd"' pragma or so to influence what literal \n means
ilmari jnthn: the :crlf layer is actually just a flag on the default :unix layer, so presumably more efficient than that 18:26
jnthn: but PerlIO is a horrid mess, just ask leont
TimToady er, "\xd\xa", I guess
18:27 abraxxa joined, n0tjack left
TimToady well, really, probably 'use newline :crlf' or 'use newline :lf' 18:27
ilmari www.youtube.com/watch?v=ybTFXG9HWUk
TimToady and then if we decided to default \n on windows to :crlf, it could be forced back to :lf at need 18:28
maybe that's the best way forward
jnthn TimToady: You're meaning what a literal \n compiles into on Windows, yes?
TimToady it would usually do the right thing on either *nix or windows, but be settable to the other culture at will 18:29
yes
jnthn OK, which removes the responsibility from IO
TimToady well, not really
jnthn ? 18:30
TimToady I'm assuming you still want nl-out to go to crlf
jnthn Oh
AlexDaniel m: my Nil $var where * == 42 = Nil; say $var;
camelia rakudo-moar 273e89: OUTPUT«Nil␤»
jnthn Yeah but, has $.nl-out = "\n";
Will compile into the right thing when you build your Rakudo on Windows :)
TimToady except maybe open should respect the caller's \n? 18:31
[Coke] AlexDaniel: feel free to comment on the tickets so I don't have to! ;)
TimToady when there's a pragma, I mean
jnthn Ah, true.
AlexDaniel m: my Int $var where * == 42 = Nil; say $var; # hm, what's this anon thing…
camelia rakudo-moar 273e89: OUTPUT«(<anon>)␤»
AlexDaniel [Coke]: eh, well, I thought that you are going to do that :)
jnthn CLIENT::<$?NL> or so
AlexDaniel [Coke]: but if not, tell me 18:32
TimToady jnthn: yeah
jnthn OK. And I presume for input we just are happy with \n and \r\n on any platform?
TimToady yes, robustness principle
jnthn And we don't transform them, since \n in a regex matches logically and .get and .lines chomp by default? 18:33
TimToady right
jnthn OK, I think we have a workable plan. :)
TimToady seems so as if to be
jnthn Thanks!
Think time to dinner, admin, relax...will work on it again tomorrow. 18:34
TimToady
.oO("The fate of millions of \n characters hangs in the balance...")
jnthn Will work on other I/O-ish things this week too (like the sync I/O handles between threads) 18:35
food & 18:36
18:39 b^_^d is now known as d^_^b
rindolf Hi all. sup? 18:39
18:39 d^_^b left, d^_^b joined
lizmat jnthn: building moar has become pretty noisy on OSX at least 18:40
'&&' within '||' [-Wlogical-op-parentheses] 18:41
18:42 spider-mario joined
sprocket trying to trouble shoot some nativecall here, i’m getting this error: “This type cannot unbox to a native integer” 18:42
lizmat can you gist a --ll-exception backtrace ?
TimToady jnthn : wrt to using a regexp as a line delimiter, we have that functionality in IO:Handle.split already, so should be pluggable into .get and .lines 18:43
18:45 espadrine left
sprocket ah, got it - was a problem with a missing “is native(..)” 18:47
RabidGravy I've just put RT #126541 in regarding being able to get at the native file descriptor via the IO::Handle, IO::Socket etc because I keep forgetting about it 18:56
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126541
19:03 firstdayonthejob joined 19:07 kjs_ left
dalek c: 6c8e42a | (Zoffix Znet)++ | doc/Language/faq.pod:
Grammar fix
19:09
c: b285f73 | (Zoffix Znet)++ | doc/Language/faq.pod:
Clarify applicability of Inline::Perl5

The answer slightly implies *only* Catalyst and DBI can be used
c: 92e37e4 | (Zoffix Znet)++ | doc/Language/faq.pod:
Grammar/phrasing
19:13
19:14 telex left 19:15 yqt joined 19:16 abraxxa left, telex joined 19:22 leont joined
atweiden m: class AOHSeen { has Int:D $.count = 0; has Bool:D $.seen = False; method postfix:<++>() { $!count++; $!seen = True; } }; my AOHSeen %aoh_seen; %aoh_seen<a> = AOHSeen.new; %aoh_seen<a>++; 19:29
camelia rakudo-moar 273e89: OUTPUT«Method 'succ' not found for invocant of class 'AOHSeen'␤ in block <unit> at /tmp/NvYvoSyQNp:1␤␤»
atweiden do i have this postfix declaration wrong? 19:30
moritz atweiden: yes, needs to be a sub in the outer scope
atweiden ah, makes sense moritz++
19:32 Guest80685 is now known as timotimo 19:39 tokuhirom_h joined
moritz atweiden: though the default postfix:<++> implementation happily calls a method "succ" (for "successor") on your class, so just implementing that might be even easier 19:40
19:44 tokuhirom_h left 19:45 vendethiel joined 19:48 Ven_ joined 19:49 diana_olhovik joined
lizmat Another Perl 6 Weekly has hit the Net: p6weekly.wordpress.com/2015/11/02/...lustering/ 19:49
RabidGravy yay! 19:55
19:56 diana_olhovik__ joined 19:57 diana_olhovik left, sprocket left
skids lizmat++ 19:59
leont Awesome
20:01 diana_olhovik__ left
moritz lizmat++ 20:02
colomon lizmat++ 20:03
hoelzro lizmat++ 20:06
20:07 leont left
AlexDaniel hold on guys, I'm afraid that lizmat will overflow… 20:08
hmm, what would be the error message
lizmat++
lizmat :-) EHEADEXPLODED
AlexDaniel that's less than awesome
lizmat ENOTALESLEFT 20:09
AlexDaniel submits lizmatbug
PerlJam AlexDaniel: Love is infinite, so there's always more to share.
lizmat++
20:10 nowan left
AlexDaniel “(so a combiner after a control char is now an isolated combiner)” great! 20:10
colomon lizmat: link for nine’s video doesn’t work for me? (Error 404) 20:11
lizmat ah?
PerlJam makes a mental note to shout ETOOMUCHLOVE at Yaakov next time our paths cross on #perl ;) 20:12
20:12 espadrine joined
lizmat weird... 20:13
colomon lizmat: huh
jdv79 PerlJam: huh?
colomon lizmat: if I go from your link, it doesn’t work for me. If I go to niner.name/talks/ and click on the talk, it works. :\ 20:14
oh
lizmat fixed
PerlJam jdv79: Am I being too random today? I'm still a little groggy from a long weekend.
colomon it’s niner.name/talks/YAPC201%E2%80%8B5-...-HD720.m4v vs
niner.name/talks/YAPC2015-Granada-N...-HD720.m4v
lizmat there was some inviible garbage in there
fixed 20:15
colomon++
jdv79 yaakov comment was random
colomon lizmat: indeed, lizmat++
20:15 nowan joined
lizmat "I LOVE YOU ALL WITH A GREAT HUGE LOVE" is one of Yaakov's famous quotes 20:16
20:16 nowan left 20:18 kjs_ joined
sjn lizmat++ # well written Perl 6 Weekly 20:18
20:19 ZoffixW joined, nowan joined
ZoffixW Is it possible to make operators work on an object? like Perl 5's "use overload"? 20:19
moritz ZoffixW: you can export multis of operators that support your type 20:20
20:20 doublec left
moritz ZoffixW: or provide coercion methods 20:20
PerlJam jdv79: Yaakov always greets #perl with "I LOVE YOU ALL WITH GREAT HUGE LOVE" or something similar. 20:22
Ven_ .u ⋄
yoleaux U+22C4 DIAMOND OPERATOR [Sm] (⋄)
20:22 doublec joined
PerlJam oh, /me is slow today in reading #perl6 20:23
20:23 kaare_ left
[Coke] m: class A {}; sub infix:<+>(A,A) {5}; say A.new+A.new 20:23
camelia rakudo-moar 273e89: OUTPUT«5␤»
[Coke] m: class A {}; sub infix:<+>(A,Int:D) {5}; say A.new+1000
camelia rakudo-moar 273e89: OUTPUT«5␤»
jdv79 i like yaakov.. his role in tpf has been confusing though. 20:25
PerlJam confusing how?
gfldex m: class C { method foo(){ say 'foo'; } }; my method postfix:<!>(C:D $self:){$self.foo}; (C.new).&postfix:<!>; 20:26
camelia rakudo-moar 273e89: OUTPUT«foo␤»
gfldex ZoffixW: technically, yes
dalek kudo/nom: 7d666a2 | (Steve Mynott)++ | src/core/ (2 files):
add dragonfly BSD
kudo/nom: c668b5f | lizmat++ | src/core/ (2 files):
Merge pull request #570 from stmuk/nom

add dragonfly BSD
jdv79 i thought as part of community guy he would be reaching out
he said hes only internal or something like that so thats like echo chamber mgmt? 20:27
20:28 darutoko left
PerlJam something like that I guess. He encourages and helps others to do the reaching out. 20:28
(at least that's how I see it)
jdv79 is that happening. i would think thats more valuable. idk. 20:29
external works that is
ZoffixW The export stuff isn't working: 20:30
m: class RGB { has Int $.num; sub infix:<+> (RGB $x, Int $y) is export { $x.num + $y; } }; my $x = RGB.new; say $x + 42;
camelia rakudo-moar 273e89: OUTPUT«Cannot call Numeric(RGB: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/wstwrYtXYs:1␤␤»
ZoffixW Not sure what "coercion methods" are. And the several other examples shown would seem to require the user of my module to declare the special operators?
I'm trying to make an RGB tuple on which I could do math (like metacpan.org/pod/Number::RGB ) 20:31
[Coke] ZoffixW: you need to make those subs external to the class.
class RGB { has Int $.num;} sub infix:<+> (RGB $x, Int $y) { $x.num + $y; }; my $x = RGB.new; say $x + 42;
m: class RGB { has Int $.num;} sub infix:<+> (RGB $x, Int $y) { $x.num + $y; }; my $x = RGB.new; say $x + 42;
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PrTxHOXPcy␤Strange text after block (missing semicolon or comma?)␤at /tmp/PrTxHOXPcy:1␤------> 3class RGB { has Int $.num;}7⏏5 sub infix:<+> (RGB $x, Int $y) { $x.num␤ expecting any of:␤ …»
20:32 _mg_ joined
[Coke] m: class RGB { has Int $.num;}; sub infix:<+> (RGB $x, Int $y) { $x.num + $y; }; my $x = RGB.new; say $x + 42; 20:32
camelia rakudo-moar 273e89: OUTPUT«Type check failed in binding $x; expected RGB but got Int␤ in sub infix:<+> at /tmp/0G05DkeQln:1␤ in sub infix:<+> at /tmp/0G05DkeQln:1␤ in block <unit> at /tmp/0G05DkeQln:1␤␤»
[Coke] ok, that's closer, anyway.
20:32 Alina-malina left
PerlJam you forgot "multi" 20:34
ZoffixW PerlJam++ Thanks :)
[Coke] ah, doh 20:35
ZoffixW Great. This works [Coke]++ moritz++
RabidGravy or put them in the scope of the class and apply "is export"
20:36 Alina-malina joined 20:37 leont joined
ZoffixW ISAGN in Perl 6's "overload" module :) 20:41
20:41 Alina-malina left
ZoffixW Is there a way to call the same code block with two different signatures? Like I might have my $obj + 42; or 42 + $obj. How do I cover both cases with least code? Something like multi infix:<+> (RGB $x, Int $y OR Int $y, RGB $y) 20:43
s/my //;
PerlJam I think clarity and simplicity trump tersness any day :) 20:47
ZoffixW Sure, which is why I don't want to consider $obj + 42 and 42 + $obj as two different cases :)
Since functionally, they're identical :)
PerlJam Are they always? 20:48
20:48 [Sno] left
RabidGravy yeah, write up a bunch of multis and refactor the common code to a single sub 20:48
which you call from inside the multis
ZoffixW Actually, three cases $obj + 42, $obj + $obj, and 42 + $obj
Alright, I'll do that. 20:49
konobi pmurias: morning
20:50 ZoffixW left
RabidGravy if they really are identical you could do "multi sub....($x where RGB|Int, $y where RGB|Int)" 20:50
but I don't think that's clearer to me
no that wont't work because it allows Int, Int 20:51
so it whave to be more complex
PerlJam mumbles something about waterbeds
moritz but Int, Int is already handled by a more narrow candidate
RabidGravy yeah 20:52
PerlJam if you used the junction types, you'd have to do _more_ work to get it to work correctly; not less. 20:53
RabidGravy I'd have thought so to
more is less in this case
20:58 atweiden left
RabidGravy let Perl be sorting out the stuff that would otherwise involve a bunch of ugly conditionals 21:00
ugexe is an error that is just 'Abort' moarvm or nqp? 21:02
yoleaux 1 Nov 2015 08:27Z <azawawi> ugexe: I was able to use zef on windows. Thanks for creating such a great tool. Please do keep up the awesome work.
1 Nov 2015 09:12Z <azawawi> ugexe: what's zef solution for the following code github.com/retupmoca/P6-Compress-Z...r/Build.pm ?
PerlJam Though a slang or some macros that could automate this particular case would be interesting.
ugexe im hammering a socket and get 'Abort' errors in the same spot until i add some random code, which then does the same thing but in a different spot 21:03
21:10 Ven_ left
RabidGravy can you add a signature to some code block after it has been created? 21:11
ugexe maybe with .assuming 21:12
21:12 Ven_ joined
ugexe i guess thats the opposite of what you want heh 21:13
RabidGravy yeah that partially applies the arguments to make a new code block 21:14
21:14 Alina-malina joined
mrf evening #perl6 21:15
RabidGravy which is cool in itself
mrf gist.github.com/ungrim97/65905b1393a7f7658dbb
I believe that fixes my patch for ^10 in regexs though I don't know why the 0..^10 and ^10 test don't pass... 21:16
TimToady: ^
jnthn lizmat++ # weekly 21:17
lizmat: Gah, I hate that &&/|| precedence error. Maybe we can turn it off so we can stop waste time patching it.
lizmat looks like it is only one patch, though, which I would be willing to do after confirming where the parens are supposed to go :-) 21:19
that should tell you something about the need for those parens :-)
21:21 _mg_ left
jnthn lizmat: I've pushed something to kill the warning off 21:21
Hopefully that helps. 21:22
lizmat pretty sure it will...
jnthn Warnings should be there to catch common mistakes, but so far it just makes legwork for me.
And I've no intention of putting superstitious parens in for *that*.
21:22 [Sno] joined
lizmat is glad with a more silent Moar build 21:22
jnthn :)
bartolin jnthn: I think that the "Method 'Int' not found for invocant of class 'Any'" happens since f5276ca2 21:23
jnthn: I'm not sure why, but this prevents the error with S32-num/complex.t: gist.github.com/usev6/bac193a8b7219490993c 21:24
jnthn *very* odd... 21:25
bartolin runs a spectest, curiously
jnthn Thanks for investigating. :)
jnthn will be back in the morning :) 21:26
'night, #perl6
TimToady o/
bartolin o/
21:27 Ven_ left
mrf TimToady: I pinged you regarding the ^ range quantifiers NQP patch but I now realise you may not be the best person to ping. DO you know who would be? 21:29
21:31 Peter_R joined, Alina-malina left 21:32 ^elyse^ left 21:33 _28_ria left, Ven_ joined 21:34 _28_ria joined
lizmat m: say (^10).roll(*)[^10] # okidoki 21:40
camelia rakudo-moar 273e89: OUTPUT«(0 6 4 5 1 4 5 1 2 8)␤»
lizmat m: say (^10).roll(*)[^10] # huh ??
camelia rakudo-moar 273e89: OUTPUT«(6 9 8 3 5 5 5 0 4 0)␤»
lizmat m: say (^10) .roll(*)[^10] # huh ??
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Tv0qD2wqqQ␤Unable to parse expression in bracketed infix; couldn't find final ']' ␤at /tmp/Tv0qD2wqqQ:1␤------> 3say (^10) .roll(*)[^7⏏0510] # huh ??␤»
21:40 Ven_ left
lizmat not space before . 21:40
*note
21:42 bbkr joined
bbkr r: for 0.00 .. 2.01 {.say} 21:42
yoleaux 7 Sep 2015 06:58Z <jnthn> bbkr: Saw your post; I think the deadlock will go away once I implement the smarter version of await that makes thread pool threads available to do other work while they're awaiting.
camelia rakudo-{moar,jvm} 273e89: OUTPUT«0␤1␤2␤»
21:42 TEttinger joined
bbkr looks like bug 21:42
lizmat bbkr: long time no see! 21:43
bbkr :)
lizmat not a bug, I don't think
because the for will add 1 for each iteration, and 2.00 is still below 2.01 ? 21:44
or are referring to the loss of decimal digits ?
bbkr ah, range does not inherit argument resolution (decimal places in this case) 21:45
yes, how to make ranges with decimal places?
lizmat r: .say for 0.01 .. 2.02
21:45 Ven_ joined
camelia rakudo-{moar,jvm} 273e89: OUTPUT«0.01␤1.01␤2.01␤» 21:45
lizmat m: say 0.00 21:46
camelia rakudo-moar 273e89: OUTPUT«0␤»
bbkr r: for 0.1, 0.2 ... 2.0 { .say }
camelia rakudo-{moar,jvm} 273e89: OUTPUT«0.1␤0.2␤0.3␤0.4␤0.5␤0.6␤0.7␤0.8␤0.9␤1␤1.1␤1.2␤1.3␤1.4␤1.5␤1.6␤1.7␤1.8␤1.9␤2␤»
bbkr \o/
lizmat yes, that works too
m: .WHAT.say for 0.00 .. 2.01
camelia rakudo-moar 273e89: OUTPUT«(Rat)␤(Rat)␤(Rat)␤»
lizmat so it was working after all, just the .say was dropping the decimal digits 21:47
TimToady m: .say for (0..2) / 10 21:48
camelia rakudo-moar 273e89: OUTPUT«0␤»
lizmat fg
TimToady m: say (0..2) / 10
camelia rakudo-moar 273e89: OUTPUT«0.0..0.2␤»
lizmat oops
TimToady hmm, that looks a bit buggy
oh wait, nm
bbkr r: .nude.perl.say for 0.0 ... 2.0
camelia rakudo-{moar,jvm} 273e89: OUTPUT«(0, 1)␤(1, 1)␤(2, 1)␤» 21:49
bbkr looks fine. I simply forgot about ... operator that can get explicit step from 1st and 2nd value. thanks 21:51
21:51 kmel joined 21:53 muraiki joined
bartolin for the records: I got a clean spectest on moar with the modification from gist.github.com/usev6/bac193a8b7219490993c 21:54
dalek kudo/nom: a2b02f4 | TimToady++ | src/Perl6/Grammar.nqp:
set name on autogen'd metaops
21:55
bartolin that doesn't look like a clean patch, though ...
21:56 Ven_ left
bartolin ^^ was related to my gist, not to TimToady++'s commit :-) 21:56
lizmat bartolin: will try in a mo
21:57 Ven_ joined
bartolin lizmat: no hurry! and thanks for the P6Weekly, btw 21:57
21:57 raiph joined
lizmat you're welcome! 21:57
TimToady mrf: maybe I can look at it later tonight 21:59
21:59 skids left
muraiki I wanted to give a quick thanks to everybody who has worked on #perl6. our first perl6 code went into production today :) 22:00
22:02 kjs_ left
lizmat muraiki++ 22:04
.oO( I think I got the "quote of the week" for next week )
22:05
Ven_ muraiki++ :D 22:10
22:10 xfix left
RabidGravy muraiki, nice one very very nice. no amount of theoretical perfection, passing tests or reams of documentation validates what people have been doing more than that :) 22:11
22:11 Ven_ left
muraiki it's nothing incredibly complicated; it watches files in a directory and fixes permissions that break, and also watches any newly created subdirs of that directory. but it uses supplies, which made the whole thing a breeze to write! 22:12
it solved a real pain of a problem for us in a very easy way
thanks again, everyone
RabidGravy blog! blog! 22:13
vendethiel muraiki: am I remembering correctly you were at the APW14?
muraiki vendethiel: no, I wasn't there, although I don't even know what APW is :)
RabidGravy it is the little things like IO.watch that build up to make the fabulous
vendethiel sorry, I get names mixed up all the time. austria perl workshop
muraiki vendethiel: hehe, nope. I was at the pittsburgh perl workshop recently, but didn't meet many people because I had a cold and as such became antisocial :) 22:14
22:16 tokuhiro_ joined
muraiki RabidGravy: I'd like to blog, but I'm not certain if my company will approve releasing this source. I'll look into it, though. but I did run into either a bug or else was doing something very wrong with IO watchers... let me find the RT 22:17
rt.perl.org/Public/Bug/Display.html?id=125908
I didn't even know how to describe it in a summary
pmurias konobi: morning 22:18
muraiki I know that in Reactive Extensions there is a distinction between hot and cold observables, but given that my test case didn't reproduce the problem, I don't think there's such an idea in perl 6's supply observables
22:18 stmuk left
muraiki wait, my test case did reproduce the problem 22:18
22:18 stmuk joined
muraiki sorry, it's launch day and my mind is frazzled :) 22:19
lizmat :-)
22:20 spider-mario left, kjs_ joined 22:21 tokuhiro_ left 22:23 kmel left
RabidGravy well there is a notion of "live" supplies and otherwise 22:25
lizmat bartolin: fwiw, I'm trying a different approach
- has $!handled;
+ has int $!handled;
aka, a cheap way to get a defined false value 22:26
muraiki RabidGravy: yeah, I saw the paragraph about live vs on demand. the problem in the ticket though is something I could see happening in Rx, but was unexpected in p6; that of two acts on one supply causing each act to be evaluated twice
lizmat muraiki: that smells of a bug indeed 22:27
muraiki which I guess is what the ticket should have been called
but at the time I was even more bewildered :)
lizmat are these two acts on the same thread or not ?
muraiki lizmat: to be honest, I'm not sure how to answer that :) I didn't explicitly create any new threads, though 22:28
RabidGravy I've noticed that you may get multiple events on an IO::Notification for some single logical change, depending on what happens in the app
lizmat yeah, but that is a known OS issue 22:29
muraiki RabidGravy: I took duplicate changes due to metadata changes into account via .unique(:as(*.path), :expires(5))
RabidGravy I did some work on pyinotify to get it to work on FreeBSD, properly did my head in 22:30
lizmat muraiki: glad to see Supply.unique used that way in production :-) 22:31
muraiki lizmat: hehe
well, unfortunately I have to head out as my wife is waiting for me. thanks again everyone 22:32
22:32 muraiki left
dalek kudo/nom: 5349d05 | lizmat++ | src/core/Failure.pm:
Fix some strange failures

  bartolin++ found $!handled not being defined in some cases would cause
a problem.
   "Method 'Int' not found for invocant of class 'Any'"
By making $!handled a native int, I think we kill two birds with one stone: the problem has gone away, and (hopefully) faster code gen for Failures
22:35
22:35 DrPete left
lizmat
.oO( sometimes I feel like I only have a hammer to hit native int nails )
22:35
22:36 adu joined 22:37 eliasr left 22:38 kjs_ left, vendethiel left
retupmoca m: my $s = Supply.new; my $s2 = $s.unique(:as({$_}), :expires(5)); $s2.act({say $_}); $s.emit(1); $s2.act({ say $_ * 2}); $s.emit(2); # re: #125908 22:38
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125908
camelia rakudo-moar 273e89: OUTPUT«1␤2␤4␤2␤4␤»
retupmoca looks like a bug in unique?
22:43 pmurias_ joined
cognominal lizmat++ # weekly 22:44
22:44 rindolf left
lizmat retupmoca: good catch, will look in a mo 22:45
22:45 lucs_ is now known as lucs 22:46 pmurias left 22:48 DrPete joined
dalek kudo-star-daily: 7a3656c | coke++ | log/ (10 files):
today (automated commit)
22:55
adu m: +<< 23:01
camelia rakudo-moar 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uTApYxzOXa␤Prefix +<< requires an argument, but no valid term found␤at /tmp/uTApYxzOXa:1␤------> 3+<<7⏏5<EOL>␤ expecting any of:␤ prefix␤»
23:12 Ven_ joined 23:17 RabidGravy left 23:21 Ven_ left
dalek osystem: 5edb69e | retupmoca++ | META.list:
Add Crust::Handler::SCGI

  github.com/retupmoca/p6-Crust-Handler-SCGI
23:27
23:35 skids joined
lizmat good night, #perl6! 23:36
jdv79 nite 23:50
23:56 kid51 joined