»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:03 cyphase joined 00:09 itaipu joined 00:11 perlawhirl joined 00:16 djbkd left 00:25 colomon_ joined, AndyBotwin joined 00:26 colomon left, colomon_ is now known as colomon
dalek sectbot: 4e7fb7d | (Daniel Green)++ | benchable.pl:
Correctly convert between short and long commits when "zooming"
00:26
perlawhirl ^Hexit 00:33
00:33 perlawhirl left, pierrot left
MasterDuke commit: 2016.01.1 say 'broken?' 00:38
committable MasterDuke: ¦«2016.01»: No build for this commit
AlexDaniel it's not really broken, there's just no build :D
00:41 BillSussman joined 00:43 AndyBotwin left
awwaiid Aug 5-7 is the 2016 ICFP Contest, a marathon programming challenge that was initially designed to show off new programming languages. This will be my 11th year participating, and possibly my first in which I use some Perl 6 (my teams tend to be very polyglot). icfpc2016.blogspot.jp/ 00:46
I'm taking Aug 5 off of work, and at least one local friend is joining me. You can do this contest from anywhere, with any sized team. The prize for the winning team is typically "programming language X is the programming tool of choice for discriminating hackers" 00:48
00:50 finanalyst joined 01:02 Herby_ joined
Herby_ Evening, everyone! 01:02
\o 01:03
TimToady o/
timotimo o/ herby
and now i'm going to bed
01:04 trnh left
Herby_ Good night! 01:04
AlexDaniel 〰o〰
01:05 BillSussman left
dalek sectbot: e165681 | (Daniel Green)++ | / (2 files):
Remove 2016.01 from the list of releases because there's no build for it and add 'releases' as an option for committable
01:11
AlexDaniel :O 01:12
m: say 0, 1, &[+] ... 987
camelia rakudo-moar 957dc0: OUTPUT«(0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987)␤»
AlexDaniel TimToady: actually, one can argue that this one ↑ is the most readable out of all 01:13
m: say 0, 1, [+] ... 987
camelia rakudo-moar 957dc0: OUTPUT«987␤ in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel /o\
TimToady that's a reduce 01:14
AlexDaniel sure, I just don't like when something is screaming about CORE.setting :) But it did print the actual line number so it's ok 01:15
TimToady ... is a fail 01:16
m: say 0, 1, [+] fail 987
camelia rakudo-moar 957dc0: OUTPUT«987␤ in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1␤ in block <unit> at <tmp> line 1␤␤»
geekosaur sees what happened there... but boy is that LTA 01:18
TimToady I don't see any way to fix it 01:19
you use ... where a term is expected, that's what you get 01:20
m: say 0, 1, ... 987 01:21
camelia rakudo-moar 957dc0: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Comma found before apparent series operator; please remove comma (or put parens␤ around the ... listop, or use 'fail' instead of ...)␤at <tmp>:1␤------> 3say 0, 1,7⏏5 ... 987␤»
TimToady we do catch this one, but that's much more common
01:37 kid51 left 01:38 mohae joined 01:39 jcallen joined
dalek osystem: bf5d2dc | ugexe++ | META.list:
Add Distribution::Common::Remote

  github.com/ugexe/Perl6-Distributio...on--Remote
Extends Distribution::Common's installable distributions to common *remote* data sources using rakudos new `Distribution` interface. Includes a `Distribution::Common::Remote::Github`
01:39
01:40 mohae_ left 01:43 kalkin- joined 01:46 AndyBotwin joined 01:47 kalkin-_ left 01:49 Eddward joined, GNUYawk left
Eddward rakudo: [1,2,4 ... *].perl.say 01:50
camelia rakudo-moar 957dc0: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
Eddward rakudo: [1,2,4 ... *][1..5].perl.say 01:51
camelia rakudo-moar 957dc0: OUTPUT«(2, 4, 8, 16, 32)␤»
gfldex m: my $longlist := 1,2,4 ... *; say $longlist.WHAT;
camelia rakudo-moar 957dc0: OUTPUT«(Seq)␤»
gfldex m: my $longlist := 1,2,4 ... *; say $longlist.perl; 01:52
camelia rakudo-moar 957dc0: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
Eddward rakudo: [1,2,4 ... *][1..(8**2)].perl.say
camelia rakudo-moar 957dc0: OUTPUT«(2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 171…»
Eddward rakudo: ([+] ([1,2,4 ... *][1..(8**2)]) ).perl.say
camelia rakudo-moar 957dc0: OUTPUT«36893488147419103230␤»
gfldex m: my \longlist = 1,2,4 ... *; say &longlist.perl; 01:53
camelia rakudo-moar 957dc0: OUTPUT«Nil␤»
Eddward rakudo: ( ([+] ([1,2,4 ... *][1..(8**2)]) )/ 100).perl.say 01:54
camelia rakudo-moar 957dc0: OUTPUT«368934881474191032.3␤»
01:54 yqt left
ugexe m: /msg camelia m: .say for 1..* 01:54
camelia rakudo-moar 957dc0: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at <tmp>:1␤------> 3/msg camelia m: .say for 1..*7⏏5<EOL>␤Unable to parse regex; couldn't find final '/'␤at <tmp>:1␤------> 3/msg camelia m: .say for 1..*7⏏5<EOL>␤ expecting any of:␤ …»
02:01 colomon left
Eddward Nice that the language easily handles absurdly large numbers. 02:02
02:04 Eddward left
AlexDaniel m: say 36893488147419103230 02:05
camelia rakudo-moar 957dc0: OUTPUT«36893488147419103230␤»
02:05 colomon joined
AlexDaniel m: say 2⁶⁴ 02:05
camelia rakudo-moar 957dc0: OUTPUT«18446744073709551616␤»
AlexDaniel well, it is just a little bit large
m: say 2⁴⁰⁹⁶ # now we are talking 02:07
camelia rakudo-moar 957dc0: OUTPUT«1044388881413152506691752710716624382579964249047383780384233483283953907971557456848826811934997558340890106714439262837987573438185793607263236087851365277945956976543709998340361590134383718314428070011855946226376318839397712745672334684344586617496807…»
AlexDaniel commit HEAD say 2⁴⁰⁹⁶ # now we are talking
committable AlexDaniel: gist.github.com/a57e82657cef83ab15...1d41b4664b
gfldex m: say (2⁴⁰⁹⁶).chars
camelia rakudo-moar 957dc0: OUTPUT«1234␤»
gfldex :)
02:12 kurahaupo left 02:13 itaipu left
Herby_ question: if I was curious to see what the perl 6 'permutations' algorithm looks like, how would I see it? 02:18
I was trying to write my own but I know it won't be anywhere near as quick 02:19
ugexe cd rakudo && git grep "method permutation"
Herby_ hmm. I'm on a windows box and don't have git installed 02:20
ugexe probably just use `method permutations` on the web search
gfldex Herby_: you can search a repo on github
Herby_ ok thanks, I'll take a look
github.com/perl6/roast/issues/79 02:21
?
gfldex Herby_: it's at the bottom of src/core/operators.pm 02:22
Herby_ thanks 02:23
dalek c: 6218b1b | (Tom Browder)++ | doc/Language/variables.pod6:
desperation try
02:25
02:25 colomon left 02:27 tbrowder joined 02:30 cdg joined 02:35 cdg left 02:40 zacts left 02:42 noganex joined 02:45 noganex_ left 02:50 dmitri joined 02:52 colomon joined 02:55 dvinciguerra_ left 02:56 kaare__ joined 03:04 cyphase left
Xliff .tell FROGGS Finished with 07dtd in XML::LibXML, but this one was ugly. I will be going over some of the issues this week, and hope to get a PR to you around the start of Aug. 03:04
yoleaux Xliff: I'll pass your message to FROGGS.
03:09 cyphase joined 03:10 GNUYawk joined, skids left 03:11 skids joined 03:12 skids left 03:13 skids joined, skids left 03:14 skids joined 03:18 skids left, canopus left 03:23 Tonik joined, scotl joined, canopus joined 03:24 skids joined 03:25 skids left
scotl Hi. I have a script (p6) that loads %a = "file".IO.lines.map: { m/..../; $0 => True }. sub MAIN(Str $b) { say $a<$b>:exists; } says False for a key that according to %a.perl exists... Is there a 'gotcha' I've missed? 03:26
This is under windows, rakudo star 2016.07 03:27
gfldex scotl: did you mean say $a<<$b>>:exists; ? 03:28
or say $a{$b}:exists; for that matter
03:28 skids joined
scotl Sorry, I meant to type "%a<$b>:exists" 03:28
geekosaur <> acts like single quotes in that there is no interpolation 03:29
03:29 skids left
geekosaur you wanted << >> or { } 03:29
probably the latter because the angle brackets do word splitting
scotl Thankyou geekosaur
03:30 Tonik left, jack_rabbit joined
scotl I wanted { } 03:30
03:30 skids joined 03:31 molaf joined, skids left 03:32 skids joined 03:34 skids left
dalek c: dcea15d | (Tom Browder)++ | doc/Language/variables.pod6:
remove confiusing row separator lines
03:34
03:34 skids joined 03:37 djbkd_ joined 03:42 scotl left 03:44 khw left
AlexDaniel tbrowder: confusing for the parser, right? :) 03:49
03:49 finanalyst left 03:52 labster left 03:55 TEttinger joined 03:57 molaf left
konobi .tell pmurias are the json files that nqp-loader reads newline delimited? 03:57
yoleaux konobi: I'll pass your message to pmurias.
04:01 labster joined 04:05 Herby_ left 04:12 kurahaupo joined 04:22 welton left, Zoffix joined
dalek c: 78eed14 | 0racle++ | doc/Type/List.pod6:
Correct output of permutations sub
04:24
c: d9d512a | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Type/List.pod6:
Merge pull request #757 from 0racle/0racle-permutations

Correct output of permutations sub
Zoffix If I have a list of Callables each of which mutates a variable and may or may not return a Promise, is there a way to iterate over them without blocking and `await`ing anything (calling a Callable that doesn't return a Promise isn't considered blocking)? 04:28
m: my $text = 'foobar'; $text = $_($text) for *.subst(/o/, 'A'), *.subst(/a/,'Z'), *.subst(/r/, 'M'); say $text
camelia rakudo-moar 550040: OUTPUT«fAobZM␤»
Zoffix ^ basically that, except some of the callables return a Promise.
lizmat grep(Promise) ? 04:29
Zoffix They have to be done in order.
lizmat await @callables.grep(Promise)
await @callables.>>().grep(Promise) 04:30
await @callables>>.().grep(Promise) 04:31
Zoffix Hm
lizmat m: { say "foo" }.() # use of .()
camelia rakudo-moar 550040: OUTPUT«foo␤»
Zoffix That won't guarantee order. When a Promise is returned, the thing needs to queue any further Callables until the Promise is kept. 04:32
lizmat m: ({ say "foo" },{say "bar"})>>.()
camelia rakudo-moar 550040: OUTPUT«foo␤bar␤»
lizmat ah, yes, ok
Zoffix I was gonna write a module doing it the long way. Just wanted to check I'm not missing any obvious short way.
lizmat await @callables>>.().grep({ $_ ~~ Promise && Promise.result }) 04:33
but that won't fix the inherit non-lineairness of >>
await @callables>>.().grep({ $_ ~~ Promise && .result })
Zoffix tries to wrap head around that 04:34
lizmat perhaps a grep :x adverb, which would first do $_ = $_() and then use that value to check ? 04:35
Zoffix TIL grep has adverbs :o 04:36
m: my @callables = *.subst(/o/, 'A'), -> $v { start { sleep 2; $v.subst(/A/,'Z') }; }, *.subst(/r/, 'M'); my $text = 'foobar'; for @callables { my $r = $_($text); unless $r ~~ Promise { $text = $r; next }; $text = await $r }; say $text 04:43
camelia rakudo-moar 550040: OUTPUT«fZobaM␤»
Zoffix The second half of it is tossing `await` and instead shooting off a new Promise inside of which the callable calls will continue. Basically the equivalent of wrapping the whole thing in `start {}` but doing so only if at least one Callable returns a Promise. 04:45
use Callable::Chained; my $text = 'foobar'; do-chained @callables, \($text), { say $text }; # plan so far 04:48
04:48 Cabanossi left
Zoffix Shit, it's 1AM :o 04:50
04:51 Cabanossi joined, finanalyst joined 04:54 skids left 04:58 dmitri left 05:12 bob777 left 05:19 cibs left 05:21 cibs joined 05:29 cibs left, s34n joined 05:30 CIAvash joined
s34n where is the regex ~ documented? as in '(' ~ ')' 05:30
05:31 cibs joined 05:38 ufobat joined
ufobat good morning 05:39
holyghost gm
.tell holyghost "Lt Commander Paris speaking" 05:41
yoleaux holyghost: Talking to yourself is the first sign of madness.
Zoffix s34n, probably somewhere on this page: docs.perl6.org/language/regexes /'(' ~ ')' \d+/ is the same as /'(' \d+ ')'/
It's supposed to give better something (error messages? failed matches? grammar tracing? something or other) 05:42
holyghost .tell holyghost "I can't do that"
yoleaux holyghost: Talking to yourself is the first sign of madness.
holyghost ok, mad bitch beer then :-) 05:43
Zoffix FFS... Rewrote my module to avoid broken LWP::Simple to use HTTP::UserAgent.... Just to find out HTTP::UserAgent is broken when cookies are involved ~_~
(Perl 6 Ecosystem)--
Seems the only other alternative is HTTP::Tinyish... but it's just shelling out to curl :/ 05:44
(╯°□°)╯︵ ┻━┻
s34n m: token quote { <!after \\> '"' }; token quoted { <.quote> ~ <.quote> <-[<.quote>]>* }; say ('"hello"' ~~ quoted); 05:45
camelia rakudo-moar c2ae91: OUTPUT«5===SORRY!5===␤Undeclared routine:␤ quoted used at line 1␤␤Other potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did you mean 'my token quote'?)␤ at <tmp>:1␤ ------> 3token 7⏏5quote { <!af…»
s34n m: token quote { <!after \\> '"' }; token quoted { <.quote> ~ <.quote> <-[<.quote>]>* }; say ('"hello"' ~~ /<quoted>/); 05:46
camelia rakudo-moar c2ae91: OUTPUT«Potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did you mean 'my token quote'?)␤ at <tmp>:1␤ ------> 3token 7⏏5quote { <!after \\> '"' }; token quoted ␤ Useless declaration of a has-scoped method i…»
s34n m: my token quote { <!after \\> '"' }; my token quoted { <.quote> ~ <.quote> <-[<.quote>]>* }; say ('"hello"' ~~ /<quoted>/);
camelia rakudo-moar c2ae91: OUTPUT«Method 'quote' not found for invocant of class 'Cursor'␤ in regex quoted at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
05:47 jack_rabbit left
Zoffix m: my token quote { <!after \\> '"' }; my token quoted { <quote> ~ <quote> <-<quote>>* }; say ('"hello"' ~~ /<quoted>/); 05:48
camelia rakudo-moar c2ae91: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ~ (must be quoted to match literally)␤at <tmp>:1␤------> 3; my token quoted { <quote> ~ <quote> <-7⏏5<quote>>* }; say ('"hello"' ~~ /<quoted>␤Malformed regex␤at <tmp>:1␤------> 3; my to…»
Zoffix :/
m: my token quote { <!after \\> '"' }; my token quoted { <quote> ~ <quote> <-quote>* }; say ('"hello"' ~~ /<quoted>/); 05:50
camelia rakudo-moar c2ae91: OUTPUT«Method 'quote' not found for invocant of class 'Cursor'␤ in regex quoted at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
Zoffix m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <quote> ~ <quote> <-quote>* }; }.parse('"hello"').say
camelia rakudo-moar c2ae91: OUTPUT«「"hello"」␤ quoted => 「"hello"」␤ quote => 「"」␤ quote => 「"」␤»
05:51 zacts joined
Zoffix m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <quote> ~ <quote> <-quote>* }; }.parse('"he\\"llo"').say 05:51
camelia rakudo-moar a0161a: OUTPUT«「"he\"llo"」␤ quoted => 「"he\"llo"」␤ quote => 「"」␤ quote => 「"」␤»
Zoffix Oh, nm, I forgot to instantiate HTTP::UserAgent 05:54
Zoffix de-rages
s34n m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <.quote> ~ <.quote> <-quote>* }; }.parse('"hello"').say
camelia rakudo-moar a0161a: OUTPUT«「"hello"」␤ quoted => 「"hello"」␤»
s34n m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <.quote> ~ <.quote> <-.quote>* }; }.parse('"hello"').say
camelia rakudo-moar a0161a: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ~ (must be quoted to match literally)␤at <tmp>:1␤------> 3}; token quoted { <.quote> ~ <.quote> <-7⏏5.quote>* }; }.parse('"hello"').say␤Malformed regex␤at <tmp>:1␤------> 3}; token quot…»
s34n m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <.quote> ~ <.quote> -<.quote>* }; }.parse('"hello"').say
camelia rakudo-moar a0161a: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter ~ (must be quoted to match literally)␤at <tmp>:1␤------> 3"' }; token quoted { <.quote> ~ <.quote>7⏏5 -<.quote>* }; }.parse('"hello"').say␤Malformed regex␤at <tmp>:1␤------> 3' }; token…»
Zoffix s34n, the dot goes after the < 05:55
s34n m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <.quote> ~ <.quote> <-[<.quote>]>* }; }.parse('"hello"').say
camelia rakudo-moar a0161a: OUTPUT«Nil␤»
Zoffix m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <.quote> ~ <.quote> <.-quote>* }; }.parse('"hello"').say
camelia rakudo-moar a0161a: OUTPUT«「"hello"」␤ quoted => 「"hello"」␤»
05:55 dingusman joined
Zoffix m: grammar { token TOP { <quoted> }; token quote { <!after \\> '"' }; token quoted { <quote> ~ <quote> <-quote>* }; }.parse('"hello"').Str.say 05:55
camelia rakudo-moar a0161a: OUTPUT«"hello"␤»
s34n hm. I tried that locally
05:56 dingusman left, AlexDaniel left
s34n Zoffix: gist.github.com/anonymous/5f6d2a61...f74d77b342 hangs for me 05:58
Zoffix s34n, add use Grammar::Tracer and see what it's doing 05:59
My wild guess would be it's chilling out here: gist.github.com/anonymous/5f6d2a61...e1-txt-L13
The `.*`
Maybe, dunno./ 06:00
s34n Zoffix: good guess 06:01
I just read that perl6 has predefined <lt> and <gt> 06:02
06:03 wamba joined
Zoffix :o 06:03
m: my @c = -> $ { say 42 }; dd @c.grep: { .signature ~~ \(42) } 06:10
camelia rakudo-moar a0161a: OUTPUT«().Seq␤»
Zoffix m: my @c = -> $ { say 42 }; dd @c.grep: { \(42) ~~ .signature }
camelia rakudo-moar a0161a: OUTPUT«Method 'signature' not found for invocant of class 'Capture'␤ in block <unit> at <tmp> line 1␤␤»
Zoffix This is kinda LTA
m: my @c = -> $ { say 42 }; dd @c.grep: { my $v = $_; \(42) ~~ $v.signature }
camelia rakudo-moar a0161a: OUTPUT«(-> $ { #`(Block|67212688) ... },).Seq␤»
Zoffix m: my @c = -> $ { say 42 }; dd @c.grep: { .signature.ACCEPTS: \(42) }
camelia rakudo-moar a0161a: OUTPUT«(-> $ { #`(Block|84889984) ... },).Seq␤»
Zoffix ¯\_(ツ)_/¯
06:11 ontheroadagain joined
ontheroadagain hey people! 06:11
Zoffix \o
ontheroadagain o/
spent all day making a logo today wanna see 06:12
06:12 cibs left
Zoffix Um.. sure 06:13
ontheroadagain tell me what you think
i.imgur.com/p8i1kpp.png
its perl related
Zoffix Fuck's sake
Child porn. Don't click. 06:14
mst, are you around?
06:14 ontheroadagain left
Zoffix eww 06:14
GNUYawk -_-
06:15 cibs joined
GNUYawk lesson learned: dont click links from people who just joined the channel 06:16
lizmat .tell moritz you may want to redact a line in the backlog by ontheroadagain a few minutes ago
yoleaux lizmat: I'll pass your message to moritz.
moritz removed 06:18
yoleaux 06:16Z <lizmat> moritz: you may want to redact a line in the backlog by ontheroadagain a few minutes ago
moritz has anybody contacted imgur?
lizmat not that I know
GNUYawk you guys really think that looks like cp? doesnt look like it to me
Zoffix The kid looks around 12 to me... 06:19
GNUYawk weird. not to me
lizmat in any case, ontheroadagain was not telling the truth about the content of the link 06:20
and it was not a rickroll
GNUYawk searched google for the image and it comes up a bunch too
wouldnt google take it down if its cp
Zoffix I doubt they go around asking for IDs
Zoffix doesn't even want to know what sort of body fluids are involved in that picture.
moritz unless nobody notified them yet
anyway, I've submitted a removal request to imgur 06:21
Zoffix moritz++
GNUYawk ill post an eye bleach 06:22
i.imgur.com/CBmYUU8.jpg
Zoffix Thanks.
That's a very nice looking bed.
s34n m: say('""' ~~ /'"' ~ '"' <-['"']>*/) 06:23
camelia rakudo-moar a0161a: OUTPUT«Potential difficulties:␤ Quotes are not metacharacters in character classes␤ at <tmp>:1␤ ------> 3say('""' ~~ /'"' ~ '"' <-7⏏5['"']>*/)␤ Repeated character (') unexpectedly found in character class␤ at <tmp>:1␤ ------> …»
s34n m: say('""' ~~ /'"' ~ '"' <-["]>*/)
camelia rakudo-moar a0161a: OUTPUT«「""」␤»
GNUYawk i.imgur.com/e8ZK8z5.jpg
more in case you need it
i know i do
Zoffix Nah, I like the bed better than some weird letter 'B' or is that an 'R'? 06:24
GNUYawk and one more for good measure: i.imgur.com/gJfCLMh.jpg
moritz imgur.com/gallery/f3MqX38 06:25
Zoffix \o/
06:26 firstdayonthejob joined, rurban joined 06:27 rurban left, GNUYawk left
ShimmerFairy m: role A[::T = Numeric] { method B() { my ::T @foo } }; A.B 06:27
camelia rakudo-moar a0161a: OUTPUT«Method 'instantiate_generic' not found for invocant of class 'Array[T]'␤ in method B at <tmp> line 1␤ in any at gen/moar/m-Metamodel.nqp line 1736␤ in block <unit> at <tmp> line 1␤␤»
ShimmerFairy ^^^ is there any way I could hope to make that work? (Do I need to write a class with a custom ^parameterize instead?) 06:30
moritz m: role A[\T = Numeric] { method B() { my ::T @foo } }; A.B 06:31
camelia rakudo-moar a0161a: OUTPUT«Method 'instantiate_generic' not found for invocant of class 'Array[T]'␤ in method B at <tmp> line 1␤ in any at gen/moar/m-Metamodel.nqp line 1736␤ in block <unit> at <tmp> line 1␤␤»
moritz m: role A[\T = Numeric] { method B() { my T @foo } }; A.B
camelia rakudo-moar a0161a: OUTPUT«===SORRY!===␤No compile-time value for T␤»
moritz :(
06:32 domidumont joined
ShimmerFairy m: role A[::T = Numeric] { method B() { my T $foo; say $foo.WHAT } }; A.B 06:32
camelia rakudo-moar a0161a: OUTPUT«(Numeric)␤»
lizmat ShimmerFairy: think you need to write your own ^parameterize indeed :-(
ShimmerFairy m: role A[::T = Numeric] { method B() { my @foo := Array[T]; say @foo.WHAT } }; A.B # even weirder
camelia rakudo-moar a0161a: OUTPUT«(Array[T])␤»
lizmat or perhaps not
please rakudobug
ShimmerFairy lizmat: I wouldn't be surprised if this is because Array itself uses ^parameterize, actually (see how the scalar gets a resolved T, but Array[T] doesn't?) 06:33
ShimmerFairy rakudobugs
Here it be, if anyone wants to keep an eye on it: rt.perl.org/Ticket/Display.html?id=128726 06:40
lizmat ShimmerFairy++ 06:42
06:43 domidumont left
s34n Zoffix: in gist.github.com/anonymous/4d0c6c1d...dccae3800a , why does etag fail? and why does the lt right above it match? (or rather why is it testing lt instead of -lt?) 06:47
06:53 domidumont joined 06:57 domidumont left 06:58 domidumont joined 07:05 cibs left 07:06 samb1 left, cdg joined 07:07 cibs joined 07:10 zakharyas joined 07:11 cdg left, aindilis left 07:15 djbkd_ left 07:16 darutoko joined 07:25 pmqs left 07:33 abraxxa joined 07:34 pdcawley joined 07:38 abraxxa left 07:39 abraxxa joined, BillSussman joined 07:41 AndyBotwin left, pmqs joined 07:45 s34n left 07:48 cooper left, cooper joined, cooper left, cooper joined
Roamer` hmmm... 07:51
m: sub foo() { for <a b> X <c d> -> ($a, $b) { say "$a $b" } }; foo; foo;
camelia rakudo-moar 455180: OUTPUT«a c␤a d␤b c␤b d␤a c␤a d␤b c␤b d␤»
Roamer` hah, has this been fixed since 2016.07.1? wow 07:52
07:53 Flying_Squirrel joined
Roamer` commit 2016.07.1 sub foo() { for <a b> X <c d> -> ($a, $b) { say "$a $b" } }; foo; foo; 07:54
committable Roamer`: ¦«2016.07»: No build for this commit
Roamer` commit 664af92 sub foo() { for <a b> X <c d> -> ($a, $b) { say "$a $b" } }; foo; foo;
committable Roamer`: ¦«664af92»: No build for this commit
07:58 domidumont left 07:59 Flying_Squirrel left 08:01 jonas2 joined 08:06 domidumont joined
masak antenoon, #perl6 08:10
08:11 dakkar joined
moritz \o masak 08:12
masak today's question: what makes Lisp's homoiconicity so wonderful (up to and including allegedly having the Quality Without A Name), while XSLT's homoiconicity is a trainwreck of sadness and dejection? 08:13
ShimmerFairy masak: my money's on the w3c (or, for a touch of homogeneous irony, the www) :P 08:20
jast I'm fairly sure the answer, as always, is "XML"
08:22 sno joined
moritz I don't know enough about XSLT to really comment, but I'd be interested in a profound answer 08:27
ShimmerFairy masak: Also, why is LaTeX math mode a pretty good way of notating math, while MathML is a cliff-diving trainwreck of wasted space and broken dreams?
masak moritz: I want to blog about this (and I have my own thoughts on it), but I thought I would sound out #perl6 first for answers :) 08:29
ShimmerFairy: one almost has the feeling that there's something wrong with... XML itself. 08:30
no, surely not.
that can't be.
DrForr Blame it on SGML :) 08:31
moritz ShimmerFairy: afaict MathML is mainly a compilation target for tex2html converters :-)
DrForr Alternatively finish up Damian's LaTeX parser :)
08:38 kurahaupo left
ShimmerFairy moritz: .png would be a better target :P 08:43
moritz ShimmerFairy: doesn't scale... SVG?
ShimmerFairy moritz: yeah, that'd be better, but I decided even .png would be better than MathML :P 08:44
masak moritz: but XML itself is "a format that is both human-readable and machine-readable" (according to Wikipedia) and "human-legible and reasonably clear" (www.w3.org/TR/REC-xml/#sec-origin-goals)
moritz: does that mean that MathML does not adhere to XML's goals of legibility? 08:45
ShimmerFairy masak: sure, and PHP is a consistent, well-thought-out programming language :V .
masak ShimmerFairy: I don't know anyone seriously claiming that, though.
moritz masak: my experience with MathML is quite old, so take my opinion with a grain of salt, but when last I tried it, it hadn't met these goals 08:46
ShimmerFairy masak: I think in general, XML's fundamental problem is that it tries and fails at being a kind of Lisp. (That is, Lisp is what XML wishes it could be.)
Take one look at the novel you have to write for a simple quadratic formula in MathML, and you won't want to get involved with it. I'll keep my LaTeX notation thanks. 08:47
moritz masak: and XML itself is human-readable, as long as it's short enough. Unfortunately many XML use cases produce *very* verbose XML, which IMHO is problematic
masak ShimmerFairy: this puts me in mind of www.schnada.de/grapt/eriknaggum-xmlrant.html
DrForr If XML markup wasn't so verbose it probably would have been DSSL :) 08:48
masak ShimmerFairy: also, I think so too (that XML and XSLT in particular tries and fails to be a kind of Lisp)
ShimmerFairy: it's as if they were cargo-culting the cool things about homoiconicity, but all they got was an air strip made of palm trees and coconuts
moritz the developers of GoCD have tried very hard to keep their configuration XML terse, and the result is legible, but IMHO still close to my pain threshold 08:49
ShimmerFairy masak: thinking about it, I'd freaking love to write web stuff in a Lisp syntax over SGML: (html (head (title "Foo")) rest...)
moritz see perlgeek.de/blog-en/automating-dep...eline.html (first code block) for an example
masak ShimmerFairy: I know a project like that. I can dig up the link if you're interested
moritz well, you could use p5's CGI.pm calls :-) 08:50
regarding the GoCD XML config, about half of those elements are fluff
masak moritz: reading that, I'm struck for the first time of the similarity between <jobs>...</jobs> and (BASIC's) WHILE...WEND 08:51
ShimmerFairy masak: ooh, that'd be nice. Also, looking at moritz's page makes me realize that XML doesn't actually have list support (e.g. the individual <arg> tags)
moritz closing tags that YAML, for example, avoids
ShimmerFairy which may be another contrast to Lisp :)
moritz masak: if..fi in bash :-)
masak YAML (though a separate discussion) seems a weird kind of half-success, too
I sincerely believe YAML succeeds exactly in the regards it makes the pain of XML stop 08:52
moritz YAML without the weird parts would be nice :-)
ShimmerFairy A YAML born from Perl 6 would be nice :)
masak YAML seems not-quite-fully-beaten by JSON in the configuration-files niche
08:52 ribasushi joined
ShimmerFairy JSON doesn't allow for comments, for one (excepting very recent versions of JSON) 08:53
moritz if you write 10:20 as a literal in YAML, a parser can either produce the string '10:20', or the integer 620
ShimmerFairy: and no trailing commas. God how I hate that
ShimmerFairy I... can't see how 10:20 becomes 620. 08:54
moritz ShimmerFairy: minutes:seconds
or hours:minutes, same thing basically
yes, fairly "interesting"
ShimmerFairy moritz: oh, I was getting confused because it looked like the 10: was being interpreted as a 6 ~somehow~ and then prepended to the 20. 08:55
I didn't quite realize 10 * 60 -> 600 + 20 -> 620 :P
moritz maybe 5:20 would have been a better example
though when the parser surprises you, you don't have the luxury of always having a good example at hand
DrForr . o ( 4:20? :) ) 08:56
tadzik (☞゚ヮ゚)☞
ShimmerFairy How 'bout making NAML, or Not Another Markup Language? :P 08:57
timotimo MOM; Mom Omits Markup 09:01
moritz I don't want a markup language. I want a data/serialization format 09:02
YASF
DFH -- data for humans
DrForr Google Protobuf? :)
ShimmerFairy
.oO(Killer Serial Format?)
09:03 cpage_ left
lizmat Sereal ? 09:04
afk&
moritz DrForr: protobuf is explicitly for computers, not for humans, is it? 09:05
09:05 mspo left, abraxxa left 09:06 abraxxa joined
DrForr True, I was ... not quite following, currently distracted listening to a symposium on gravitational waves. 09:07
lizmat
.oO( I can feel the Earth move under my feet )
moritz DrForr: sounds nice 09:14
09:14 abraxxa left
moritz those black hole mergers are really impressive 09:15
I mean, radiating out 3 sun masses worth of energy in such a short time frame? mind blow, several times over
09:15 abraxxa joined
DrForr They're talking about the measurements required right now, on the order of 10e-16 meters. 09:16
moritz makes me wonder how much total energy there's out there simply in form of gravitational waves, and if the total energy of that is larger than that of all the light in the universe
DrForr: that's also seriously impressive 09:17
DrForr Roughly 10e-6 of a *nucleus*.
moritz I think in the long run we need LIGO in space :-)
just too many pesky trucks rolling by on earth 09:18
DrForr Naah, too much background radiation. Stick it on the moon, bury it a hundred meters deep. 09:19
moritz how seismic active is the moon?
09:19 cpage_ joined
DrForr Much less active than the Earth. 09:20
09:20 _ramix_ joined
DrForr They're talking now about validating string theory. 09:25
moritz ... and invalidating too, I hope :-) 09:26
DrForr Well granted. 09:27
timotimo www.reddit.com/r/shittyprogramming...g_a_regex/ 09:28
DrForr And they now throw out the term 'kilonova' which of course will eat up the *rest* of the day's background noise. 09:32
09:32 Ven_ joined
DrForr Either 'kilo' or 'killer', the accent is ambiguous. 09:32
timotimo is that more or less than a supernova?
DrForr No idea yet, I'm letting this finish first.
I'm guessing it's beyond supernova. Where the *heavy* elements are made, I'm wondering if it's like Przebylski's star (probably mangling the name - It's a weird anomaly - Its spectral lines show technetium. 09:34
ShimmerFairy
.oO(but everyone knows the next modifier key suggests hypernova!)
09:40
timotimo heh 09:42
09:42 RabidGravy joined
DrForr Oof, they're a candidate for GRBs. 09:44
timotimo i don't know what that is :|
DrForr Gamma ray bursts. 09:45
timotimo ah
DrForr Between nova and supernova, which makes perfect sense. (see: the kilominx) 09:48
moritz kinda-awesome-nova :-) 09:49
ShimmerFairy goodnova
09:50 hwcomcn joined
DrForr Apparently they're responsible for most of the *other* stable elements beyond lead. 09:51
09:51 hwcomcn left 09:52 hwcomcn joined 09:53 araujo joined, araujo left, araujo joined 09:54 araujo left, araujo joined
timotimo neat 09:54
09:55 hwcomcn left 09:56 rindolf joined, araujo left
masak ShimmerFairy: when I heard the stated reason JSON doesn't allow comments, I nodded and thought about it. still not sure I agree, but it's a reason worth considering. 09:57
09:57 araujo joined
ShimmerFairy masak: well, I contend that if your data serialization format isn't sufficient and forces people to do things like parse comments, chances are you're doing something wrong :P 09:57
masak (the reason being that comments would likely end up being mis-used as meta-data and/or side-channel to the parser) 09:58
09:58 hwcomcn joined
masak ShimmerFairy: right -- it's also very classic Crockford to say "X could potentially be used in bad ways, so we're going to exclude X" 09:59
that's basically the entire premise of "JS The Good Parts", except it's stated in terms of the subset kept
ShimmerFairy "side-channel to the parser"... is the complaint really that comments side step the parser? As in, the entire goddamn reason comments exist? o_e 10:00
masak no 10:01
that would be fine -- that's the normal/expected use of comments
basically targeting the human reader
the case that would not be OK is where the comment somehow figured in later processing of the JSON data
moritz configuration files *really* should allow comments 10:02
masak nowadays, I agree fully
moritz that means using json for config files is a bad idea, but people still do it, because it's so easy to use
ShimmerFairy *cough*META6.json*cough*
masak I also nowadays pay much less heed to arguments of the form "X is dangerous if misused, so we should exclude X"
timotimo turing complete things are too dangerous 10:03
throw out all "programming languages"!
masak moritz: I guess a workaround within the bounds of old-JSON is to define a property `comment` or `_` in the appropriate place
timotimo only allow electronic circuits without logic looping back on itself!
10:03 hwcomcn left
masak moritz: works unless you're constrained by a draconian schema 10:03
ShimmerFairy masak: that's what I did in one module, except the key name was suitably pissed-off at the workaround :P 10:04
10:04 hwcomcn joined
masak timotimo: the flip/serious side of that line of reasoning is that, the weaker you make your DSL, the cooler you can make the transformations/analysis of it 10:04
moritz masak: but then you might need application logic for the workaround in the configuration file... AAARGH
masak moritz: yes
ShimmerFairy gee its almost like they should have a construct that compilers ignore so you dont have to oh well 10:05
timotimo sounds true, yeah
moritz at which point you created a dent in your waterbed, with the appropriate hill in another part of the application
timotimo ShimmerFairy: but you do want the parser to recognize it, so that when your program changes the data, the comment doesn't just disappear
10:05 hwcomcn left
moritz I'd rather have the complexity for handling configuration in, you know, the part that handles the configuration :-) 10:05
10:06 hwcomcn joined
masak moritz: would it be fair to say that Crockford's model of developers/API users is the same as the one "bad managers" have of employees: that they need to be managed, supervised, and definitely not trusted with responsibility, choices, or force multipliers? 10:07
moritz masak: right, it's the "I give you a process, you follow it" model, rather than letting the developers help shape the process 10:08
masak I've been doing more group/team stuff at $work in 2016 than ever before 10:10
10:11 domidumont left
masak I'm currently very interested in how the tension between roles like "leader", "manager", "enabler" and "visionary" interact and rub up against each other 10:11
10:11 TEttinger left, domidumont joined
moritz at $work, my boss / team lead is also the product manager for the software we develop. That works great 10:12
because there is no resource conflicts between those roles
(but it requires somebody to be good at both) 10:13
we have a visionary who we interact with, and it's an interesting tension
lots of good ideas, but also somemtimes too much distance from the real world 10:14
10:16 _ramix_ left 10:39 kurahaupo joined 10:45 kurahaupo left 10:48 sdoda joined 11:08 bob777 joined 11:10 labster left
Woodi ehmm, so, functional programming wants to forbid assignments becouse it introduces "time" into sources and destroys referential integrity... but assignments are SO natural for humans... (and current CPUs). so maybe we should finally confirm we live in 4th dimensional space and start to timestamp every single varible ? like: my $x = (42,10:14) ? 11:21
11:22 yqt joined
Woodi of course I have not idea what are consequences of what I just said... :) 11:22
masak++ / ShimmerFairy++ # inventing Web 3.0 (Lisp) 11:26
moritz Woodi: functional programming mostly forbids updating; one-time assignment is fine
masak er, no
Woodi moritz: right, state changing is problematic 11:27
masak Woodi: functional programming *acknowledges* that values mutating over time is a problem (and tries various ways to mitigate it). ordinary imperative programming just runs headlong into the quagmire, with corresponding consequences.
11:29 brrt joined
brrt good * 11:29
part of these consequences is that you have to think before you implement? 11:30
also, i think what Woodi describes is a 'world monad' or something like that
Woodi brrt: why monads? it was different topic for me... 11:31
moritz monads are a way to manage mutation
brrt it's basically means that a variable becomes a list-of-variables
pdcawley moritz: amongst other things :)
brrt in this case, at least
Woodi so they are workarounds...
brrt hmm, yes and no 11:32
they are a different conceptualizaiton of mutable state
i dislike the world 'conceptualization'
it seems 'concept' should be enough, but we're really talking about the applied concept instead 11:33
Woodi brrt: but it saved us from net databases ;)
brrt i'm not sure i follow
Woodi relations are "conceptual" view of storage reprezentation :) 11:34
brrt still not sure
Woodi Codd, 1972 ? 11:35
that timestamping varibles is a bit like SSA... 11:37
11:37 cdg joined
moritz wouldn't eat 44 year old cod 11:38
brrt well, i had no idea about that :-)
but i think relational databases explicitly allow updates
most are implemented with a log
but that is separate from the issue of vraiables-on-a-timestamp 11:39
eh timeline
Woodi brrt: yes, off topic
brrt no problem :-)
masak started with xlst :-P
moritz as long as it touches programming languages, you can't be much off topic here when you discuss concepts 11:40
brrt it's how we steal ideas anyway :-) 11:41
Woodi (a "..." "Link") is nicer then <a ...> ... </a> :) 11:42
brrt well, i know of some guy who has once said that it had the visual appeal of oatmeal with fingernails clipped in 11:46
so not everybody is inclined to agree
Woodi but... but Perl is secret Lisp reimplementation !1 11:51
moritz yes, but remember it's *secret* 11:54
you're not supposed to talk about it in a public place like this
moritz goes to scrub the IRC logs
brrt lisp is also reimplemented as R and a bunch of other languages 11:56
first order of business after all the other first orders of business
implement R-like data facilities for perl6
12:00 kid51 joined, cpage_ left 12:03 rindolf left 12:04 cpage_ joined 12:05 ribasushi left 12:23 cyphase left, rindolf joined
tbrowder AlexDaniel: confusing the pod handler is correct--I haven't see evidence of a grammar problem yet, but time will tell; at any rate, i think the table looks better than it did 12:25
12:25 finanalyst left 12:26 CIAvash left 12:27 cyphase joined 12:35 ribasushi joined, ptolemarch joined
El_Che for the perl5 coders here, what's nowadays the builder module to use? E:MM? M::B? M::I? other? 12:37
(chose to use p5 because of Net::LDAP for this mini project) 12:38
DrForr M::I, just don't use the ::Build option.
El_Che that's (M::I) is what I used last time. I am still hip! :)
stevieb I use Module::Starter's module-starter cli app with the --eumm flag 12:39
El_Che stevieb: that's Module::Starter's default I think
DrForr Oh, yes, ::Starter, sorry. I haven't done p5 greenfield in a while either :)
Oh, right, I'm still thinking the right way... foo TDM TLAs. 12:40
El_Che Let's see how IntelliJ's perl support is (plugin) 12:41
DrForr o/' It's the end of the 'verse as we know it o/' 12:42
El_Che (I know already my source will be full of :i en :q! :) )
stevieb El_Che: it works spectactularly, even has debug support. I've used it for over a year (I was using PyCharm for $work, and decided to try it out). I also use the Vim plugin
El_Che: perl5 that is 12:43
12:43 sdoda left
El_Che stevieb: I used Netbeans for Java in the past. I installed IntelliJ because we had some Java projects, but in the end I used to for the Go plugin (to assist the typing while learning go) 12:43
I want/need something that monitors the Openldap master auditdb file and trigger actions when needed 12:45
12:46 brrt left
stevieb El_Che: I've never done Java dev before, but we use Python at work, so I tested it there, then on my Perl dev machines, I have IDEA installed with Camelcase (perl5 plugin). 12:46
El_Che yes, camelcase is what I am trying now
stevieb I absolutely love it. Install Devel::Camelcadedb if you need perl debugging support 12:47
El_Che ah great tip, thx
hopefully the author will find the time to support perl6 (he planned on it, I read somewhere)
12:48 rindolf left, rindolf joined
stevieb what I love most is it is cross-platform. I do 90% of my dev on *nix. Even though nearly all of my modules are cross-platform, there are a couple that I prefer to maintain on Windows directly. Even the IntelliJ config files can be copied back and forth 12:49
El_Che yeah, my work laptop is a windows machine (boo!), but Intellij runs in a Ubuntu VM :) 12:50
need to find a way to get AD certs automatically on a linux machine in order to get 802.1x working. In my todo if I ever find the time 12:52
13:13 Sgeo left 13:14 mohae_ joined 13:17 mohae left 13:27 abraxxa left, abraxxa1 joined, abraxxa1 left 13:43 pochi joined 13:45 pochi_ left 13:47 pmurias joined 13:51 prammer joined 13:54 skids joined 13:56 CIAvash joined 13:59 aindilis joined 14:00 prammer left 14:01 prammer joined 14:04 hwcomcn left 14:08 prammer left 14:12 molaf joined, jonas2 left 14:23 avenj left
[Coke] wonders why his mind thinks it's going to be easier to fork ack or just run at ack 1.0 instead of trying to unlearn some muscle memory. 14:32
14:37 holyghost left 14:38 holyghost joined
holyghost hello, I am fucking tired but nm 14:39
unmatched} :/ 14:41
Sounds like ENOTENOUGHCOFFEE
DrForr Afternoon. 14:46
14:49 hursh joined
Xliff \o 14:49
14:54 amitava joined, cdg left
amitava I am learning about perl6 operators (docs.perl6.org/language/operators#...recedence) - can someone please explain this construct? 14:55
C<%foo «+» %bar;>
> my %foo = :hello("world"), :foo("bar"); {foo => bar, hello => world} > my %bar = :hello("globe"), :bar("foo"); {bar => foo, hello => globe} > > > C<%foo <<+>> %bar;> ===SORRY!=== Error while compiling <unknown file> Undeclared name: C used at line 1
awwaiid the "C<...>" is part of documentation markup
amitava thx
awwaiid those examples aren't being processed as expected -- I'd fix them right now but am busy at work :) 14:56
14:57 hursh left
dalek c: 5124de1 | moritz++ | doc/Language/operators.pod6:
Fix markup, amitava++
14:57
amitava also, how to do you apply a plain old function as an hyper operator?
awwaiid amitava: prefix it with & to refer to it without invoking it
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; say %a «+» %b
camelia rakudo-moar 852d81: OUTPUT«{y => 5}␤»
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; say %a «&[+]» %b
camelia rakudo-moar 852d81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing « or »␤at <tmp>:1␤------> 3 = :1x, :2y; my %b = :3y, :3z; say %a «&7⏏5[+]» %b␤ expecting any of:␤ infix␤ infix stopper␤»
unmatched} :( 14:58
TimToady you'd need «[&foo]»
m: my %a = :1x, :2y; my %b = :3y, :3z; say %a «[&[+]]» %b
camelia rakudo-moar 852d81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in bracketed infix; couldn't find final ']' ␤at <tmp>:1␤------> 3= :1x, :2y; my %b = :3y, :3z; say %a «[&7⏏5[+]]» %b␤»
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; say %a «[&infix:<+>]» %b
camelia rakudo-moar 852d81: OUTPUT«{y => 5}␤»
awwaiid m: my @things = <2 3 5 8 2>; sub addem($a, $b) { $a + $b }; say [&addem] @things 14:59
camelia rakudo-moar 852d81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3 addem($a, $b) { $a + $b }; say [&addem]7⏏5 @things␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end…»
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; say %a «[[&[+]]]» %b
camelia rakudo-moar 852d81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in bracketed infix; couldn't find final ']' ␤at <tmp>:1␤------> 3 :1x, :2y; my %b = :3y, :3z; say %a «[[&7⏏5[+]]]» %b␤»
TimToady I guess that form doesn't work there
could be a bug
m: my %a = :1x, :2y; my %b = :3y, :3z; say %a »+« %b 15:00
camelia rakudo-moar 852d81: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1␤Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1␤{x => 1, y => 5, z => 3}␤»
awwaiid m: my @things = <2 3 5 8 2>; sub addem($a, $b) { $a + $b }; say ([&addem] @things)
camelia rakudo-moar 852d81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3addem($a, $b) { $a + $b }; say ([&addem]7⏏5 @things)␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ stateme…»
awwaiid oh, needs to be infix
TimToady mabye »+« should call unary forms when one or the other key is missing
amitava so, how do I apply hyper operator to an inline lambda?
unmatched} amitava: «[&(code)]» probably 15:01
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; say %a «[&(-> $a, $b { say "$a op $b" })]» %b
camelia rakudo-moar 852d81: OUTPUT«2 op 3␤{y => True}␤»
unmatched} m: my @things = <2 3 5 8 2>; sub addem($a, $b) { $a + $b }; say ([[&adde]m] @things)
camelia rakudo-moar 852d81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3addem($a, $b) { $a + $b }; say ([[&adde]7⏏5m] @things)␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ state…»
unmatched} m: my @things = <2 3 5 8 2>; sub addem($a, $b) { $a + $b }; say ([[&addem]] @things)
camelia rakudo-moar 852d81: OUTPUT«20␤»
unmatched} awwaiid: ^ you just need an extra set of []
amitava %foo <<&(*.uc)>> %bar ;
===SORRY!=== Error while compiling <unknown file> Missing << or >> at <unknown file>:1 ------> %foo <<&⏏(*.uc)>> %bar ; expecting any of: infix infix stopper
moritz that's not an operator 15:02
unmatched} amitava: MISSING P[
damn
amitava: missing []
moritz m: say <a b c d>».uc.perl
camelia rakudo-moar 852d81: OUTPUT«("A", "B", "C", "D")␤»
moritz that's the way to combine hypers and methods
15:03 zacts left
TimToady amitava: note that *.uc is a unary function, not a binary 15:03
infix hyper wants binary functions
so does reduce
amitava ok, can you please show me an example - sorry for being a bit slow :-)
TimToady everything we've done above that worked uses a binary function inside 15:04
notice the lambda I used has two arguments
amitava say, i want to concat the keys from %foo and %bar and corresponding values as well with an hyphen in the middle for only values
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; say %a Zuc %b; # LTA error
camelia rakudo-moar 852d81: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤A list operator such as "say" must have whitespace before its arguments (or use parens)␤at <tmp>:1␤------> 3a = :1x, :2y; my %b = :3y, :3z; say %a Z7⏏5uc %b; # LTA error␤ expecting any of:␤ …»
15:05 rindolf left
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; say %a Z[&(* ~ '-' ~ *)] %b 15:05
camelia rakudo-moar 852d81: OUTPUT«(x 1-z 3 y 2-y 3)␤»
TimToady amitava: at that point, I'd suggest writing a separate function and/or operator, and don't try to inline it
you can inline an operator you defined easily enough, and it will be less confusing to the reader 15:06
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; say %a.kv Z[&(* ~ '-' ~ *)] %b.kv
camelia rakudo-moar 852d81: OUTPUT«(x-z 1-3 y-y 2-3)␤»
unmatched} weee... But yeah, that's iffy, 'cause hashes are unordered
TimToady you can still use the hyper to get matching keys, just don't inline the whole function 15:07
15:07 rindolf joined
TimToady if you make the function a multi you could even do something sane with unmatched keys 15:08
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; say %(%a.kv Z[&(*~'-'~*)] %b.kv)
camelia rakudo-moar 852d81: OUTPUT«{x-z => 1-3, y-y => 2-3}␤»
unmatched} *are* hashes unordered in Perl 6? Whenever I dump them, they always appear ordered to my eye
TimToady the dumper/perl functions sort them for you
unmatched} Ah
TimToady but they're unordered internally
amitava unmatched: but i do not want the keys to have hyphen, just the corresponding values :-)
TimToady this sounds more like you want to classify the pairs and then postprocess the values 15:09
15:09 khw joined
amitava also, the example is using the Z (zip) operator - i am learning the <<op>> syntax 15:09
unmatched} amitava: so two hashes have the same keys and you want to produce one hash where values for matching keys are hyphenated?
amitava TimToady: yes 15:10
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; say classify *.key, flat %a, %b;
camelia rakudo-moar 852d81: OUTPUT«{x => [x => 1], y => [y => 2 y => 3], z => [z => 3]}␤»
rindolf TimToady: hi! Welcome back!
TimToady: how have you been?
TimToady well, given I was in Rome, it's actually further away from you :P
TimToady is recovering from jetlag 15:11
amitava unmatched: yes
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; %a.keys.map({ $_ => join '-',(%a{$_},%b{$_}).grep: *.defined }).Hash.say 15:12
camelia rakudo-moar 852d81: OUTPUT«{x => 1, y => 2-3}␤»
amitava umatched: i guess i meant within the context of hyper operator 15:13
15:13 girafe joined
unmatched} amitava: it's the wrong tool for the job. Hashes are unordered. 15:15
And even if you sort them, you won't get the keys matched up 15:16
amitava ok - thanks. It helped in understanding hyper operators although I have still some more to grok
unmatched} m: m: my %a = :1x, :2y; my %b = :3y, :3z; dd [%a.keys.sort, %b.keys.sort] 15:17
camelia rakudo-moar 852d81: OUTPUT«[("x", "y"), ("y", "z")]␤»
unmatched} So you'll get values for "x" hypened with "y"'s values and y's with z's
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; multi foo($a,Any:U) { $a }; multi foo(Any:U,$b) { $b }; multi foo($a,$b) { $a.key ~ ' => "' ~ $a.value ~ '-' ~ $b.value ~ '"' }; say %a »[&foo]« %b 15:19
camelia rakudo-moar 852d81: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:($a, Any:U $)␤:($a, $b)␤ in block <unit> at <tmp> line 1␤␤»
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; multi foo($a,Any:U) { $a }; multi foo(Any:U,$b) { $b }; multi foo(Any:D $a,Any:D $b) { $a.key ~ ' => "' ~ $a.value ~ '-' ~ $b.value ~ '"' }; say %a »[&foo]« %b 15:20
camelia rakudo-moar 852d81: OUTPUT«Method 'key' not found for invocant of class 'Int'␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
unmatched} 0.o
TimToady or some such
unmatched} TimToady: so hypers word different on hashes than on arrays?
TimToady how the heck could they possibly work the same? 15:21
15:21 canopus left
ugexe theres also the elusive categorize 15:22
unmatched} Well, it's not like I read the docs :) I always went with "Hyper operators apply a given operator enclosed by « and » to one or two lists, returning the resulting list." description
ugexe m: my %a = :1x, :2y; my %b = :3y, :3z; my %c = categorize *.key, flat %a, %b; say %c.perl
camelia rakudo-moar 852d81: OUTPUT«{:x($[:x(1)]), :y($[:y(2), :y(3)]), :z($[:z(3)])}␤»
amitava TimToady: Ambiguous call to 'foo'; these signatures all match: :($a, Any:U $) :($a, $b) in block <unit> at irc.p6 line 8
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; multi foo($a,Any:U) { $a }; multi foo(Any:U,$b) { $b }; multi foo(Any:D $a,Any:D $b) { $a.key => '"' ~ $a.value ~ '-' ~ $b.value ~ '"' }; say %a »[&foo]« %b 15:23
camelia rakudo-moar 852d81: OUTPUT«Method 'key' not found for invocant of class 'Int'␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
unmatched} I didn't know they did anything special on hashes
TimToady m: my %a = :1x, :2y; my %b = :3y, :3z; multi foo($a,Any:U) { $a }; multi foo(Any:U,$b) { $b }; multi foo(Any:D $a,Any:D $b) { $a ~ '-' ~ $b }; say %a »[&foo]« %b 15:24
camelia rakudo-moar 852d81: OUTPUT«{x => 1, y => 2-3, z => 3}␤»
TimToady was making it too hard
is that kinda what you want?
anyway, tmtowtdi 15:25
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; say hash %a »[&({join "-",($^a, $^b).grep: *.defined})]« %b; 15:26
camelia rakudo-moar 852d81: OUTPUT«{x => 1, y => 2-3, z => 3}␤»
15:26 bob777 left
amitava TimToady: that worked - thanks. 15:26
What does Any:U mean?
Any:D is a value right? 15:27
TimToady anything undefined, more or less, like if that key is missing
it's a type
unmatched} amitava: type Any that's undefined. They're called type smileys
15:27 canopus joined
TimToady it's a type for any value that makes you :D 15:28
unmatched} m: my %a = :1x, :2y; my %b = :3y, :3z; say hash %a »[&({@_.grep(*.defined).join: '-'})]« %b;
camelia rakudo-moar 852d81: OUTPUT«{x => 1, y => 2-3, z => 3}␤»
amitava i am loving perl6 - started on it this weekend
unmatched} \o/
ugexe m: my %a = :1x, :2y; my %b = :3y, :3z; my %c = categorize {.keys}, flat %a, %b; say %c.map: { .key => (.value>>.value).join("-") } 15:29
camelia rakudo-moar 852d81: OUTPUT«(x => 1 z => 3 y => 2-3)␤»
TimToady unmatched}++
ugexe++ too
amitava++ while we're at it :) 15:30
unmatched} TimToady++ \o/ ++ all around
amitava thx all 15:32
15:36 KevinFrench joined 15:38 BillSussman left
unmatched} m: say :64("1ffc42404852223a86483d63b76e52b53da0f2e4") 15:39
camelia rakudo-moar 852d81: OUTPUT«Cannot convert string to number: Cannot convert radix of 64 (max 36) in '3:64<⏏051ffc42404852223a86483d63b76e52b53da0f2e4>' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
unmatched} I'm kinda bummed we don't support base64 encode/decode in core.
Oh, actually never mind. :64() has nothing to do with it.... 15:40
I guess sleeping 3 hours a day is bad for brain ^_^
ugexe there are also different variants of base64 like uri 15:41
15:43 amitava left 15:44 amitava joined 15:46 Khisanth joined 15:52 kalkin- left 15:55 Tonik joined 15:56 zakharyas left
unmatched} .ask gfldex can this issue be closed or do you have any feedback for alternatives offered and issues raised in my comment? github.com/perl6/modules.perl6.org/issues/53 15:57
yoleaux unmatched}: I'll pass your message to gfldex.
15:57 amitava left 16:02 dvinciguerra_ joined
stmuk unmatched}: oh I added some words to the second box on the perl6.org homepage but maybe not the best design 16:07
I was trying to stress the "production" or "release" nature of R* following the guy on reddit saying it was still in beta 16:08
the wording isn't ideal either
unmatched} I think we can remove the "Larry Wall's poetic summary of the past 15 years" 16:09
And the header reads: "Perl 6 Language Version 6.c [...] Released!"; maybe we can remove that too now. It's been awhile since the release of the 6.c 16:10
stmuk yeah that makes sense 16:11
TimToady m: say [+] ... 987 16:12
camelia rakudo-moar 906a46: OUTPUT«Potential difficulties:␤ Apparent sequence operator parsed as stubbed function argument; please parenthesize the ... call (or use 'fail' instead of ...)␤ at <tmp>:1␤ ------> 3say [+] 7⏏5... 987␤987␤ in any at /home/camelia/rakudo…»
16:12 kurahaupo joined
TimToady .tell AlexDaniel I figgered out a way to fix [+] ... 987 for you 16:15
yoleaux TimToady: I'll pass your message to AlexDaniel.
TimToady m: say ... 987 16:17
camelia rakudo-moar 906a46: OUTPUT«Potential difficulties:␤ Apparent sequence operator parsed as stubbed function argument; please parenthesize the ... call (or use 'fail' instead of ...)␤ at <tmp>:1␤ ------> 3say 7⏏5... 987␤987␤ in any at /home/camelia/rakudo-m-i…»
TimToady I guess that message assumes it was intended as a fail 16:18
16:20 avenj joined 16:27 FROGGS joined 16:32 cdg joined 16:33 cdg left, cdg joined, cdg left 16:34 cdg joined 16:35 cdg left, cdg joined
TimToady m: say ... 987 16:35
camelia rakudo-moar 041919: OUTPUT«Potential difficulties:␤ Apparent sequence operator parsed as stubbed function argument; please supply any missing argument to the function or the sequence (or parenthesize the ... call, or use 'fail' instead of ...)␤ at <tmp>:1␤ ------> 3s…»
dalek href="https://modules.perl6.org/bit-rot:">modules.perl6.org/bit-rot: 3b57edf | (Zoffix Znet)++ | Build.PL:
Update prereqs

  - Bump for major releases of Mojolicious and ::AssetPack
  - Remove now-deprecated Mojolicious::Plugin::Bootstrap3
Part of #60
16:39
href="https://modules.perl6.org/bit-rot:">modules.perl6.org/bit-rot: c9b12eb | (Zoffix Znet)++ | / (7 files):
Remove now-deprecated Mojolicious::Plugin::Bootstrap3

  - Load Bootstrap via ::AssetPack from CDN on *app start* and merge into other CSS
  - Add Bootstrap font files into the repo
  - Remove cerulean theme files and replicate the tiny change it introduces manually,
   in main.scss
Part of #60
16:39 dakkar left
16:40 atweiden joined
gfldex m: say now.week; 16:51
camelia rakudo-moar 041919: OUTPUT«Method 'week' not found for invocant of class 'Instant'␤ in block <unit> at <tmp> line 1␤␤»
yoleaux 15:57Z <unmatched}> gfldex: can this issue be closed or do you have any feedback for alternatives offered and issues raised in my comment? github.com/perl6/modules.perl6.org/issues/53
gfldex m: say now.^methods;
camelia rakudo-moar 041919: OUTPUT«(SET-SELF new from-posix to-posix Bridge Num Int narrow Date DateTime sign sqrt sin tan cotan acosech abs conj atan2 cosec base pred asec acotan cosh acos acosec sech ceiling unpolar log10 atanh log exp Rat acosh truncate sinh tanh acotanh round Real sec f…»
TimToady now is an Instant, not a DateTime
unmatched} m: say DateTime.now.week;
camelia rakudo-moar 041919: OUTPUT«(2016 30)␤»
gfldex m: say now.DateTime.^methods;
camelia rakudo-moar 041919: OUTPUT«(new now clone Instant posix offset offset-in-minutes offset-in-hours later truncated-to whole-second in-timezone utc local Date daycount day-of-month IO day-of-week days-in-month earlier week week-number is-leap-year week-year weekday-of-month yyyy-mm-dd …»
dalek c/molecules-patch-2: f35f8e7 | (Christopher Bottoms)++ | doc/Language/variables.pod6:
Is this better? (note on $*SCHEDULER and threads)
16:52
harmil m: Buf.new(0x41, 0x42, 0x43, 0x03c0).say
camelia rakudo-moar 041919: OUTPUT«Buf:0x<41 42 43 c0>␤»
harmil Shouldn't that at least give a warning...?
unmatched} About what?
Ah
harmil About the truncation of 0x03c0?
unmatched} Yeah, it should. 16:53
harmil K, rakudobugging...
unmatched} Thanks.
jnthn Should it? :)
Where does it say it should? :)
m: my uint8 $x = 422; say $x # note this doesn't 16:54
camelia rakudo-moar 041919: OUTPUT«166␤»
16:54 maybekoo2 joined
jnthn Of course, arguably that's more of a consistency argument for native arrays than Bufs :) 16:54
unmatched} ¯\_(ツ)_/¯
TimToady enforcing that would tend to punish the innocent along with the guilty
unmatched} OOC who would be the innocent? Is overflowing an element of a Buf some sort of a useful feature? 16:55
gfldex .oO( If you fiddle with bits expect to get bitten. )
TimToady that really bytes 16:56
harmil Well, expecting to get bitten is one thing. Getting back data you didn't hand in silently doesn't seem like a win, though. The question is one of what sort of biting is appropriate? 16:57
TimToady I guess the other question is whether the "feature" can be used to sneak nulls into a C routine not expecting it 16:58
if something earlier thought it grepped out 0's... 16:59
unmatched} m: say "It's pretty $_ that 3$_ is {"3$_".Int.is-prime and "prime"}" given Buf.new(0x231, 0x233, 0x433, 0x637).decode 17:00
camelia rakudo-moar 041919: OUTPUT«It's pretty 1337 that 31337 is prime␤»
TimToady errands &
dalek c/molecules-patch-2: d0d1cf0 | (Christopher Bottoms)++ | doc/Language/variables.pod6:
reference note in table
17:01
17:11 sno left 17:12 andrewb joined 17:13 andrewb is now known as Guest24050 17:16 Actualeyes left
harmil TimToady: Must be nice to just put your errands in the background :) 17:27
17:28 rindolf left
domm Alpine Perl Workshop in Innsbruck (2.&3.Sep) is still looking for a nice Perl6 Intro talk 17:29
(and advanced stuff, too)
act.yapc.eu/alpineperl2016/call_for_papers.html
we might be able to pay for travel/hotel costs! 17:30
harmil So, back to my error: I was trying to define a Buf that contained only valid Latin1 (1-byte) characters. This seems to work: Buf.new($source.Str.comb>>.ord.map: -> $i where {0x00 < $i < 0xff} { $i }) but damn, that's sum ugly!
It throws a very nice error on larger codepoints, though
gfldex harmil: you may want to define a subset 17:31
17:32 pmurias left, rindolf joined
harmil gfldex: that's nice. I'll have to play with type-based restrictions, there... 17:33
unmatched} m: "foo♥".encode: "latin1" 17:34
camelia rakudo-moar 041919: OUTPUT«Error encoding Latin-1 string: could not encode codepoint 9829␤ in block <unit> at <tmp> line 1␤␤»
unmatched} harmil: that seems much simpler and readable :)
m: say "foo".encode: "latin1" 17:35
camelia rakudo-moar 041919: OUTPUT«Blob[uint8]:0x<66 6f 6f>␤»
unmatched} m: say "foo".encode("latin1").Buf
camelia rakudo-moar 041919: OUTPUT«Method 'Buf' not found for invocant of class 'Blob[uint8]'␤ in block <unit> at <tmp> line 1␤␤»
unmatched} orly
17:35 FreezerburnV joined
unmatched} m: say Buf.new: "foo".encode: "latin1" 17:36
camelia rakudo-moar 041919: OUTPUT«Buf:0x<66 6f 6f>␤»
harmil +camelia: I think that does more or less what I wanted. I was hoping not to have to make explicit mention of the encoding (so much as assert that this is a character-per-byte buf) but yeah, that might be the way to go 17:38
17:38 yqt left
unmatched} m: say Buf.new: "foo".ords.map: -> $c where * < 0xFF {$c} 17:40
camelia rakudo-moar 041919: OUTPUT«Buf:0x<66 6f 6f>␤»
unmatched} Still, pretty unreadable. A month from now you'll go "wtf is that map doing" 17:41
17:42 dvinciguerra_ left
harmil Did I misunderstand subset? 17:42
m: subset loud-uint8 of uint8 where 0x00 < * < 0xff; say Buf.new(my @bytes[loud-uint8] = "foo\x[03c0]".Str.comb>>.ord).perl
camelia rakudo-moar 041919: OUTPUT«Buf.new(102,111,111,192)␤»
masak unmatched}: more importantly, it's probably not going to fail so well when it gets illegal input. 17:43
unmatched}: as it, it's not going to provide diagnostics you would then likely want, such as the value that was too big, or the index it was at. 17:44
as in*
unmatched} Yeah
harmil unmatched}: I called you +camelia BTW, sorry. I didn't mean to imply that you aren't human :)
unmatched} harmil: how do you know that I am a human? 17:45
harmil unmatched}: I said that I didn't mean to imply...
The real question is: do we know that +camelia isn't TimToady frantically typing in results by hand? 17:46
masak come to think of it, do we have hard evidence that `perl6` exists in runnable binary form at all? 17:47
as opposed to just thousands of small gnomes coming up with reasonable outputs?
harmil Oh, I see what I did. I put the [loud-uint8] in the wrong place!
FreezerburnV I'm getting a "Missing infix inside []" error with some code that I'm not sure how to solve. Happens at a specific line in a long chain of method calls: gist.github.com/Freezerburn/e383f4...2044c59620 17:48
geekosaur yeh, by the time it does that chec the truncation has already happened
harmil Hmm... even stranger: 17:49
m: subset loud-uint8 of Int where 0x00 < * < 0xff; say Buf.new(my Array[loud-uint8] @bytes = "foo".Str.comb>>.ord).perl
camelia rakudo-moar 041919: OUTPUT«Type check failed in assignment to @bytes; expected Array[loud-uint8] but got Int (102)␤ in block <unit> at <tmp> line 1␤␤»
harmil There's no attempt to coerce I guess.
unmatched} m: my $in = "foo♥meow"; $_ == $in.chars or fail "Invalid character {$in.substr($_,1)} in input at position {+$_}" given $in.comb.grep: {.ord < 0xFF or last}; say Buf.new: $in.ords
camelia rakudo-moar 041919: OUTPUT«Invalid character ♥ in input at position 3␤ in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1␤ in block <unit> at <tmp> line 1␤␤»
masak FreezerburnV: confirmed -- but I have no idea why 17:50
FreezerburnV masak, Interesting
Guess I'll just change how that chain is done to get around it for now
masak m: 'foo'.map({ $^a })[1] 17:54
camelia ( no output )
masak m: 'foo' .map({ $^a })[1]
camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing infix inside []␤at <tmp>:1␤------> 3'foo' .map({ $^a })[7⏏051]␤ expecting any of:␤ bracketed infix␤ infix␤ infix stopper␤»
masak minimized it a bit
unmatched} FreezerburnV: FWIW, .join('') can be written as .join and .split('') as .comb
masak seems you're running into trouble because of the whitespace before the `.map`
mst masak: you know anybody who's played with preserving whitespace during grammar parsinG?
masak but whether that's expected behavior or a bug, I don't really know, because I don't tend to put whitespace there myself, and I haven't kept up with the discussions/usage around that
FreezerburnV unmatched}, Ah, thanks!
17:55 dvinciguerra_ joined
masak mst: you mean apart from the MAD stuff that used to be in (or somehow connected to) the Perl 5 parser? 17:55
mst: no.
well, I've read some zany stuff about lenses, but I don't think that's what you're asking about ;) 17:56
mst excellent. I am, once again, going to be trying something I don't understand, that none of the people who do understand it have tried before, on a deadline, for no particularly sane reason 17:57
this is going to be one of those "wanted pony ... received equoid" moments 17:58
that, or "It could be worse. See Devel::Declare."
masak :)
unmatched} m: my $f = "foo.test.ftl"; say $f.comb(/^.+ )>\.<-[.]>+$/).comb.join(".*") ~ ".*.$f.IO.extension()"' 18:00
camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3comb.join(".*") ~ ".*.$f.IO.extension()"7⏏5'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ …»
unmatched} m: my $f = "foo.test.ftl"; say $f.comb(/^.+ )>\.<-[.]>+$/).comb.join(".*") ~ ".*.$f.IO.extension()"
camelia rakudo-moar 041919: OUTPUT«f.*o.*o.*..*t.*e.*s.*t.*.ftl␤»
unmatched} m: my $f = "foo.test.ftl"; say join ".*", $f.comb(/.<before .*\.<-[.]>+$>/), ".$f.IO.extension()" 18:03
camelia rakudo-moar 041919: OUTPUT«f.*o.*o.*..*t.*e.*s.*t.*.ftl␤»
unmatched} FreezerburnV: ^ not sure if it's any way simpler or clearer, but seems to do the same thing as yours 18:04
18:04 pmurias joined, travis-ci joined
travis-ci Doc build passed. Christopher Bottoms 'Is this better? (note on $*SCHEDULER and threads)' 18:04
travis-ci.org/perl6/doc/builds/147244951 github.com/perl6/doc/commit/f35f8e78c8f9
18:04 travis-ci left 18:05 ribasushi left
unmatched} really misses Perl 5's [^.] negated regex classes 18:05
pmurias mst: re parsing with whitespace preserving, if you want to do the config manipulation stuff we talked about during yapc::eu you should check lenses/the boomerang programming language 18:06
yoleaux 03:57Z <konobi> pmurias: are the json files that nqp-loader reads newline delimited?
FreezerburnV unmatched}, Almost. It should have a .* at the beginning as well. And I have no idea what the complex regex is doing in the second one... or the first one, actually
I like the $f.IO.extension() though, might use that. Hadn't though of doing that
unmatched} m: my $f = "foo.test.ftl"; say join ".*", '', $f.comb(/.<before .*\.<-[.]>+$>/), ".$f.IO.extension()"
camelia rakudo-moar 041919: OUTPUT«.*f.*o.*o.*..*t.*e.*s.*t.*.ftl␤»
unmatched} The regex just says "any character (.) before (<before ...>) any number of any characters (.*) followed by a dot (\.) and some non-dot characters (<-[.]>+) followed by end of string" 18:08
And thus that comb gives you all individual characters that precede the extension
pmurias konobi: no, I can change that to whatever you want
18:09 sjoshi joined, noffle joined
pmurias konobi: the with_source_map_info method in src/vm/js/Chunk.nqp generates that json 18:09
18:09 girafe left
mst pmurias: this is where I'm going to be going, yes. I figured perl6 grammars were a good way to try and implement it? 18:10
18:11 noffle left
konobi pmurias: ah, thanks 18:11
mst pmurias: if I start from www.seas.upenn.edu/~harmony/ is that going to be sane, or would a primer on lenses be helpful too?
konobi streaming parser ftw
mst sorry. basically diving in the deep end for the hell of it here :D
unmatched} And in the first one the ')>' in the middle marks end of capture, so the extension isn't matched by the comb, so it returns just the entire filename without the extension, which then empty .comb breaks up into individual characters
m: say "meowfoobar" ~~ /'meow' <( 'foo' )> 'bar'/
camelia rakudo-moar 041919: OUTPUT«「foo」␤»
FreezerburnV unmatched}, Huh, interesting. Is that special syntax that Perl6 supports or is that standard regex that I never learned? (and to be fair, my regex knowledge is probably not the greatest) 18:13
unmatched}
.oO( you'd think IO::Path would have some method to give the filename sans extension)
FreezerburnV: it's Perl 6's special New and Improved regex syntax.
FreezerburnV Gotcha
Haven't spent much time learning the New and Improved regex
unmatched} FreezerburnV: in traditional regex that stuff would be /.(?=.*\.[^.]+$)/ for the last example, as for ')>'... Um, Perl 5 has \K that is like '<(', but I don't think there's a ')>' version 18:15
("last example" being the /.<before .*\.<-[.]>+$>/) 18:16
m: say "meowfoobar" ~~ m:P5/meow\Kfoo/ 18:17
camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized Perl 5 regex backslash sequence␤at <tmp>:1␤------> 3say "meowfoobar" ~~ m:P5/meow\7⏏5Kfoo/␤»
unmatched} I guess we just don't support it. Works with 5.22 P5 18:18
18:18 ribasushi joined 18:24 setty2 joined
unmatched} Thinking more of it, we can make IO.basename more useful by basically doing the same thing as `basename` command and stipping the suffix. Maybe a :!ext flag to strip whatever .extension would return 18:24
gfldex unmatched}: what should it do for foo.txt.bak ? 18:25
unmatched} gfldex: my description still stands. The user can either provide ".txt.bak" to strip everything or :!ext flag to use .extension as suffix to strip, which in this case is `.bak` 18:26
m: "foo.txt.bak".IO.extension.say 18:27
camelia rakudo-moar 041919: OUTPUT«bak␤»
unmatched} m: "foo.txt.bak".IO.basename.say
camelia rakudo-moar 041919: OUTPUT«foo.txt.bak␤»
unmatched} m: use NativeCall; sub system (Str) is native {}; system "basename /foo/meow.bar .bar"
camelia rakudo-moar 041919: OUTPUT«meow␤»
dalek c: f35f8e7 | (Christopher Bottoms)++ | doc/Language/variables.pod6:
Is this better? (note on $*SCHEDULER and threads)
18:31
c: d0d1cf0 | (Christopher Bottoms)++ | doc/Language/variables.pod6:
reference note in table
c: 0d63da3 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/variables.pod6:
Merge pull request #758 from perl6/molecules-patch-2

This is better (note on $*SCHEDULER and threads)
unmatched} m: use MONKEY-TYPING; augment class IO::Path { multi method basename (:ext!) { $.basename.substr: 0, *-$.extension } }; "foo.txt.bak".IO.basename(:!ext).say 18:32
camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3lass IO::Path { multi method basename (:7⏏5ext!) { $.basename.substr: 0, *-$.extens␤»
unmatched} Block? What missing block? :S
Oh, damn, the sigil not block 18:33
bisect: m: use MONKEY-TYPING; augment class IO::Path { multi method basename (:$ext!) { $.basename.substr: 0, *-$.extension } }; "foo.txt.bak".IO.basename(:!ext).say 18:35
FreezerburnV unmatched}, Wait, you can crack open classes with augment and add stuff? That should get documented 18:36
bisectable unmatched}: Exit code is 1 on both starting points, bisecting by using the output
unmatched}: bisect log: gist.github.com/2e259685cabdaebf27...e9864ac9b2
unmatched}: (2015-12-25) github.com/rakudo/rakudo/commit/07fecb5
unmatched} FreezerburnV: it is: docs.perl6.org/syntax/augment
FreezerburnV: also this perl6.party/post/Perl-6-Extra-Typical-Perl-6 and kinda-sorta-this perl6.party/post/Exploiting-Perl-6-...ency-Chain 18:37
tbrowder ref doc: in Perl 6 Weekly liznat
FreezerburnV unmatched}, Guess I meant under "Classes and Objects", I"m not sure where that page you linked is linked from in the docs
18:37 AlexDaniel joined
unmatched} FreezerburnV: you can open an Issue against the doc repo or submit a PR. github.com/perl6/doc/issues/new 18:38
gfldex FreezerburnV: augment is in the wrong section. It should be under type system.
FreezerburnV I'll see if I can get to that later today. Looks like augment is under variables, which is why I don't think I saw it (haven't read that section fully)
gfldex, Yeah 18:39
tbrowder ref docs: in perl 6 weekly lizmat said there is a debug button on doc page but i don't see it. i do see a note about debug off at the bottom. what's the status?
gfldex FreezerburnV: also, please note that you make your code fragile if you use augment. If the core is extended, your code might break.
unmatched} FWIW, I wouldn't put it under "Classes and Objects". That section is relatively intro-level so stuffing a dangerous "don't-use-this" footgun in there is a bit LTA
rindolf unmatched}: what is "LTA"? 18:40
gfldex tbrowder: click on the thing that says [debug: off] and it will change to [debug: on]. You still have to hit the reload button.
FreezerburnV gfldex, Yeah that's fair enough. I mostly wanted to use it like extension method in Kotlin: add some totally new method to make the syntax 'nicer' (e.g.: someFun(someObj) -> someObj.someFun)
rindolf less than advised?
moritz awesome
unmatched} rindolf: Less Than Awesome 18:41
rindolf unmatched}: ah.
unmatched} m: use MONKEY-TYPING; augment class IO::Path { multi method basename (:ext!) { $.basename.substr: 0, *-$.extension } }; "foo.txt.bak".IO.basename(:!ext).say
camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3lass IO::Path { multi method basename (:7⏏5ext!) { $.basename.substr: 0, *-$.extens␤»
FreezerburnV Unless there's a way to do that without using augment and possibly causing 1+1 to equal 3
unmatched} m: sub infix:<+> { 3 }; say 1+1 18:42
camelia rakudo-moar 041919: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Calling infix:<+>(Int, Int) will never work with declared signature ()␤at <tmp>:1␤------> 3sub infix:<+> { 3 }; say 17⏏5+1␤»
unmatched} m: sub infix:<+> ($,$) { 3 }; say 1+1
camelia rakudo-moar 041919: OUTPUT«3␤»
unmatched} (that's lexical tho)
FreezerburnV unmatched}, lol 18:43
unmatched} m: use MONKEY-TYPING; augment class IO::Path { multi method basename (:$ext!) { $.basename.substr: 0, *-$.extension } }; "foo.txt.bak".IO.basename(:!ext).say
camelia rakudo-moar 041919: OUTPUT«foo.txt.bak␤»
unmatched} Hm. Why doesn't camelia print the error/warning?
I get a compile error for that when I run locally "Cannot have a multi candidate for 'basename' when an only method is also in the package 'IO::Path'" 18:44
Ah! Damned RESTRICTED setting rips that method out don't it?
moritz right
unmatched} m: "foo".IO.WHAT
camelia ( no output )
moritz it replaces all of IO
unmatched} m: "foo".IO.WHAT.say
camelia rakudo-moar 041919: OUTPUT«(Path)␤»
tbrowder gfldex: doesn't work for me in Chrome on an ipad 18:46
and it doesn't show as a link
unmatched} m: &infix:<+>.wrap: -> (Int, Int) {3}; say 1 + 1
camelia rakudo-moar 041919: OUTPUT«2␤»
unmatched} No idea why that doesn't work. But IIRC, using a wrap you can make the effect non-lexical. 18:47
18:47 sjoshi left
gfldex tbrowder: it doesn't work in Chrome in general. It's missing some .text() JS method. 18:48
tbrowder ok, i'll try ff
gfldex i was under the impression that .text() is supplied by jquery. Isn't javascript great? 18:49
it's actually .contains 18:50
unmatched} It is. Are you sure you aren't just calling it on a non-jQuery-ified element?
api.jquery.com/text/
gfldex looks like it 18:51
tbrowder hm, no joy on ff, either (again, on ipad)
nemo contentText ?
not sure what you're doing
tbrowder nothing on safari, either 18:53
unmatched} yeah, I get "Uncaught TypeError: $(...).text(...).contains is not a function" on Chrome
18:55 domidumont left
nemo er. wait. .innerText is one I'm thinking of 18:55
aaaand, I have no idea if it was ever standardised anyway
developer.mozilla.org/en-US/docs/W.../innerText 18:56
18:56 domidumont joined
nemo oh. .textContent 18:56
unmatched} nemo: we can use .text(). The problematic call is the .contains method: github.com/perl6/doc/blob/master/h...ain.js#L76
nemo huh
nemo twitches @ that username
'k. no idea about the jquery equiv 18:57
don't use much jquery personally
developer.mozilla.org/en-US/docs/W...extContent the standard one for completeness sake
18:59 tbrowder left
dalek line-Perl5: a4322ba | niner++ | p5helper.c:
Fix compiler warnings in p5_get_global
18:59
c: 7fd6934 | (Wenzel P. P. Peppmeyer)++ | html/js/main.js:
make JS Chrome friendly
19:00
19:01 sena_kun joined
unmatched} Ah, seems .contains was renamed to .includes: developer.mozilla.org/en-US/docs/W...e.contains 19:01
19:02 cpage_ left 19:04 domidumont left 19:05 FreezerburnV left 19:08 yqt joined 19:09 darutoko left
sena_kun Are anyone here unable to build docs after latest changes? I'm building it for a half of hour already and I get tons of "duplicated path /tmp/name-number-pod_to_pyg.pod". Is it time for new issue? cast gfldex. 19:10
19:11 labster joined 19:12 maybekoo2 left, Guest24050 left
unmatched} Check the last commit in the footer of the docs website and see whether it's last (or penultimate) commit in the repo 19:12
sena_kun unmatched}, just pulled latest version. I'll try again now... 19:14
unmatched} Yeah, the site is built from latest commit, so it should build fine. 19:15
sena_kun unmatched}, if only rule "Works for one - works for everyone" were true in programming world. Anyway, thanks for answer. Maybe try with latest rakudo. 19:18
19:18 cpage_ joined
sena_kun *magically fix articles and grammar 19:19
unmatched} hence the "should" :)
sena_kun: try updating your Pod::To::HTML first. 19:20
19:20 Tonik left
unmatched} And Pod::To::BigPage is a new addition too 19:20
sena_kun unmatched}, I'll rebuild rakudo and modules now, I think. 19:22
gfldex sena_kun: can't reproduce 19:28
sena_kun gfldex, sure thing. 19:29
19:29 maybekoo2 joined 19:30 atweiden left 19:32 labster left
unmatched} Ehe. Just got bit by my taste for colons instead of parens: 19:33
m: say "foo" eq "foobar".substr: 0, 3 ?? "foo" !! "bar"
camelia rakudo-moar 041919: OUTPUT«Earlier failure:␤ Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5foo' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Final error:␤ Type check failed in assignment to $chars; expected Int but…»
unmatched} m: say "foo" eq "foobar".substr(0, 3) ?? "foo" !! "bar"
camelia rakudo-moar 041919: OUTPUT«foo␤»
unmatched} The ternary being spread on three lines didn't make catching this easy :P
(and using more substr in it) 19:34
.oO( 'my taste for colons'... err... )
19:35 sena_kun left
jnthn
.oO( I was going to make a colon pun, butt screw it... )
19:37
unmatched} heh 19:38
19:39 Ven_ left 19:47 sno joined 19:51 girafe joined 19:53 ptolemarch left 20:03 AlexDaniel left 20:08 ptolemarch joined 20:09 dha joined 20:14 labster joined 20:16 ptolemarch left 20:17 BillSussman joined
lizmat is working on the P6W 20:18
20:18 KevinFrench left
lizmat is there a blog post I may have missed? 20:19
Please let me know
is there something else important I may have missed?
Please let me know!
20:20 TEttinger joined, TEttinger left 20:21 wamba left 20:22 BrassLantern joined, BrassLantern left, BrassLantern joined
gfldex it may just be to warm for blog posts 20:22
lizmat hehe... only 3 from you in the past week, eh ? 20:24
jnthn eventually wrote one, but suspect you already found it :) 20:26
20:28 pmurias left 20:37 ufobat left
lizmat jnthn: yeah, I did :-) 20:38
20:39 cyphase left 20:43 cyphase joined 20:50 pmurias joined
pmurias mst: yes, looking at the manual at that sites and at the lenses paper over there seems sane 20:53
mst pmurias: lenses paper over where, sorry?
20:54 skids left
pmurias mst: on that boomerang website if you click on [Documentation] you have links to a manual and a bunch of papers 20:56
20:56 sena_kun joined
mst oh, right, ok, I'd found the manual but not the papers 20:56
ta
pmurias bunch meaning 4 here ;)
20:58 kaare__ left
sena_kun gfldex, just in case of your interest: I was able to build docs just fine without syntax highlighing. Sorry for the false report. 21:00
21:01 CIAvash left 21:12 trnh joined 21:19 ribasushi left
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/07/25/...kudo-star/ 21:19
dalek line-Perl5: bc82e27 | niner++ | / (2 files):
Fix missing symbols when a P5 module is used in multiple places

use Foo:from<Perl5>; use Bar; # which uses Foo:from<Perl5> resulted in Bar not finding Foo as we did not add Foo to Bar's GLOBALish during compilation.
Fixes GH #70
21:20
21:30 pmurias left
gfldex lizmat++p6weekly.wordpress.com/2016/07/25/...kudo-star/ 21:35
i need to stop using my computer one handely. Gonna drive into a tree or something. 21:36
21:37 ribasushi joined, pmqs left 21:40 labster left 21:43 pierrot joined 21:44 rurban joined, rurban left 21:45 ribasushi left 21:46 labster joined, Zoffix left 21:49 pmqs joined 21:51 BrassLantern left 21:52 BrassLantern joined, BrassLantern left, BrassLantern joined, ribasushi joined 21:53 wamba joined, dvinciguerra_ left 21:58 trnh left 22:03 Sgeo joined 22:06 ribasushi left 22:07 girafe left 22:09 rurban1 joined, rurban1 left 22:19 labster left 22:20 pmqs left 22:21 kurahaupo left 22:23 ribasushi joined 22:25 maybekoo2 left 22:28 rindolf left, dha left 22:29 xescugc joined 22:35 firstdayonthejob left, pmqs joined 22:36 ribasushi left 22:38 maybekoo2 joined 22:43 idiosyncrat_ joined 22:46 idiosyncrat_ left 22:51 xescugc left, setty2 left 22:54 ribasushi joined 22:55 skids joined 23:05 labster joined 23:10 dvinciguerra_ joined 23:12 maybekoo2 left 23:23 kid51 left 23:24 captain-adequate joined 23:25 captain-adequate left
gfldex m: say HyperWhatever.WHAT; 23:26
camelia rakudo-moar 041919: OUTPUT«(HyperWhatever)␤»
23:26 RabidGravy left
gfldex ENODOC 23:27
[Coke] gfldex: design.perl6.org/S02.html#The_Hype...tever_Type has some notes. 23:28
23:31 cyphase left 23:36 cyphase joined, captain-adequate joined 23:39 lambd0x joined
lambd0x Hi guys. If I encode something reasonably from UTF-8 to ASC-II and save it to a file, would it conplain upon opening the handler that it cannot undestand what it reads? let's say by reporting malformed UTF-8? 23:42
*understand
TimToady ASCII is a proper subset of both UTF-8 and Latin-1, so I don't see a problem 23:44
if you encode to Latin-1 then you'd have problems reading it as UTF-8 23:45
(not accusing you of confising ASCII with Latin-1, but occasionally people do) 23:46
lambd0x TimToady: I'm taking a message in UTF-8 and applying an encryption algorthm over the message after having it reencoded to ASC-II then I get a non meaninful message code that I ask to get saved. My code is here: paste.ubuntu.com/20938202/ 23:49
*algorithm (RC4) it works fine by the way. 23:50
23:50 BenGoldberg joined
lambd0x The code should save to a file every item from the array after it is encrypted. and in a latter runtime it was to be read and reencoded to a meaninful message in UTF-8 after decryption, which still to be done :) 23:54
23:58 Herby_ joined
Herby_ Evening, everyone! 23:58
o/
lambd0x \o Herby 23:59
23:59 cyphase left, kurahaupo joined