»ö« 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.
IOninja m: sub foo returns Array[Int] { my @x; return @x; }; foo().gist 00:01
camelia rakudo-moar 4efcc2: OUTPUT«Type check failed for return value; expected Array[Int] but got Array ($[])␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
IOninja kalkin-: you're not returning a typed array
Array[Int] is a property of the array itself, not just a hint about its contents 00:02
kalkin- IOninja: ohh right
Array[Foo].new: gather …
cale2 how do you override what happens to an object when you say `say myObject` ? 00:07
are there special methods like that?
it's `gist` 00:08
IOninja Unless it's a subclass of Str. 00:09
cale2 IOninja: The method that you'll typically override for human reading is gist though, right? 00:11
TimToady that's about the gist of it
cale2 Docs say `.str` method is for machine reading?
lol
TimToady if you're gonna print it on a printer, you probably want .str 00:12
er, .Str
[Coke] docs say .str or .Str ?
TimToady++
TimToady m: say 42.str
camelia rakudo-moar 4efcc2: OUTPUT«No such method 'str' for invocant of type 'Int'␤ in block <unit> at <tmp> line 1␤␤»
cale2 What method gets called if you interpolate an object?
TimToady Str
cale2 So that's what you want to override if you're, for instance, printing a game board of chess pieces 00:13
TimToady m: say "I am {class Me { method Str { "MYSELF" } }.new}!!!" 00:14
camelia rakudo-moar 4efcc2: OUTPUT«I am MYSELF!!!␤»
cale2 m: say class Me { method gist { "MYSELF" } }.new.gist 00:15
camelia rakudo-moar 4efcc2: OUTPUT«MYSELF␤»
cale2 brain_explode.gif 00:16
TimToady you should probably .gist to "me", since it's shorter :)
00:23 pyrimidine joined 00:33 pyrimidine left
samcv what's that fancy thing how you can make infix take two arguments like a normal sub? 00:46
[&operator] or something like that?
moritz m: sub infix:<f>($a, $b) { "[$a, $b]" }; say [f] 1, 2, 3 00:47
yoleaux 6 Feb 2017 19:08Z <[Coke]> moritz: can you review github.com/perl6/book/issues/88 ? was your commit that added the image.
camelia rakudo-moar 4efcc2: OUTPUT«[[1, 2], 3]␤»
IOninja m: say infix:<+> 2, 2 00:48
camelia rakudo-moar 4efcc2: OUTPUT«4␤»
samcv moritz, Cannot reduce with unicmp because structural infix operators are diffy and not chaining 00:49
m: use experimental :unicmp; say &[unicmp] 'a', 'b'
camelia rakudo-moar 4efcc2: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3use experimental :unicmp; say &[unicmp]7⏏5 'a', 'b'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end…»
samcv m: use experimental :unicmp; say [unicmp] 'a', 'b' 00:50
camelia rakudo-moar 4efcc2: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot reduce with unicmp because structural infix operators are diffy and not chaining␤at <tmp>:1␤------> 3use experimental :unicmp; say [7⏏5unicmp] 'a', 'b'␤ expecting any of:␤ argu…»
00:52 ocbtec joined 00:53 ocbtec left
moritz m: say reduce &[unicmp], 'a', 'b', 'c' 00:54
camelia rakudo-moar 4efcc2: OUTPUT«()␤»
timotimo is writing the weekly 00:57
IOninja \o/ 01:02
01:03 zakharyas joined 01:04 aborazmeh joined, aborazmeh left, aborazmeh joined
moritz
.oO( I can't get no sleep )
01:05
cale2 general question on OOP: What's an idiomatic way to create all of the chess pieces for the start of the game? 01:10
It seems a bit odd to have 32 or however many constructors in a setup function
01:11 gdonald joined 01:24 Spot__ joined
timotimo i don't think there's that many different chess pieces :) 01:24
isn't there like 6 kinds per side?
01:24 timeless joined 01:27 mohae joined, mohae left
TimToady depends on if you count white bishops as disjunct from black bishops :) 01:28
timotimo docs.google.com/document/d/1MrzL58...sp=sharing
it'd be nice if y'all could give it a once-over for missing stuff, grammar- and typing errors 01:29
(it's much easier to just copypaste the preview of the wordpress post to docs.google.com than to figure out how the fuck you're supposed to get feedback from others via a link in wordpress itself) 01:30
cale2 the board is 8 across. 8 pawns on each side. 8 special pieces on each side. 16 + 16 = 32. 01:33
Even if you only use one class for every piece, You still have a massive block of Piece.new over and over
timotimo wait, 8 special pieces? but they're not actually 8 different kinds 01:34
it's still mirrored
cale2 timotimo: but you have to instantiate the pieces regardless 01:36
TimToady timotimo: the article looked pretty okay to me 01:39
01:40 rmusial joined 01:42 rurban joined 01:45 Actualeyes left 01:47 aborazmeh left 01:48 Actualeyes joined 01:49 aborazmeh joined, aborazmeh left, aborazmeh joined, bpmedley joined
timotimo sure, but you can for-loop over a few different things :) 01:50
for column in ^8 { put-piece Pawn.new(), column => $_, row => 1; put-piece Pawn.new(), column => $_, row => 6 }
cale2 I still need to learn how to think in terms of perl structures 01:52
I tend to focus strongly within one paradigm. Perl6 gives me all the paradigms. Analysis paralysis 01:54
timotimo p6weekly.wordpress.com/2017/02/07/...fter-math/
you've already seen the text, but now you can also up my clicks counter by one! :)
cale2 I really hope people are behaving in that hacker news thread haha 01:57
timotimo it seems so!
cale2 things get out of hand quickly. though it was quite pleasant 4 hours ago
timotimo i read it ~6 hours ago, i think?
01:57 jefflinahan joined, jeff_linahan joined 01:58 pyrimidine joined
timotimo god darned wordpress changes all the time, and it seems like every time they change something, it's for the worse for me 01:59
02:03 pyrimidine left
IOninja timotimo++ good weekly. 02:04
everyone++ tons of commits this week \o/
timotimo yup 02:13
and thanks :) 02:14
i didn't really look out for blog posts or stuff like that to link to :(
02:16 ggoebel joined 02:20 rmusial left 02:22 SCHAAP137 joined 02:26 pyrimidine joined
samcv timotimo++ on the p6weekly 02:26
can always do it after the fact IOninja
02:27 rmusial joined, jefflinahan left, jeff_linahan left 02:29 LeCamarade joined
cale2 m: my Int @ints; say @ints.WHAT; 02:29
camelia rakudo-moar 46313f: OUTPUT«(Array[Int])␤»
cale2 m: my Array[Int] @ints; say @ints.WHAT;
camelia rakudo-moar 46313f: OUTPUT«(Array[Array[Int]])␤»
cale2 lmao
m: my Array[Int] ints; say ints.WHAT; 02:31
camelia rakudo-moar 46313f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed my (did you mean to declare a sigilless \ints or $ints?)␤at <tmp>:1␤------> 3my Array[Int] ints7⏏5; say ints.WHAT;␤»
cale2 m: my Array[Int] \ints; say ints.WHAT;
camelia rakudo-moar 46313f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Term definition requires an initializer␤at <tmp>:1␤------> 3my Array[Int] \ints7⏏5; say ints.WHAT;␤»
cale2 m: my Array[Int] $ints; say $ints.WHAT;
camelia rakudo-moar 46313f: OUTPUT«(Array[Int])␤»
cale2 m: class Square {has $.stuff;}; my Square @squares; say @squares.WHAT ~~ Array[Square]; 02:33
camelia rakudo-moar 46313f: OUTPUT«True␤»
02:33 pyrimidine left, rmusial left 02:34 LeCamarade left, LeCamarade joined 02:40 rmusial joined 02:41 LeCamarade left, LeCamarade joined
Geth doc: 29647d39e0 | (Samantha McVey)++ | doc/Language/experimental.pod6
Add some documentation on the experimental collation features
02:45
02:46 Actualeyes left 02:47 _28_ria joined 02:56 Eddward joined, user_ joined 02:59 LeCamarade left, LeCamarade joined 03:00 kalkin- left
sjn a 03:00
hmf.
03:00 Actualeyes joined 03:01 LeCamarade left, rmusial left 03:02 mr_ron joined 03:05 LeCamarade joined 03:06 LeCamarade left 03:08 labster joined 03:09 mr_ron left 03:24 effbiai joined, sjmcc joined 03:25 sjmcc left 03:29 pyrimidine joined 03:30 rx joined 03:40 jefflinahan joined, jefflinahan left, jefflinahan joined, jefflinahan left, jefflinahan joined 03:48 bwisti joined, labster left 03:51 zacts left 03:52 zacts joined 03:59 rmusial joined 04:01 rx left 04:02 BenGoldberg joined 04:03 labster joined 04:04 labster left 04:06 labster joined 04:08 kaare_ joined 04:09 labster left 04:11 kent\n joined
BenGoldberg m: macro postfix:<twice>( $modifiee ) { return quasi { {{{$modifiee}}} xx 2 } }; 04:29
camelia rakudo-moar 192387: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Use of macros is experimental; please 'use experimental :macros'␤at <tmp>:1␤------> 3macro7⏏5 postfix:<twice>( $modifiee ) { return q␤»
BenGoldberg m: use experimental :macros; macro postfix:<twice>( $modifiee ) { return quasi { {{{$modifiee}}} xx 2 } };
camelia rakudo-moar 192387: OUTPUT«===SORRY!===␤Unknown QAST node type QAST::Unquote␤»
04:30 MasterDuke_ joined, MasterDuke_ is now known as MasterDuke
BenGoldberg m: use experimental :macros; macro postfix:<twice> { return quasi { {{{$^q}}} xx 2 } }; 04:34
camelia rakudo-moar 192387: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Placeholder variable $^q may not be used here because the surrounding block takes no signature␤at <tmp>:1␤------> 3wice> { return quasi { {{{$^q}}} xx 2 }7⏏5 };␤ expecting any of:␤ h…»
BenGoldberg m: use experimental :macros; macro postfix:<twice>($q) { return quasi { {{{$q}}} xx 2 } }; 04:35
camelia rakudo-moar 192387: OUTPUT«===SORRY!===␤Unknown QAST node type QAST::Unquote␤»
BenGoldberg m: use experimental :macros; macro twice($q) { return quasi { {{{$q}}} xx 2 } };
camelia rakudo-moar 192387: OUTPUT«===SORRY!===␤Unknown QAST node type QAST::Unquote␤»
BenGoldberg m: use experimental :macros; macro twice($q) { return quasi { say 42 } };
camelia ( no output )
BenGoldberg m: use experimental :macros; macro twice($q) { return quasi { $q xx 2 } }; 04:36
camelia rakudo-moar 192387: OUTPUT«WARNINGS for <tmp>:␤Useless use of $q in sink context (line 1)␤»
BenGoldberg m: use experimental :macros; macro Twice($q) { return quasi { $q xx 2 } };
camelia rakudo-moar 192387: OUTPUT«WARNINGS for <tmp>:␤Useless use of $q in sink context (line 1)␤»
BenGoldberg m: use experimental :macros; macro Twice($q) { return quasi { $q xx 2 } }; print Twice 42
camelia rakudo-moar 192387: OUTPUT«WARNINGS for <tmp>:␤Useless use of $q in sink context (line 1)␤ »
BenGoldberg m: use experimental :macros; macro Twice($q) { return quasi { $q xx 2 } }; say Twice 42; say 'after'; 04:37
camelia rakudo-moar 192387: OUTPUT«WARNINGS for <tmp>:␤Useless use of $q in sink context (line 1)␤((Mu) (Mu))␤after␤»
BenGoldberg m: use experimental :macros; macro Twice($q) { return quasi { {{{$q}}} xx 2 } }; say Twice 42; say 'after';
camelia rakudo-moar 192387: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unknown QAST node type QAST::Unquote␤at <tmp>:1␤»
04:38 labster joined
BenGoldberg m: macro postfix:<twice>($q) { return quasi { {{{$q}}}, {{{$q}}} } }; 04:40
camelia rakudo-moar 192387: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Use of macros is experimental; please 'use experimental :macros'␤at <tmp>:1␤------> 3macro7⏏5 postfix:<twice>($q) { return quasi { {␤»
BenGoldberg m: use experimental :macros; macro postfix:<twice>($q) { return quasi { {{{$q}}}, {{{$q}}} } }; say 42 twice;
camelia rakudo-moar 192387: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3quasi { {{{$q}}}, {{{$q}}} } }; say 427⏏5 twice;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end…»
BenGoldberg m: use experimental :macros; macro postfix:<twice>($q) { return quasi { {{{$q}}}, {{{$q}}} } }; say (42 twice); 04:41
camelia rakudo-moar 192387: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3uasi { {{{$q}}}, {{{$q}}} } }; say (427⏏5 twice);␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statemen…»
04:41 Cabanoss- joined
BenGoldberg m: use experimental :macros; macro twice($q) { return quasi { {{{$q}}}, {{{$q}}} } }; say (twice 42); 04:41
camelia rakudo-moar 192387: OUTPUT«(42 42)␤»
BenGoldberg m: use experimental :macros; macro twice($q) { return quasi { {{{$q}}}, {{{$q}}} } }; twice say 42;
camelia rakudo-moar 192387: OUTPUT«42␤42␤»
BenGoldberg m: say 42 xx 2/ 04:42
camelia rakudo-moar 192387: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing required term after infix␤at <tmp>:1␤------> 3say 42 xx 2/7⏏5<EOL>␤ expecting any of:␤ prefix␤ term␤»
BenGoldberg m: say 42 xx 2;
camelia rakudo-moar 192387: OUTPUT«(42 42)␤»
04:42 aborazmeh left 04:44 Cabanoss- is now known as Cabanossi 04:52 wamba joined, labster left 04:54 LeCamarade joined 04:55 adu joined, LeCamarade left 04:57 altLeCamarade joined 05:01 labster joined, LeCamarade joined 05:02 LeCamarade left, LeCamarade joined 05:03 adu left, jefflinahan left 05:04 LeCamarade left 05:05 LeCamarade joined 05:07 bwisti left 05:08 jefflinahan joined 05:10 adu joined 05:20 Eddward left 05:23 _28_ria left 05:24 _28_ria joined 05:25 CIAvash joined 05:40 curan joined 05:47 jefflinahan left 05:54 BenGoldberg left 05:55 adu left 05:56 kaare_ left, kaare_ joined 05:58 wamba left, wamba joined 06:05 jefflinahan joined, jefflinahan left 06:07 jefflinahan joined 06:11 kyan left 06:18 ufobat joined 06:22 Tonik joined 06:30 bjz joined 06:31 wamba left 06:32 wamba joined 06:33 wamba left 06:41 AlexDaniel joined, rurban left 06:42 Tonik left 06:51 AlexDaniel left 06:52 RabidGravy joined 06:56 wamba joined 06:58 cyphase joined
samcv hmm i just decided on this method of multi line commenting, i'd often thought perl 6 multi line commenting looked ugly compared to like C 06:59
m: use experimental :collation; my %hash = Za => '6', aa => '6'; say %hash.collate 07:05
camelia rakudo-moar 192387: OUTPUT«No such method 'collate' for invocant of type 'Hash'␤ in block <unit> at <tmp> line 1␤␤»
07:07 garo joined, jefflinahan left
samcv oh well gotta wait until camelia rebuilds from the change i just pushed 07:08
07:08 jefflinahan joined 07:13 jjido joined
samcv i kind of like balancing multi-line comments like this github.com/samcv/UCD/blob/8d6f9df3...#L468-L473 more visual pleasing 07:17
07:19 darutoko joined 07:22 pyrimidi_ joined, pyrimidine left
jefflinahan Hey 07:23
07:24 jefflinahan is now known as jeffythedragonsl
jeffythedragonsl Should we have an example page with programs in perl 5 and an equivalent program in perl 6? 07:24
I think it would be good to show off the language's power 07:25
07:25 jjido left
tadzik samcv: hmm, I think it's the first time I see it and like it 07:25
samcv yeah. i just thought of it right now, cause i always hated how they look unbalanced and unprofessional i guess. idk C comments are nice and neat 07:26
we might have that jeffythedragonsl ?
we have an examples page
jeffythedragonsl, examples.perl6.org
jeffythedragonsl Well I've been using that page 07:27
samcv ah
have you read learnxinyminutes.com/docs/perl6/ ? 07:28
jeffythedragonsl Was really looking for examples with the same program in both languages
samcv hm there's rosetta code?
07:28 gdonald left
jeffythedragonsl I'm trying to convince my team to use perl 6 actually 07:29
samcv ah
write your own maybe :P?
something to impress them
jeffythedragonsl Ovid had a point class example that was good
07:30 gdonald joined
jeffythedragonsl I'll do that tomorrow 07:31
07:33 jeffythedragonsl left 07:39 jeffythedragonsl joined
jeffythedragonsl I still don't know perl 5 or 6 very well yet though 07:39
So I might just try solving project euler 07:40
07:41 LeCamarade left
samcv boring 07:41
well idk you want to convince people to use perl 6
project euler doesn't show off some of the best parts of perl 6
jeffythedragonsl, github.com/perl6/marketing/raw/mas...ochure.pdf see this Brochure 07:42
jeffythedragonsl That's actually a really nice brochure 07:44
Will show them that
samcv :)
07:45 bjz_ joined
jeffythedragonsl Are a lot of companies using rakudo? 07:47
07:47 bjz left
samcv not really. jnthn uses it at his dayjob though 07:47
07:49 jjido joined
andrzejku hey people where do you stick this brochure? 07:50
on the wall in your cities?
07:50 abraxxa joined
samcv :P 07:51
please give me 1 million brochures
andrzejku Interfacing to external libraries in C / C++ <<? not all is working as I know
samcv yeah you can't access global variables 07:52
andrzejku -.-
samcv and a few other things. with NativeCall
you can do functions and things
i know i did not like that either
andrzejku ok, but if you give something and write this is working
so you cann't say later this is working but in 50% 07:53
you should delete this because it is a bullshit
C++ is not supproted it is prealpha
samcv i have never tried to use C++ with nativecall
delete what? 07:54
07:54 _28_ria left
andrzejku Interfacing to external libraries in C is trivially simple with NativeCall. 07:54
07:55 _28_ria joined
andrzejku ohh 07:55
and it is not tribially simple
omg ;D
samcv tribally simple! 07:56
andrzejku it is marketing propaganda
samcv lol
it's not _that_ hard
andrzejku it's not simple at all
samcv idk what are you trying to do
TimToady compared to XS, it's trivially simple, but then so is pretty much everything else
samcv then i can better understand
07:58 rurban joined
DrForr staggers in. 07:58
08:00 jjido left
andrzejku in my opinion there should be C++ API Perl binding generator 08:00
DrForr Well volunteered :) 08:01
samcv there is a C generator
GPTrixie
08:01 ufobat left
samcv TimToady, what is this (everything else) you are talking about? 08:01
andrzejku anyway that's propaganda brochure 08:02
arnsholt andrzejku: Making NativeCall support C++ completely is basically impossible 08:03
Because of name mangling and class layout shenanigans
andrzejku lets think what could happen? One guy which remind old good Perl read it and thinks hey I got C++ library lets do binding and continue write then in new Perl, then he come and OHHH I can''t do that and he will be sad and disappointed 08:04
arnsholt Well, that's what happens when you use C++
It's only basically only compatible with other C++ code, compiled with the same version of the compiler 08:05
andrzejku most good things have been written in it
arnsholt Because name mangling and memory layouts are allowed to change at the whim of the compiler
D has a pretty pragmatic solution, TBH 08:06
andrzejku Perl - D bindings?
arnsholt It supports name mangling, function calls and vtable layouts for single inheritance
andrzejku a lack of C++ support in Perl6 make it lose its prize 08:07
samcv :\
our prize has been revoked :(
arnsholt Awww 08:08
andrzejku that's very old approach when the programmers know only C and Perl
arnsholt At least we'll have Paris^WUnicode 08:09
DrForr o/' I am the god of Kingdom Come / Gimme the prize / Just gimme the prize o/'
andrzejku I meet some of them but they were just like dinosaurs
they going to die
samcv what 08:10
so morbid
08:15 rurban left, xinming_ joined 08:31 bjz joined, bjz_ left 08:33 ufobat joined 08:39 wamba left, dakkar joined 08:40 ocbtec joined
samcv m: use experimental :collation; my %hash = Za => 'word', aa => 'word'; say %hash.collate 08:44
camelia rakudo-moar 699013: OUTPUT«(aa => word Za => word)␤»
samcv yay now i can call collate on hashes and sequences too
m: use experimental :collation; my %hash = Za => 'word', aa => 'word'; say %hash.sort
camelia rakudo-moar 699013: OUTPUT«(Za => word aa => word)␤»
moritz m: use experimental :collation; say <ä a o ö>.sort 08:45
camelia rakudo-moar 699013: OUTPUT«(a o ä ö)␤»
samcv m: use experimental :collation; say <ä a o ö>.collate 08:46
camelia rakudo-moar 699013: OUTPUT«(a ä o ö)␤»
samcv much better order with collate
moritz indeed 08:54
09:00 ufobat left 09:02 jonas1 joined 09:05 labster left, labster joined
garo The language is named perl 6, the compiler is named rakudo and the logo is named camelia... why not just use the same name for all three ? 09:14
jast "Perl 6" would be a strange name for a mascot, wouldn't it?
09:15 wamba joined
samcv hah 09:15
well it's Rakudo Perl 6
so you could argue it has the name in it
we could rename Camelia, Perl 6 Camelia :P 09:16
garo, the language is called c and the compilier is called gcc, but then there's also clang
garo yes, but c has a lot of compilers\ 09:17
moritz garo: would you also propose to the GCC, clang and ICC-developers that they rename their compilers to "C"?
garo I don't think that will happen with perl6
moritz there's at least one more in development right now
samcv we have had many
and have been many in the past as well
moritz s/past/future/ 09:20
09:21 TeamBlast joined 09:23 ufobat joined, zakharyas left 09:25 Grauwolf joined 09:41 hartenfels joined 09:43 cyphase left 09:47 cyphase joined 09:53 wamba left 09:58 zacts left 10:03 zakharyas joined 10:16 matt_ joined, agentzh joined, matt_ is now known as Guest62047
Ulti in case anyone's interested the slowest bit of my tests is now at github.com/rakudo/rakudo/blob/nom/...ice.pm#L51 the creation of that list is the most expensive thing 10:20
but I do call it an unreasonable number of times
10:20 agentzh left
Ulti time is at 0.8s which is pretty cool, all the optimisation work is working 42x speed up since 2014-08-22 of the same code only changed to track core changes to the language like GLR 10:22
10:22 astj joined 10:27 g4 joined 10:29 astj left 10:30 astj joined 10:33 zakharyas left 10:34 astj left
samcv i just realized that if you set custom Collation settings, you could get it to sort a hash partially by values in case there was a tie in the collation values for the keys 10:36
10:39 astj joined, espadrine joined
timotimo andrzejku: can you elaborate on what doesn't work with nativecall and c++? 10:41
also, we do have cglobal
writing to c globals is NYI, though.
though it ought to be quite doable 10:42
like, as a LHF/junior task maybe?
Geth doc: 876d7002a9 | (Samantha McVey)++ | doc/Language/experimental.pod6
Add some documentation on the current state of $*COLLATION and .collate
samcv Ulti, you can always try nqp::atkey 10:43
in my Unicode database script i converted a ton of things to nqp since they're called a crazy number of times 10:44
and now it actually completes in a sane amount of time, after much effort
if it's something that is very performance sensitive. not sure what you're doing
timotimo welllllll, the idea is to not change the code to make it faster :P 10:45
samcv Ulti, or you could even call the .AT-KEY method
timotimo much like Tux' benchmark
samcv ah
i understand 10:46
Ulti yeah my code is awful 10:47
samcv so it's an iterable?
Ulti people have seen it and cried blood at the silly things I have in tight loops
samcv %hash{@array} or something?
Ulti but it represents what an idiot would do with Perl6
samcv haha
Ulti like with every object instantiation it creates a big lookup hash which is why its spending so long in that slice 10:48
but if that is the slowest thing in my code thats kind of surprising
10:48 altLeCam1rade joined
Ulti it means all the string operations are much faster than hash ones 10:48
samcv so what are you calling the hash with though?
you said it's going through the iterable sub? 10:49
Ulti fairly sure its something like %hash{@keys}
10:49 altLeCam1rade left
Ulti which ends up there 10:49
mattoates.co.uk/files/perl6/bioinfo...02-07.html latest profile, and the code is at github.com/MattOates/BioInfo 10:50
samcv well i can't call that
i can't call that sub with %hash{@array}
10:51 ltLeCamarade joined
Ulti behind the scenes it is that sub 10:51
afaik
timotimo you have to make sure you're not assigning something at the same time
otherwise it'll hit the one below
Ulti if not I can go take a proper look for what bit of my code is doing this
samcv oh timotimo 10:52
so how do i hit thta one
timotimo "say %hash{@arr}" could do?
samcv ah
timotimo i wonder if we should put something in the optimizer for when the stuff inside the { } is a constant list of strings 10:53
samcv well it's still not going through it 10:54
Calling postcircumfix:<{{ }}>(Associative, Positional) will never work with any of these multi signatures: 10:55
(\SELF, Iterable \key)
unless having it in code in my file is not doing it like rakudo is
timotimo where did those extra { } come from?
samcv i put them there 10:56
timotimo oh, you stole the thing
samcv to make sure i was going through this
yeah i copied the code into my file
Ulti, are you looking at exclusive time or inclusive? 10:58
11:03 rmusial left, espadrine left
IOninja "samcv │ can always do it after the fact IOninja" do what? 11:05
samcv doesn't remember
oh
yeah. adding perl 6 blog posts to the p6weekly after the fact 11:06
timotimo yeah
what did i miss?
samcv no clue 11:07
timotimo that's good, then
samcv you said something how you didn't post any blogs
timotimo yup
samcv and i said you could always do it after the fact
timotimo if i leave out everything, everyone feels left out equally
samcv hah
11:09 rmusial joined
andrzejku timotimo, c++ classes? 11:13
timotimo yup 11:14
implemented
github.com/rakudo/rakudo/blob/nom/...l/11-cpp.t - it's even tested 11:15
samcv timotimo, propaganda! 11:16
timotimo github.com/rakudo/rakudo/blob/nom/...mangling.t
github.com/rakudo/rakudo/blob/nom/...cglobals.t - cglobals also tested here
11:16 gdonald left
samcv you can't write to them though. that's what i meant before 11:17
timotimo someone will surely get on that if somebody demonstrates a use case and ask nicely? that tends to motivate devs somewhat
samcv Ulti, i don't see that part of Hash slice very far up the routine list if you sort by exclusive time 11:18
11:18 gdonald joined
timotimo aye 11:20
11:20 ltLeCamarade left
timotimo but maybe it's the piece that has the most potential for being improved? or something? 11:20
11:20 LeCamarade joined
andrzejku timotimo, docs.perl6.org/language/nativecall <<- where class section? 11:21
11:22 espadrine joined
samcv timotimo, ternary operator in perl 6 isn't any slower than nqp::if right? 11:23
timotimo C++ Support§
NativeCall offers support to use classes and methods from C++ as shown in github.com/rakudo/rakudo/blob/nom/...mangling.t (and its associated C++ file). Note that at the moment it's not as tested and developed as C support.
^ andrzejku
11:23 labster left
timotimo samcv: i hope so; it should translate very well, i think? 11:23
samcv yeah 11:24
andrzejku it is unclear for me
there should be C++ code/Perl binding code
and steps 11:25
timotimo please file a ticket to the doc repo
andrzejku right now I still suspect you of spreading propaganda 11:26
timotimo why?
gfldex timotimo: you did spread propaganda last night. Might very well be a habit of yours. :-> 11:27
timotimo github.com/rakudo/rakudo/blob/nom/...ngling.cpp - here's cpp code, there's the p6 code to bind it: github.com/rakudo/rakudo/blob/nom/...mangling.t
andrzejku timotimo, ok I believe you
timotimo clearly it was too difficult to read the test file and see that it's compiling a cpp test lib there 11:28
it even said "and its associated c++ file" in the docs page you linked (that i copy-pasted) 11:29
11:31 LeCamarade left
andrzejku timotimo, yes because a noob guy is overwhelmed with tons of docs and new knowledge also Perl6 is pretty difficult so when you are writing docs you SHOULD assume that your reader is drunk 11:31
11:32 itaipu joined
andrzejku or he really is 11:32
timotimo i thought it was pretty rude to call me a liar like that, but maybe i'm just overreacting 11:34
andrzejku timotimo, I didn't write this word
timotimo that's true
andrzejku timotimo, I just write and I don't believe because I don't understand docs at first look
so maybe I am dummy :)
or maybe doc is not perfect 11:35
timotimo yeah, the docs are fare from perfect here
i suggested you could file a bug on the docs repo for that
andrzejku timotimo, sure)
timotimo www.reddit.com/r/programming/comme...m/ddfqt7f/ 11:38
^- i have found a way for our module ecosystem to surpass CPAN
IOninja What a coincidence. I just had a controvercial thought while in the shower: don't do the CPAN6/MetaCPAN6 thing 11:39
timotimo break free of the shackles of The Best Module Ecosystem In The Free World? 11:40
samcv why is CPAN the best module ecosystem? 11:41
IOninja It isn't.
samcv heh
timotimo i don't know, i hear pretty darn good things about it
like, all the time
DrForr timotimo: But is it too alrge to fit in the margins of this channel?
IOninja It has the reputation of being full of rotting crap and PAUSE interface is from '90s. 11:42
DrForr *large
timotimo well, i heard that, too
but come on, the latter one is just a user interface complaint
might as well say "python is shitty, because just look at tk gui that's built in!"
nah, that's not fair
you're not forced to use tk at any point
samcv python has tk gui built in?
11:43 pmurias joined
timotimo yeah, "use Tkinter" or something 11:43
IOninja But my thought was not due to that: it's inevitable that the current ecosystem will stay and grow even if the CPAN6 becomes a thing. Just based on what I heard people say in this channel so far. Many are happy with git and can't be bothered to sign up for and learn a whole new interface.
timotimo sorry, "import" is the word
just build a git between-end (haha) that lets you access PAUSE through git?
IOninja In addition, MetaCPAN6 would mean its maintainers would need to know Perl 5 *and want to write Perl 5*. And lastly, AFAIK CPAN6 doesn't solve the multi-auth problem. 11:44
So to summarize: we're building a system that needs hacks to make usable and doesn't look like many people want to maintain it or use it.
11:45 abraxxa left
timotimo i can't really say anything for/against thatt 11:45
11:45 drrho joined
IOninja braces for another round of being quoted somewhere 11:46
jeek "IOninja braces for another round of being quoted somewhere" -overheard on IRC 11:49
IOninja timotimo: the UI complaint seems pretty fair. It's from the time *before* many of potential Perl 6 programmers were even born. Even I had a chuckle the first time I saw it—10 years ago. And many who see it for the first time would be new Perl 6 developers, not some hardcore fans. 11:52
11:53 abraxxa joined
IOninja It's easy to fix though... dunno why no one bothered still. 11:54
jeek: you're doing it wrong. You have to write a 2000-word essay concluding Perl 6 developers are racists. 11:55
pmurias IOninja: re CPAN being full of rotting crap, I would guess all the current module repos (like npm) are
IOninja pmurias: what'chu talking aboot! npm is the greatest thing since sliced bread. They get over 500 new modules every day! Look: www.modulecounts.com/ 11:57
jeek IOninja: I thought that was a given?
11:57 wamba joined
pmurias IOninja: npm has plenty of good things in it but they explicitly enourage adding crap to it 11:58
IOninja pmurias: sure. I see little relevance to CPAN or *its perception* among uninitiated 11:59
IOninja &
jeek The racist to build the world's heaviest airplane? 12:00
nine No one is forced to use PAUSE's web interface. Uploads are often done from the command line 12:06
timotimo ugh, command line, that's so 60s! 12:07
samcv IOninja, top perl 6 dev hates cpan! doesn't like perl 5!
or whatever wording that one guy used for you lol
nine samcv: ah, may as well be "THE top PEARL guy hates PEARL! And so should you!" 12:09
samcv that's better nine 12:10
jnthn hasn't followed all that closely, but had thought the idea was primarily to re-use CPAN's storage/mirroring infrastructure rather than re-inventing that wheel
timotimo leading perl6 developer 12:11
pmurias jayk_: ping 12:13
nine jnthn: yes but that would include PAUSE as we somehow have to upload dists :) It would not include metacpan.org or search.cpan.org 12:15
IOninja jnthn, from what I understand, even that subset of the work has issues: multi-auth handling 12:16
two authora uploading same-named dist 12:17
And I don't know for certain.
pmurias nine: I don't think anybody is suggesting using search.cpan.org
12:18 cibs joined
pmurias having metcpan.org instead of displaying module docs using github would be great 12:18
nine I included it just for clarity
jnthn nine: If there's a command line way of doing a PAUSE upload, we can surely front it with some other web application, though. :-) 12:19
To make the user experience we wish for.
IOninja right and metacpan too has the auth issue.
jnthn Again, I'm only going on what I'd understood, but I'd thought that the CPAN indexer was the part which would trip up over multiple auth things, but that isn't one of the pieces we'd re-use. 12:20
pmurias jnthn: creating accounts on PAUSE is the ugly part
jnthn pmurias: Hmm, OK.
samcv would be nice if ecosystem page wolud do p6doc
timotimo we could totally grab the description of a module as rendered by github to be displayed on modules.perl6.org when the user clicks a specific link, right?
we could grab the HTML from github with a little javascript http request? 12:21
samcv wait why can't we just render the pod?
IOninja Please don't :)
samcv timotimo, better listen to him, he's THE leading perl 6 developer
timotimo it's not always pod
sometimes it's markdown
i'm not sure if there are other kinds in use 12:22
samcv but.... it should be pod
timotimo but maybe one day someone makes a README.csv
samcv but i guess we could have some way to choose to do the md file or pod
timotimo, :((
README.csv ftl
IOninja samcv, have you seen modules.zef.pm it has some docs. Dunno if ita from pod or not 12:23
samcv nope
12:24 lukaramu joined
mst IOninja: heh, the dude going on on HN about npm uip[loads is one of only two people I've ever had to basically say "please don't ever try and contribute to one of my projects again" to 12:25
samcv Range.lazy # would it be ok to make a .Seq? that does the same thing?
since .lazy makes a sequence
IOninja isn't sure of what dude it is....
samcv THE leading dude 12:26
mst and I'm being intentionally vague because puyblically logged channel and I want to amuse you, not get subtweeted by chromatic
IOninja hah
mst if chromatic's going to be a dick to me again, I want a whole blog post damnit 12:27
samcv so i have been doing some work on the Data::Dump module, adding Pair and uh. IO::Path 12:28
and i'm trying to think the best thing to print out for a Seq 12:29
IOninja m: dd 1...*
camelia rakudo-moar 699013: OUTPUT«(1, 2, 3, 4, 5, 6, 7, 8, 9, 10... lazy list)␤»
12:30 zakharyas joined
samcv nice 12:32
that's rakudo specific tho
what if you wanna dd without printing it out?
timotimo overwrite $*OUT 12:33
samcv :\
come on
moritz m: say (1...*).perl 12:38
camelia rakudo-moar 699013: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
moritz :(
IOninja samcv, steal relevant code from rakudo and stick it into Data::Dump? :) 12:39
s: &dd
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/6990...ny.pm#L578
samcv yeah i'm considering doing that 12:40
12:46 ggoebel left
Geth doc: 7a861ba90c | (Samantha McVey)++ | util/trigger-rebuild.txt
Trigger rebuild to pull in highlighting improvements

atom-language-perl6 v1.14.1 just released.
12:47
12:48 rurban joined 12:50 CIAvash left
samcv IOninja, do you like `^10` highlighting all of it as a number for highlighting? 12:55
or do you want the ^ to not highlight the same as the number portion 12:56
atm ^10 all highlights as number
i kinda liked it all highlighting together 12:58
12:59 ggoebel joined
IOninja shrugs 13:08
13:10 bjz_ joined
El_Che I released some new talks 13:10
13:10 itaipu left 13:11 bjz left 13:19 rindolf joined 13:24 faraco joined
IOninja Anyone remember the URL for Perl 6 periodic table of elements? 13:26
of operators...
hm, maybe that's why I get bogus results on google :P
It's www.ozonehouse.com/mark/periodic/
13:29 lukaramu left, lukaramu joined 13:34 sufrostico joined
samcv m: say 'Z' before 'a' 13:38
camelia rakudo-moar 699013: OUTPUT«True␤»
samcv i gotta go to bed, night all 13:39
IOninja night 13:41
faraco m:say 'Hello kudoz'; 13:42
well, the white space ruined the intro. 13:43
IOninja: hey, are you this guy? Just curious.. 13:45
github.com/iONinja
13:45 itcharlie1 joined 13:47 bjz joined
IOninja That's my cousin! 13:48
13:49 bjz_ left
faraco ha 13:49
13:49 cognominal joined 13:52 thdr|2 joined 13:54 pyrimidine joined, pyrimidi_ left 14:05 cognominal left
[Coke] m: .say for <a b c d>.rotor(3,-2); 14:08
camelia rakudo-moar 699013: OUTPUT«(a b c)␤Rotorizing sublist length is out of range. Is: -2, should be in 1..^Inf; ␤Did you mean to specify a Pair with => -2?␤ in block <unit> at <tmp> line 1␤␤»
[Coke] m: .say for <a b c d>.rotor(3=>-2); 14:09
camelia rakudo-moar 699013: OUTPUT«(a b c)␤(b c d)␤»
[Coke] (metacpan.org/pod/List::EachCons)
IOninja *sigh* trying to look up a particular op on docs site is quite painful 14:13
14:13 raiph joined
IOninja And I even know what this op is called :/ function composition 14:14
IOninja is saved by the uni<->texas pagfe
14:14 zakharyas left
faraco I can't wait Perl 6 doc to be available with Zeal. Browsing doc with keywords will much easier. 14:15
will be*
[Coke] faraco: URL? 14:16
oh, it was like number six on google, no wonder I couldn't see it. :)
faraco zealdocs.org/, if that what you meant. 14:17
[Coke] now on kapeli.com/docsets
14:18 agentzh joined
[Coke] faraco: please open a wishlist ticket on the perl6 docs site. If it gets enough votes, this looks like something we can do. 14:18
faraco I'm glad to. :) 14:19
perlpilot My cousin promotes some "energy drink" called zeal. I was wondering how that related to documentation and Perl :)
14:20 pyrimidine left, rurban1 joined
faraco zeal boost your energy to program Perl 6, I guess? :D 14:20
14:22 agentzh left
perlpilot installs zeal and the perl docset to see if he likes it 14:23
14:24 rurban left
IOninja Seems it'd be trivial to make Perl 6 version: kapeli.com/docsets#dashDocset 14:26
perlpilot yeah, it looks like the perl docset was straight out of pod2html 14:28
[Coke] we could do it from the HTML, but we already have it at a state where we know all the individual bits before we re-assemble it into html.
faraco but I like the keyword usage, eg, perl:perlvar 14:29
perlpilot adds his thumbs up to github.com/perl6/doc/issues/1185 14:32
14:37 gdonald left 14:39 wamba left, bjz left, gdonald joined 14:40 sufrostico left 14:41 bwisti joined 14:49 wamba joined 14:57 cdg joined
El_Che ugexe: how does one upgrade zef itself? My rakudo packages contains 2 scripts to install zef as root and user (just updated the source, wil create deb/rpm after travis gives a go). I was wondering if zef could upgrade it self (zef upgrade zef does not do the trick) 14:58
IOninja What happens with zef upgrade zef? 15:01
Its version is listed as * innit? You need to force it
El_Che No such method 'dist' for invocant of type 'Any'
[Coke] there's a ticket to get zef to start advertising a version number to help with that.
El_Che bbl, catch a train
IOninja zef --force install zef 15:02
huh, I didn't get that for upgrade. I got "The following distributions are already at their latest versions: zef:auth('github:ugexe')"
Perhaps you're on a buggy version. Try using the bootstraping method (should be in zef's readme)
with --force
.oO( what bait do you use to catch trains... )
15:04
faraco m: say 1..10;
camelia rakudo-moar 699013: OUTPUT«1..10␤»
IOninja m: say 10...1 15:05
camelia rakudo-moar 699013: OUTPUT«(10 9 8 7 6 5 4 3 2 1)␤»
faraco what
15:05 curan left
faraco why 1..10 doesn't work? 15:06
IOninja It works
m: say eager 1..10
camelia rakudo-moar 699013: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
IOninja You're using .gist output of a Range, so it just gives you end points
faraco is this something specific to the bot?
IOninja No
m: put 1..10
camelia rakudo-moar 699013: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
faraco oh...I don't have rakudo installed right now..gonna have a private session with camelia for now :P 15:07
hartenfels faraco: It's telling you about the Range object itself, not the sequence it produces.
IOninja m: say 1..∞ 15:08
camelia rakudo-moar 699013: OUTPUT«1..Inf␤»
IOninja m: put 1..∞
camelia rakudo-moar 699013: OUTPUT«1..*␤»
faraco you remind me to to imagine it as "scalar blah"
IOninja :S
15:08 rurban1 left
IOninja faraco: 1..10 creates a Range object 15:09
You can write it as Range.new: 1, 10; or something similar
faraco oh, now I get it.
15:10 sufrostico joined, sufrostico left, sufrostico joined 15:14 cdg left
IOninja m: say 0e0 ∈ -0e0..0e0 15:14
camelia rakudo-moar 699013: OUTPUT«False␤»
IOninja ponders that one...
15:14 cdg joined 15:16 sufrostico left 15:17 sufrostico joined
IOninja Guess that's less surprising than returning a 2-element list for that Range... 15:17
15:18 pyrimidine joined
IOninja m: sub infix:<..> { $^a == $^b and $a !=== $b and $a|$b }; say ∈ -0e0..0e0 15:19
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Preceding context expects a term, but found infix ∈ instead␤at <tmp>:1␤------> 3== $^b and $a !=== $b and $a|$b }; say ∈7⏏5 -0e0..0e0␤»
IOninja m: sub infix:<..> { $^a == $^b and $a !=== $b and $a|$b }; say 0e0 ∈ -0e0..0e0
camelia rakudo-moar 699013: OUTPUT«any(False, True)␤»
faraco m: say my $minus = $a, $b { $a - b}; minus(20,1);
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$a' is not declared␤at <tmp>:1␤------> 3say my $minus = 7⏏5$a, $b { $a - b}; minus(20,1);␤»
IOninja m: sub infix:<..> { $^a == $^b and $a !=== $b and $a|$b }; say so 0e0 ∈ -0e0..0e0
camelia rakudo-moar 699013: OUTPUT«True␤»
15:19 skids joined
IOninja m: sub infix:<..> { $^a == $^b and $a !=== $b and $a|$b }; say so (-0e0..0e0).elems 15:19
camelia rakudo-moar 699013: OUTPUT«True␤»
IOninja m: sub infix:<..> { $^a == $^b and $a !=== $b and $a|$b }; say (-0e0..0e0).elems
camelia rakudo-moar 699013: OUTPUT«any(1, 1)␤»
faraco m: say my $minus = -> $a, $b { $a - b}; minus(20,1);
IOninja heh
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routines:␤ b used at line 1␤ minus used at line 1. Did you mean 'lines'?␤␤»
IOninja m: say my &minus = -> $a, $b { $a - b}; minus(20,1); 15:20
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ b used at line 1␤␤»
IOninja m: say my &minus = -> $a, $b { $a - $b}; minus(20,1);
camelia rakudo-moar 699013: OUTPUT«-> $a, $b { #`(Block|65574120) ... }␤»
faraco m: my $minus = -> $a, $b { $a - b}; minus(20,1);
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routines:␤ b used at line 1␤ minus used at line 1. Did you mean 'lines'?␤␤»
hartenfels faraco: you're missing a $ before your b.
faraco m: my $minus = -> $a, $b { $a - $b}; minus(20,1);
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ minus used at line 1. Did you mean 'lines'?␤␤»
IOninja And before mninus
15:21 Actualeyes left
hartenfels Oh, it turned back into $minus. 15:21
I saw &minus a moment ago.
faraco m: my &minus = -> $a, $b { $a - $b}; minus(20,1);
camelia ( no output )
faraco yay
IOninja m: my &minus = &[-]; say minus 20, 1
camelia rakudo-moar 699013: OUTPUT«19␤»
faraco ty
15:21 jeffythedragonsl left
IOninja m: say &[-] 20, 1 15:21
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3say &[-]7⏏5 20, 1␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier␤ …»
IOninja m: say &infix:<-> 20, 1
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3say &infix:<->7⏏5 20, 1␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier…»
IOninja m: say infix:<-> 20, 1
camelia rakudo-moar 699013: OUTPUT«19␤»
IOninja Ah, right 15:22
m: say [-] 20, 1
camelia rakudo-moar 699013: OUTPUT«19␤»
IOninja m: say 20 &[-] 1
camelia rakudo-moar 699013: OUTPUT«all(20, -1)␤»
IOninja heh 15:23
faraco meta character?
hartenfels Meta-operator.
faraco dang
IOninja m: say [-] 20, 1, 5, 6
camelia rakudo-moar 699013: OUTPUT«8␤»
IOninja m: say [\-] 20, 1, 5, 6
camelia rakudo-moar 699013: OUTPUT«(20 19 14 8)␤»
IOninja faraco: [-] ... is the same as putting `-` between each of the elements in that list 15:24
more or less
m: say [*] 0
faraco m: say [+] 8, 230
camelia rakudo-moar 699013: OUTPUT«0␤»
rakudo-moar 699013: OUTPUT«238␤»
IOninja m: say [*] 1
camelia rakudo-moar 699013: OUTPUT«1␤»
IOninja m: say [*] ()
camelia rakudo-moar 699013: OUTPUT«1␤»
faraco m: say [**] 2, 2
camelia rakudo-moar 699013: OUTPUT«4␤»
faraco m: say [**] 2, 923 15:25
camelia rakudo-moar 699013: OUTPUT«7090649168385424913397133341550352860122967727944347663191661163882926259805700175977555820923597100209230059576954713108323026874279526270822670846473668221392492487180041665757591294452179607726284006988293825178469413313283348503861899091475763716755128…»
IOninja m: say [*] set 1, 2, 3
camelia rakudo-moar 699013: OUTPUT«3␤»
faraco say 1..10.eager
m: say 1..10.eager 15:26
camelia rakudo-moar 699013: OUTPUT«1..1␤»
IOninja won't work. Precedence
faraco m: say (1..10).eager
camelia rakudo-moar 699013: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
faraco 2 style for the same thing, nice! procedural and oo
hartenfels You can contort most things into that. 15:27
Geth doc: 97d0575966 | (Will "Coke" Coleda)++ | doc/Language/5to6-nutshell.pod6
use nbsp
hartenfels m: say 1.&infix:<+>(2)
camelia rakudo-moar 699013: OUTPUT«3␤»
hartenfels The true OO way to say 1 + 2.
faraco say (1..10).end - 1
m: say (1..10).end - 1
camelia rakudo-moar 699013: OUTPUT«8␤»
tbrowder hi, #perl6
faraco 0/
hartenfels Hi tbrowder.
IOninja m: say 1.&[+]: 2 15:28
camelia rakudo-moar 699013: OUTPUT«3␤»
15:28 sufrostico left
IOninja m: say (1..10).tail - 1 15:28
camelia rakudo-moar 699013: OUTPUT«9␤»
tbrowder i'm still on the hunt for a better p6 editor (emavs is my favorite so far). has anyone tried editrocket (www.editrocket.com/)?
15:28 mscha joined
IOninja is happy enough with atom 15:29
tbrowder it's customizable with java
faraco multi method map(HyperIterable:D: &block;; :$label)
moritz happy enough with gvim
faraco I don't understand map.
there is no quick example?
deepmap (below it) has one
IOninja m: ^10 .map(* + 42).say
camelia rakudo-moar 699013: OUTPUT«(42 43 44 45 46 47 48 49 50 51)␤»
15:30 sufrostico joined
hartenfels m: say map { "$_!" }, 'hello', 'there', 'mapped', 'world' 15:30
camelia rakudo-moar 699013: OUTPUT«(hello! there! mapped! world!)␤»
IOninja m: ^10 .hyper.map({$^hypered-thing + 42}).say
camelia rakudo-moar 699013: OUTPUT«HyperSeq.new␤»
IOninja gah
m: ^10 .hyper.map({$^hypered-thing + 42}).eager.say 15:31
camelia rakudo-moar 699013: OUTPUT«(42 43 44 45 46 47 48 49 50 51)␤»
faraco m: say "cat".say
camelia rakudo-moar 699013: OUTPUT«cat␤True␤»
IOninja m: ^4 .hyper(:batch).map({sleep 1; $*THREAD.id}).eager.say; say now - INIT now; 15:32
camelia rakudo-moar 699013: OUTPUT«(3 4 5 6)␤1.00761102␤»
IOninja :D
mscha This may be a silly question, but is there a nice ‘English’ way to put something in a bag (well, BagHash)? 15:33
m: my $bag = BagHash.new: <red red red red blue blue>; my $ball = $bag.grab; say $ball; $bag<red>++;
camelia rakudo-moar 699013: OUTPUT«blue␤»
mscha This works, but that last statement is so inelegant.
hartenfels mscha: you can bag something. 15:34
That is, bag is a verb too.
IOninja mscha: rt.perl.org/Ticket/Display.html?id...et-history
15:35 Actualeyes joined
hartenfels Oh wait I didn't read that close enough. 15:35
mscha Thanks.
15:36 zacts joined 15:40 ufobat left, eroux joined
IOninja m: my $b = BagHash.new: <a b c>; $b<b c>»++; say $b 15:43
camelia rakudo-moar 699013: OUTPUT«BagHash.new(a, c(2), b(2))␤»
IOninja m: my $b = BagHash.new: <a b c>; $b<b c> »+=« 2; say $b
camelia rakudo-moar 699013: OUTPUT«Lists on either side of non-dwimmy hyperop of are not of the same length␤left: 2 elements, right: 1 elements␤ in block <unit> at <tmp> line 1␤␤»
IOninja m: my $b = BagHash.new: <a b c>; $b<b c> «+=» 2; say $b
camelia rakudo-moar 699013: OUTPUT«BagHash.new(a, c(3), b(3))␤»
faraco m: say exit(1) 15:46
camelia ( no output )
IOninja m: my $b = BagHash.new: <a b c>; $b<b c> «-=» 2; say $b 15:47
camelia rakudo-moar 699013: OUTPUT«BagHash.new(a)␤»
faraco m: say True if 1 == True 15:48
camelia rakudo-moar 699013: OUTPUT«True␤»
faraco m: say True if 0 == True
camelia ( no output )
IOninja m: Bool.enums.say 15:49
camelia rakudo-moar 699013: OUTPUT«{False => 0, True => 1}␤»
faraco same as in Perl 5, I guess. Just, there is boolean object.
Geth doc: 8295e9294d | (Will "Coke" Coleda)++ | xt/words.pws
add new word
doc: db18ecae1c | (Will "Coke" Coleda)++ | doc/Language/experimental.pod6
Only mention releases. Fix release date.
IOninja faraco: almost same. In Perl 5 "0" is False, but in Perl 6 it is True 15:50
faraco ah, I see
m: say "duck".perl 15:53
camelia rakudo-moar 699013: OUTPUT«"duck"␤»
faraco m: say "duck".perl.reverse 15:57
camelia rakudo-moar 699013: OUTPUT«("duck")␤»
faraco m: say "duck".perl.splice
camelia rakudo-moar 699013: OUTPUT«No such method 'splice' for invocant of type 'Str'␤ in block <unit> at <tmp> line 1␤␤»
faraco m: say "duck".perl.sort
camelia rakudo-moar 699013: OUTPUT«("duck")␤»
faraco m: say "duck".split()
camelia rakudo-moar 699013: OUTPUT«Cannot resolve caller split(Str: ); none of these signatures match:␤ (Str:D $: Regex:D $pat, $limit is copy = Inf;; :$v is copy, :$k, :$kv, :$p, :$skip-empty, *%_)␤ (Str:D $: Cool $match;; :$v is copy, :$k, :$kv, :$p, :$skip-empty, *%_)␤ (St…»
IOninja m: say "duck".comb
camelia rakudo-moar 699013: OUTPUT«(d u c k)␤»
hartenfels Didn't think I'd see people combing and trying to split a duck today. 15:58
faraco m: say "duck".comb.sort 15:59
camelia rakudo-moar 699013: OUTPUT«(c d k u)␤»
faraco m: say "duck".comb.reverse.join 16:00
camelia rakudo-moar 699013: OUTPUT«kcud␤»
faraco m: say comb.WHY; 16:03
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Calling comb() will never work with proto signature ($, $, $?)␤at <tmp>:1␤------> 3say 7⏏5comb.WHY;␤»
faraco I think this I'm spamming..
is
IOninja m: "duck".ords».&[+](119711)».chr.join.say 16:04
camelia rakudo-moar 699013: OUTPUT«𝐃𝐔𝐂𝐊␤»
faraco bold? :O:O:O:O
IOninja :)
faraco m: "duck".ords».&[+](119711)».chr.reverse.join.say 16:05
camelia rakudo-moar 699013: OUTPUT«𝐊𝐂𝐔𝐃␤»
16:05 sena_kun joined 16:07 jeffythedragonsl joined
faraco m: "rotator".ords».&[+](119711)».chr.reverse.join.say 16:07
camelia rakudo-moar 699013: OUTPUT«𝐑𝐎𝐓𝐀𝐓𝐎𝐑␤»
faraco say so 16:09
m: say so
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Prefix so requires an argument, but no valid term found␤at <tmp>:1␤------> 3say so7⏏5<EOL>␤ expecting any of:␤ prefix␤»
IOninja m: .so.say
camelia rakudo-moar 699013: OUTPUT«False␤»
IOninja ^_^
faraco hey thank you
.so.say.not.say 16:10
m: .so.say.not.say
camelia rakudo-moar 699013: OUTPUT«False␤False␤»
[Coke] m: so say 'we' .all
camelia rakudo-moar 699013: OUTPUT«WARNINGS for <tmp>:␤Useless use of "so " in expression "so say 'we' .all" in sink context (line 1)␤all(we)␤»
faraco m: .so.not.say 16:11
camelia rakudo-moar 699013: OUTPUT«True␤»
CIAvash[m] m: say 'duck'.flip
camelia rakudo-moar 699013: OUTPUT«kcud␤»
faraco CIAvash[m]: I wish I knew that earlier, *facepalm*. 16:12
"rotator".flip
m: say "rotator".flip
camelia rakudo-moar 699013: OUTPUT«rotator␤»
IOninja m: .one for .all & all 4 .one 16:14
camelia ( no output )
IOninja m: subset Pallindrome where .flip eq $_; say "rotator" ~~ Pallindrome; say "cat" ~~ Pallindrome
camelia rakudo-moar 699013: OUTPUT«True␤False␤»
[Coke] m: say <a b a c>.rotor(3=>-2)>>.reverse.flat.join
camelia rakudo-moar 699013: OUTPUT«abacab␤»
faraco are we trying to make obsfucated Perl 6? :D 16:15
16:16 Actualeyes left
perlpilot This is what freedom of expression means :) 16:16
16:17 hartenfels left
IOninja star: use LWP::Simple; subset Perl6Site where LWP::Simple.get($_).contains: "Perl 6"; say "perl6.party" ~~ Perl6Site; say "php.com" ~~ Perl6Site 16:17
camelia star-m 2016.10: OUTPUT«True␤False␤»
IOninja hehe, awesome.
faraco perlpilot: I like the sound of that. :) 16:18
wait, what kind of bot is star?
does it means, it has all the modules that comes with Task::Star? 16:19
[Coke] it's basically what you'd get with a rakudo star of that vintage. 16:20
(so, basically, yes.)
faraco nice
16:21 sufrostico left
faraco star: use Test;plan 1; ok 1, True; done-testing; 16:22
camelia star-m 2016.10: OUTPUT«1..1␤ok 1 - True␤»
faraco star: use Test;plan 1; ok 0, True; done-testing;
camelia star-m 2016.10: OUTPUT«1..1␤not ok 1 - True␤␤# Failed test 'True'␤# at <tmp> line 1␤# Looks like you failed 1 test of 1␤»
16:23 sufrostico joined
faraco you know what, I think I'll get my new rakudo now. I'm basically flooding this channel. :3 16:23
erm, having a search engine (perl 6 doc) for the browser quick search bar will be nice. 16:27
16:27 sufrostico left
faraco or is there somewhere that I didn't found yet? 16:28
16:28 vike joined
[Coke] I think we'd need a dynamic site to support that. 16:28
right now docs.perl6.org is just pages of static content.
16:28 jeffythedragonsl left
faraco oh, now it is clear why. Thank you. 16:28
16:29 sufrostico joined
IOninja
.oO( add a small app that handles search... )
16:31
.oO( make an IRC bot that uses it... )
16:32
faraco what 16:33
jast you can use google site search or something like that
faraco I forgot that google has the narrowed search operator. 16:34
garo What's "moar" ? 16:35
IOninja garo: "Metamodel On A Runtime"
jast or as someone who maintains the site I believe you can set up a search widget that does the site limiting automatically, I think it's called google CSE
IOninja garo: leading Virtual Machine that Perl 6 can run on
[Coke] garo: see also moarvm.org/
garo k, thanks
faraco jast: Thank you! I literally just knew that exist. 16:36
16:39 Actualeyes joined 16:41 khw joined
faraco Guys, where can I download HTML version of Perl 6 docs? I want to do a few doc testing with Dash. 16:45
perlpilot doc.perl6.org :-)
16:46 abraxxa left
faraco do I need to wget -r ? 16:46
I should
16:46 Actualeyes left
IOninja faraco: you can build it. 16:46
faraco That is my problem, I can't. Not enough memory.
sena_kun faraco, actually, we have docs.perl6.org/perl6.xhtml, but it is somewhat... Not so pretty as usual pages. 16:47
faraco oh, I think I'll use the docs.perl6.org. I need the separated HTML's.
16:50 alimon joined, agentzh joined
IOninja faraco: temp.perl6.party/docs.tar.gz 16:51
16:51 Actualeyes joined
sena_kun IOninja, someone certainly need to do this in official and persistent way... 16:53
moritz sena_kun: well volunteered!
sena_kun Ah, my grammar is gone today. :/ 16:54
IOninja Seems the whole $COLON$COLON thing to make failes workable on all platforms didn't do all the files. I see plenty of them with '>' and '<' in them but those chars aren't allowed on windows
*files
16:54 pyrimidine left
IOninja sena_kun: nope. The docs can be built by whoever needs them. 16:54
16:55 pyrimidine joined
faraco IOninja: thanks 16:55
16:56 Actualeyes left
sena_kun moritz, I can write a command to tar(see github.com/perl6/doc/issues/718#is...78063479), but I cannot write a script with correct paths and stuff. :/ 16:56
IOninja, they can be built for sure, but the issue is still here. ;) 16:57
IOninja sena_kun: which one? 16:58
moritz sena_kun: the script that generates the files for publication is util/update-and-sync in the perl6/doc repo
sena_kun IOninja, github.com/perl6/doc/issues/718 - this. It was a part of docs TODO list since forever.
moritz, oh, I'll look into it.
moritz sena_kun: and it uses mostly relative paths, so it shouldn't be too hard to work with 16:59
16:59 rurban joined
sena_kun moritz, I'll give it a try. 16:59
17:00 buggable joined, ChanServ sets mode: +v buggable
IOninja sena_kun: "you can also download an offline HTML ... copy". That currently links to the perl6.xhtml file. 17:02
sena_kun: there are fatal issues with just tarring everything (is `tar` even available on Windows?). After asking if I want to replace < >.html with _ _.html, it's now showing me this error: i.imgur.com/CzKElIV.png I assume it's one of the fancy-pants set ops used as a file name. 17:04
sena_kun IOninja, if so, we need to provide a link to it somewhere. And make it pretty.
IOninja sena_kun: "to it" it being what? 17:05
sena_kun IOninja, I'm on gentoo, so sorry, cannot say anything about windows-related issues. Anyway, I didn't plan to work or to discuss it RIGHT NOW, just mentioned this old-old ticket. To it == to perl6.xhtml.
IOninja It's already linked to from home page. 17:06
As for pretty, it's trying to load docs.perl6.org/pod-to-bigpage.css which ain't there... 17:07
sena_kun IOninja, aww, okay. Then just close it!
IOninja stop yelling at me :| 17:08
sena_kun IOninja, sorry. Today was awful and I'm a bit distracted now. I didn't intend to offend you in any way. 17:09
17:09 abraxxa joined 17:16 geekosaur joined 17:20 AlexDaniel joined
IOninja hm.. and all the absolute paths for assets make the archive unusable without a server to cater it 17:25
17:30 agentzh left
sena_kun IOninja, yep. Anyway, I can see improving of bigpage version as more appropriate task comparing with this tar'ish thing, so I'm personally +1 for the idea of abandoning this ticket. // And I forgot that some OS are not linux too, shame on me. 17:30
17:38 rurban left, TimToady joined 17:44 dakkar left 17:46 gdonald left 17:48 gdonald joined 17:52 wamba left 18:00 Eddward joined
Eddward Hi. Stupid newbie question... allrows() in DBIish returns a lazy list of array references. My query is returning 1 column per row. Is there a nifty way to flatten refs out and stay lazy? 18:02
IOninja m: ([<a b c>], [<d e f g>]).flat.say 18:04
camelia rakudo-moar 699013: OUTPUT«(a b c d e f g)␤»
IOninja Eddward: ^
18:04 agentzh joined
AlexDaniel m: ([<a b c>], [<d e f g>]).flat.WHAT.say 18:05
camelia rakudo-moar 699013: OUTPUT«(Seq)␤»
yoleaux 6 Feb 2017 20:24Z <tbrowder> AlexDaniel: Did you get nqp files working with perl6-mode in emacs?
AlexDaniel .tell tbrowder what nqp files?
yoleaux AlexDaniel: I'll pass your message to tbrowder.
IOninja m: ([<a b c>] xx *).flat[^6].say
camelia rakudo-moar 699013: OUTPUT«(a b c a b c)␤»
Eddward IOninja: Thanks. That'll keep the source list lazy too? 18:06
@still-lazy = @lazy.flat # is true?
IOninja Eddward: yeah, it's all like a pipeline. You ask for 1 thing on one end and all these iterators reach out to the start of it and ask for just one item there
Eddward cool. 18:07
I didn't want to dump the whole DB into memory.
Thanks again.
IOninja I think array intializers are eager tho?
m: my @still-lazy = ([<a b c>] xx *).flat; say @still-lazy[^6].say 18:08
mhm
Eddward I was afraid .flat() would 'materialize' the whole list.
AlexDaniel e: my @still-lazy = lazy ([<a b c>] xx *).flat; say @still-lazy[^6].say
evalable6 AlexDaniel, rakudo-moar 6990133: OUTPUT«(a b c a b c)␤True»
IOninja m: my $still-lazy = ([<a b c>] xx *).flat; say $still-lazy[^6].say
camelia rakudo-moar 699013: OUTPUT«(timeout)»
rakudo-moar 699013: OUTPUT«(a b c a b c)␤True␤»
IOninja Eddward: so if you're intializing an @array with that, stick a `lazy` before it.
s/before it/before the values/; 18:09
Eddward IOninja: I'm probably still good. I have a sub returning the flattened list and that will be called by a foreach.
IOninja cool
AlexDaniel it doesn't hurt to check if you actually get it lazy where you want it to be
but usually, if you do everything right, most things will not reify unless you want them to
also… 18:10
if you do 「my @whatever = …」, you probably don't care if it is lazy or not…
if you do, then don't use @ 18:11
I mean, an array will store the whole thing in the memory, which is something you wanted to prevent
IOninja m: my @whatever = 1...*; say @whatever[^10]
camelia rakudo-moar 699013: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
timotimo or use := instead of =
AlexDaniel in this case just use a Seq or something
(so $, not @)
IOninja The := won't help for Seqs, 'cause they aren't positionals.
timotimo OK 18:12
IOninja How come I can stick 1...* into an @array and it's not eager but the other thing above was eager?
Is it just a special case?
timotimo hm, it's explicitly lazy?
IOninja m: my @whatever = 1..*; say @whatever[^10] 18:13
camelia rakudo-moar 699013: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
AlexDaniel this thing again!
was there a ticket for it? Hmmm…
IOninja m: my @whatever = (1..*).map({$_}); say @whatever[^10]
camelia rakudo-moar 699013: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
IOninja m: say ([<a b c>] xx *).flat.is-lazy
camelia rakudo-moar 699013: OUTPUT«False␤»
IOninja Ahh
OK.
m: ([<a b c>] xx *).is-lazy.say 18:14
camelia rakudo-moar 699013: OUTPUT«True␤»
IOninja hm, .flat should prolly propagate the .is-lazy
If only I knew what it actually means...
18:15 pyrimidine left 18:16 elisdg joined, pyrimidine joined 18:19 wamba joined
tbrowder AlexDaniel: sorry, a day or so ago I thought I saw that you asked about recognizing nqp files in emacs perl6-mode, but an IRC search shows nothing 18:20
yoleaux 18:05Z <AlexDaniel> tbrowder: what nqp files?
AlexDaniel tbrowder: yes, it was a ticket 18:23
aaaaah, that's what you meant…
IOninja Anyone familiar with nqp toolchain and knows where the args get processed? Perhaps you'd know the answer for the question: github.com/perl6/nqp/issues/346#is...-278090170
AlexDaniel to be honest, I haven't tried updating perl6-mode yet
TimToady yes, if flat doesn't propagate is-lazy, I'd consider it a bug 18:25
tbrowder i use it manually, but it's set to deal with nqp names, all in the perl6-mode; to recognize nqp files i set in my init.el to use perl6-mode for *.nqp
AlexDaniel tbrowder: hmmmm 18:26
tbrowder: according to this commit it should work: github.com/perl6/perl6-mode/commit...ba28546e9f
OK, I've closed the issue
IOninja OK, I'll fix it (the flat lazy bug) 18:31
Eddward IOninja: I've been in another window. Sounds like it should work like you said, but there's a bug at the moment? 18:33
IOninja Eddward: it should still work as I've said. I think the scope of the bug is that assigning it to @array is eager, when it should be lazy 18:34
Eddward oh. Well thanks for looking into fixing it anyway. 18:35
[Coke] IOninja: re < and > I think ¿samcv? removed some characters from the list in the past month or so.
TimToady list assignment is lazy only when .is-lazy is true, and .flat ought to be propagating that
IOninja [Coke]: seems the unicode chars have problems too, but maybe I need to pass some sort of options to tar vOv 18:39
18:39 eroux left
[Coke] IOninja: all these easy tickets end up being much more painful in practice. 18:40
IOninja :)
18:42 Lucas_One joined, bwisti left, eroux joined
IOninja heh... first compilation of is lazy fix fails on dist install with Cannot (s)printf a lazy list 18:48
in block <unit> at tools/build/create-moar-runner.pl line 20
18:50 sufrostico left
faraco yay rakudo ready to roll! 18:51
18:52 labster joined 18:55 bwisti joined
IOninja oh, nm, it was my misunderstanding of timings. 18:55
tbrowder AlexDaniel: i think the emacs perl6-mode problem is on your end. i commented out the dup lines in my init.el which identified *.nqp AND *.p[lm]?6 as perl6-mode and emacs still recognized p6 files for perl6-mode . 18:56
and it still works on *.nqp files, too 18:57
AlexDaniel yup
tbrowder should i put my init.el in a gist?
18:59 faraco left
AlexDaniel if there's something interesting, yea? 19:01
but *.nqp is a non-issue
tbrowder nothing special, except manual use of perl6-mode installed in a sub dir of .emacs.d... 19:02
Eddward What's the right way to spell $sth.allrows.map{s| ^ 'file://' ||}.say; 19:04
It can't resolve map
IOninja Eddward: missing () around map's {} 19:05
Eddward m: my @x=(1,2,3) @x.map{$_*2}.say
camelia rakudo-moar 699013: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3my @x=(1,2,3)7⏏5 @x.map{$_*2}.say␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statemen…»
Eddward m: my @x=(1,2,3) ; @x.map{$_*2}.say
camelia rakudo-moar 699013: OUTPUT«Cannot resolve caller map(Array: ); none of these signatures match:␤ ($: Hash \h, *%_)␤ (\SELF: &block;; :$label, :$item, *%_)␤ (HyperIterable:D $: &block;; :$label, *%_)␤ in block <unit> at <tmp> line 1␤␤»
IOninja m: my @x=(1,2,3) ; @x.map({$_*2}).say
camelia rakudo-moar 699013: OUTPUT«(2 4 6)␤»
Eddward oh. Thanks
stmuk maybe pod executes if you write your own windows perl6 wrapper? 19:06
:)
IOninja Eddward: what's your perl6 version?
stmuk: hm?
m: my @x=(1,2,3) ; @x.map({s|^\d+|z|}).say
camelia rakudo-moar 699013: OUTPUT«(「1」 「2」 「3」)␤»
IOninja m: my @x=(1,2,3) ; @x.map({S|^\d+|z|}).say 19:07
camelia rakudo-moar 699013: OUTPUT«(z z z)␤»
Eddward I have $sth.allrows.map({s:g| ^ 'file://' ||}).say; but it's not doing what I expect. I've messaged up the re.
IOninja Eddward: ^ that would be the right way to do it, but it only works on bleed Perl 6
Eddward In the perl5 version I'm using URI objects.
stmuk IOninja: a joke never mind
Eddward I figure in p6 I'll strip the file:// and then use IO::Path. 19:08
IOninja m: my @x=(1,'file://meow',3) ; @x».subst('file://','').say
camelia rakudo-moar 699013: OUTPUT«[1 meow 3]␤»
IOninja That works too, though that'd replace it anywhere, not just start of string
m: my @x=(1,'file://meow',3) ; @x».subst(/^ 'file://'/,'').say
camelia rakudo-moar 699013: OUTPUT«[1 meow 3]␤»
IOninja Eddward: ^ that should work
Um 19:09
Eddward cool. Thanks
IOninja Eddward: no, use a map: @x.map(*.subst: /^ 'file://'/,'').say
Eddward: the ». is meant to be autothreaded and I'm unsure how that will behave with laziness when it actually is implemented to be that way
I think it'll be eager.. 19:10
Eddward ok.
Sorry to be such a pest. I'm taking some time to get the little things down with p6. 19:11
TimToady hypers are supposed to be eager; gotta use an explicit map to stay lazy
19:16 vike left
IOninja noted 19:17
Eddward For that matter, would there be a way to autothread/hyberthread this?
for get-names() { dump-list($dbh, $_, $dir $prefix) }
19:17 mscha left, darutoko left
TimToady looks like side effects, which you don't want to do in parallel 19:18
if dump-list is IO
Eddward I figure there's a more idiomatic way altogether.
19:18 jonas1 left
Eddward They each write to a different file with a name derived from $_. 19:18
TimToady in that case it might work okay 19:19
Eddward I'm dumping playlists from banshee to m3u files.
19:20 espadrine left
Eddward I guess the question is if DBIish can handle concurrent access. 19:20
TimToady but I don't think 'for' is smart enough to attempt anything with a HyperSeq yet
timotimo i think it just hits the .map on HyperSeq which then will spread it out onto threads
TimToady and HyperSeq is a bit buggy, which is why "hypers" avoid them till now
Eddward I was assuming I'd need something other than for. I didn't know if there'd be some trick with a hyper and currying.
IOninja m: for ^4 .hyper(:batch) { sleep 1; say $_ }; say now - INIT now 19:21
camelia rakudo-moar 699013: OUTPUT«0␤1␤2␤3␤1.00665744␤»
IOninja m: for ^4 .hyper(:batch) { sleep 1; say $_ }; say now - INIT now
camelia rakudo-moar 699013: OUTPUT«0␤2␤1␤3␤1.0067660␤»
timotimo yup, hyperseq can end up throwing all values away
Eddward It's not important however. Just trying to squeeze in as many new things as possible to try and learn them.
TimToady here be some baby hyperdragons, is all :) 19:22
IOninja :)
Eddward :)
timotimo HyperRogue has basically HyperDragons in it
but they aren't really very hyper 19:23
they just live on the hyperbolic plane
and they bully baby tortoises! >:( 19:24
well, they bully tortoises by taking their babbys away 19:25
terrible beasts
19:25 AlexDaniel left
TimToady but do they bully tortoises all the way down? 19:25
19:26 cdg left, pyrimidine left
timotimo their domain is infinitely big, and there are infinitely many dragons and tortoises, and there's not a single tortoise that's still with their babby 19:26
so yeah, i'd say they do
19:27 pyrimidine joined
timotimo stmuk: now that i know the context of that joke, i don't appreciate the mockery :| 19:28
19:30 gdonald left 19:31 gdonald joined, pyrimidine left
IOninja m: flat(42 xx *).is-lazy.say 19:33
camelia rakudo-moar 51b0ab: OUTPUT«False␤»
El_Che New rpms/debs for rakudo 2017.01: github.com/nxadm/rakudo-pkg/releas...2017.01_02
IOninja TimToady: ^ and that's not a bug? I'm looking at comments in code and I see the sub version has different semantics? github.com/rakudo/rakudo/blob/51b0...1377-L1382
timotimo hm. that's already the new version ... 19:34
ah
19:34 pyrimidine joined 19:35 jdmmmmm joined 19:36 eroux left
IOninja m: sub (**@x) { @x.is-lazy.say }(lazy 1, 2, 3) 19:37
camelia rakudo-moar 51b0ab: OUTPUT«False␤»
IOninja a'ight. I'll assume that's all good
Eddward m: my $x="01\%20-\%20Leisureforce.mp3"; $x ~~ s:eg/ '%' (<xdigit>**2) / chr(hex($1)) / ; $x.perl 19:38
camelia rakudo-moar 51b0ab: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Adverb eg not allowed on substitution␤at <tmp>:1␤------> 3s:eg/ '%' (<xdigit>**2) / chr(hex($1)) /7⏏5 ; $x.perl␤»
IOninja hah :)
That's a confusing error if you don't know what's going on :) 19:39
19:39 pyrimidine left
IOninja Eddward: there's no /e in Perl 6. You prolly want s:g['%' (<xdigit>**2)] = $1.base(16).chr 19:39
Eddward Looks like g is ok from the docs. Looking for e.
TimToady doesn't use eg substitutes...
Eddward ok
19:39 eroux joined
IOninja or .parse-base(16). I forget what `hex` does in perl 5 19:39
timotimo hex also looks if there's a 0x or 0b or 0o at the beginning afaik 19:40
19:40 RabidGravy left
Eddward is there an 'r'? 19:40
IOninja Eddward: oh, I meant $0.base..., in Perl 6 captures start with 0
Eddward The erl 5 was s/%([0-9A-Fa-f]{2})/chr(hex($1))/egr
19:40 rindolf left
TimToady you can do s::g/.../{...}/ too as an eg replacement 19:40
IOninja Eddward: use S/// instead of s/// and don't use smartmatch.
Eddward ok. I'll try that. Thanks 19:41
19:41 espadrine joined
IOninja m: my $x="01\%20-\%20Leisureforce.mp3"; say $x.subst: :g, /'%' (<xdigit>**2)/, *.[0].parse-base(16).chr 19:42
camelia rakudo-moar 51b0ab: OUTPUT«No such method 'parse-base' for invocant of type 'Match'␤ in whatevercode at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
IOninja m: my $x="01\%20-\%20Leisureforce.mp3"; say $x.subst: :g, /'%' (<xdigit>**2)/, *.[0].Str.parse-base(16).chr
camelia rakudo-moar 51b0ab: OUTPUT«01 - Leisureforce.mp3␤»
IOninja Eddward: ^ that seems to work
much more verbose and gross, but it works :P
TimToady m: my $x="01\%20-\%20Leisureforce.mp3"; say S:g /'%' (<xdigit>**2)/{:16(~$0).chr}/ given $x 19:44
camelia rakudo-moar 51b0ab: OUTPUT«01 - Leisureforce.mp3␤»
IOninja :) 19:45
m: say :16(Any) 19:46
camelia rakudo-moar 51b0ab: OUTPUT«Cannot resolve caller UNBASE(Int, Any); none of these signatures match:␤ (Int:D $base, Any:D $num)␤ (Int:D $base, Str:D $str)␤ in block <unit> at <tmp> line 1␤␤»
19:47 Tonik joined
IOninja oh, nm 19:47
19:47 RabidGravy joined 19:48 rindolf joined
IOninja star: use URI::Escape; say uri-unescape "01\%20-\%20Leisureforce.mp3"; 19:48
camelia star-m 2016.10: OUTPUT«01 - Leisureforce.mp3␤»
RabidGravy boom 19:49
IOninja :)
m: (42 xx *).flat.is-lazy.say 19:50
camelia rakudo-moar 51b0ab: OUTPUT«True␤»
IOninja bug fixed \o/
19:50 bjz joined
IOninja m: my @a = (42 xx *).flat; say @a[^6] 19:50
camelia rakudo-moar 51b0ab: OUTPUT«(42 42 42 42 42 42)␤»
IOninja cool
m: ($ = "foo") ~~ s:g/^// 19:55
camelia ( no output )
IOninja m: ($ = "foo") ~~ s::g/^//
camelia rakudo-moar 51b0ab: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Null regex not allowed␤at <tmp>:1␤------> 3($ = "foo") ~~ s::g/^//7⏏5<EOL>␤»
IOninja Null regex? What does it think is going on?
m: ($ = "foo") ~~ s::g/^/^/ 19:56
camelia rakudo-moar 51b0ab: OUTPUT«Could not find symbol '&g'␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
IOninja Ah, (s::g) / (^//) 19:57
geekosaur doubled colon? maybe it decided : was the dsep
yeh
19:57 mcmillhj joined 20:03 st_elmo joined 20:06 girafe joined 20:11 mcmillhj left 20:12 jdmmmmm left
IOninja Is Mark who made Periodic Table of Operators still here? twitter.com/colomon/status/829019842795728897 20:16
[Coke] hasn't see the author of that in some time, he thinks. 20:17
IOninja reads the wiki on the new United States Secretary of Education 20:20
educated in a private highscool and has "bachelor's degree in business administration". Well, if that doesn't prepare a person to be the Secretary of Education I don't know what will.... :P 20:21
20:36 meept joined, pyrimidine joined
timotimo don't watch how she was interviewed by all the senators and such 20:37
it'll make you lose faith in humanity
IOninja heh 20:38
El_Che timotimo: her assignment is pretty much the same travesty as other secrataries: take someone that actively works on undermining the department he/she's supposed to lead 20:39
timotimo yeah
20:39 bjz left
timotimo but god damn it 20:39
at least she supports accountability 20:40
20:48 gdonald left 20:51 meept left, gdonald joined
Geth ecosystem: atweiden++ created pull request #296:
rename atweiden/**/META.info to META6.json
20:53
ecosystem: 1d787f2e32 | (Andy Weidenbaum)++ | META.list
rename atweiden/**/META.info to META6.json
ecosystem: 98e7f3c30e | (Andy Weidenbaum)++ | META.list
Merge pull request #296 from atweiden/meta6-json

rename atweiden/**/META.info to META6.json
20:54 labster left 20:55 thdr|2 left 20:58 mempko joined 20:59 wamba left
mempko I need help :-( I accidently renamed my module's META.info to META6.json. 20:59
Even after renaming it back to META.info and pushing to github, zef cannot locate my module
[Coke] did you try 'zef update' ? 21:00
21:00 sufrostico joined
mempko The module is this github.com/mempko/PKafka 21:00
zef update does not seem to work. 21:01
21:01 thdr|2 joined
mempko I am building a docker image using latest rakudo-star image as the base 21:01
example Dockerfile 21:02
gist.github.com/mempko/1a9a8c49b80...2746f5529e
when I do zef update on my local. I then run "zef search Pkafka" 21:03
RabidGravy that should be fine on the face of it
mempko and only see the one from Zef::Repository::LocalCache 21:04
github.com/perl6/ecosystem/blob/ma....list#L498 21:06
curling that returns the correct valid json.
RabidGravy I think it probably was wrongly named at the moment the thing was built an hour or so ago
mempko Does zef get it's list from somewhere else? 21:07
RabidGravy and got chucked out the projects.json because the META file wasn't there
yes
mempko Ah
21:07 TEttinger joined
mempko My guess is next rebuild it will come back? 21:07
RabidGravy there is a JSON file that has all the META files in one basically
if it can't find the META file or it can't parse it as a JSON it won't be included 21:08
mempko When can I expect the next build?
RabidGravy yeah, it builts
well shortly
El_Che mempko: in case you need smaller (and by no means an answer to your question), there is JJ's alpine perl6 image (github.com/JJ/alpine-perl6) or you can install the rakudo pkgs in your image I provide here (github.com/nxadm/rakudo-pkg/releases/)
(of course the rakudo-star is the official one) 21:09
mempko nice 21:10
Yay, it's back! 21:11
El_Che I created the packages because it helped me iternate faster (through jenkins pipes). Build time was reduced from very long to seconds :)
mempko Lesson learned, don't assume anything.
El_Che (we standardize on centos 7 at work, personally I work on ubuntu, hence those packages)
IOninja mempko, META6.json is the more modern name BTW 21:12
[Coke] (perl6 images) - can we use those for github.com/perl6/doc/issues/788 ?
mempko Yes i realized that. I will have to do a double buffer thing. Add META6.json. Then do PR to ecosystem
and then finally remove META.info.
IOninja .ask ugexe what's the url of zef's package list (or does it use same as panda)? how often does it get updated? 21:13
yoleaux IOninja: I'll pass your message to ugexe.
21:14 elisdg left
IOninja mempko, in an "emergency" you can also check out the repo you want to install and run 'zef install .' in it 21:14
[Coke] IOninja: github.com/ugexe/zef/blob/e6c01728...g.json#L28 ?
mempko Thanks, yeah thanks. I ended up doing that
I am actually using perl6 for production. Yay for perl6 21:15
El_Che mempko: yay for the kafka module, by the way 21:16
mempko perl6 app distributed on a mesos cluster. What a time to live.
thanks
El_Che I am pretty sure people would like to hear about the production part
mempko I'll put writing a blog post about it on my bucket list 21:17
21:17 jjido_ joined
mempko My use case at the moment. I have nginx logs going to kafka. Using my PKafka library to parse them asynchronously 21:18
perl6 grammars are fantastic.
Also writing network code that pushs to a socket is stupid easy.
I wrote a graphite compatible time series DB and have my perl6 app push to it. 21:19
El_Che nice
mempko gist.github.com/mempko/eb176bed65f...0cb59eadd0 21:22
anyway, thank you all for your help.
21:22 cdg joined, cdg left 21:23 cdg joined 21:24 Eddward left 21:25 labster joined 21:27 bjz joined 21:28 sufrostico left
IOninja [Coke]: thanks. 21:29
21:30 Tonik left 21:31 ChoHag joined 21:36 sufrostico joined, bjz left 21:37 andrzejku joined
MasterDuke timotimo: looking at the profile Ulti linked earlier today, push-exactly@SETTING::src/core/Iterator.pm:28, AT-KEY@SETTING::src/core/Hash.pm:48, and postcircumfix:<{ }>@SETTING::src/core/hash_slice.pm:6 are all only speshed, not jitted 21:39
21:39 jjido_ left
MasterDuke and push@SETTING::src/core/IterationBuffer.pm:22 is just interpreted 21:39
i would have expected more jitting? 21:40
21:40 sena_kun left
gfldex IOninja: see github.com/ugexe/zef/blob/master/r...g.json#L28 21:42
21:43 Eddward joined
timotimo MasterDuke: you know about the MVM_JIT_LOG? 21:48
MasterDuke i don't really understand it, but yeah
21:52 alimon left 21:54 alimon joined 21:56 ocbtec left
MasterDuke .ask Ulti what code did you run to generate your profile? 21:57
yoleaux MasterDuke: I'll pass your message to Ulti.
timotimo what the flying fuck, wordpress
so apparently i can no longer get just a list of comments that were posted on one of my sites? 21:58
gfldex timotimo: did you give them moneys? 22:00
timotimo no
22:00 itcharlie1 left 22:01 Lucas_One left 22:02 cdg_ joined, joseds joined, Lucas_One joined
MasterDuke timotimo: gist.github.com/MasterDuke17/6598d...938542559, count of the different types of BAILs 22:03
22:04 joseds left, cdg left 22:05 labster left, jeffythedragonsl joined
timotimo it'd be most interesting to see what causes these particular frames to bail 22:06
i once tried to jit throwpayloadlex. it was bad
22:07 pmurias left
RabidGravy oh I see I *was* still logged in 22:07
22:08 skids left, Lucas_One left 22:09 pmurias joined, Sound joined 22:12 st_elmo left 22:13 meept joined
MasterDuke timotimo: how does one see what causes frames to bail? 22:15
22:18 gdonald left
timotimo look upwards from the bail to the last frame name, or downwards from a frame you're interested in until you find a bail or the start of a new frame 22:18
22:19 jeffythedragonsl left 22:20 andrzejku left
MasterDuke the name before most of the `param_sn` bails was `bless` 22:21
timotimo mhm
do AT-KEY and push-exactly even occur in the file?
MasterDuke AT-KEY does once 22:22
22:23 pyrimidine left 22:26 Lucas_One joined, labster joined
timotimo OK, so it's attempted a jit for that. does it bail? 22:28
22:28 labster left
MasterDuke i don't think so. it says `Constructing JIT graph (cuuid: 5636, name: 'AT-KEY')`, bunch of lines (no BAILs), the next JIT related line is `Constructing JIT graph (cuuid: 3963, name: 'infix:<eq>')` 22:30
22:31 ocbtec joined 22:32 RabidGravy left
timotimo OK, then it jits that successfully, but it doesn't invoke the jitted version? 22:32
or does it not count correctly?
Eddward camelia: m: use URI::Escape; uri-unescape(q[=+=]).say 22:33
camelia Eddward: rakudo-moar 51b0ab: OUTPUT«===SORRY!===␤Could not find URI::Escape at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ CompUnit::R…»
Eddward darn
MasterDuke are those rhetorical questions or would the log have answers?
22:39 heatsink joined 22:43 labster joined
timotimo oh 22:53
sorry. i don't know why that doesn't work as expected
22:54 LeCamarade joined 23:00 pyrimidine joined 23:03 gdonald joined 23:06 LeCamarade left, LeCamara1e joined 23:07 LeCamara1e left 23:09 sufrostico left 23:11 sufrostico joined 23:13 kyan joined 23:14 pyrimidine left, labster1 joined 23:15 rindolf left, pyrimidine joined 23:16 LeCamarade joined 23:17 labster left 23:19 pyrimidine left 23:27 mr-foobar joined
Eddward I have an interesting problem. In p5 I'm able to decode 'Adagio\%20-\%20Piu\C\%80\%20andante' to 'Adagio - PiuÌ\x[80] andante' by just decoding the uri with a s/// expression. 23:28
Doing the same thing in p6 I get 'Adagio - PiuÌ andante'
IOninja hehe, that *is* interesting
Eddward wait. The irc client didn't like any of that....
IOninja oh wait, no, I thought the weird I was the interesting part. 23:29
Eddward: what's this stuff? URLs?
Eddward So, the good case, 'Adagio\%20-\%20Piu\C\%80\%20andante' => 'Adagio - Piu􏿽xCC􏿽x80 andante'
It's a substring from a long file:/// URI. 23:30
IOninja I don't recall \C being special in URL encoding
Eddward I'm trying to decode it and drop it into a playlist.
IOninja star: use URI::Escape; say uri-unescape 'Adagio\%20-\%20Piu\C\%80\%20andante'
camelia star-m 2016.10: OUTPUT«Malformed UTF-8 at line 1 col 1␤ in block at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AEAA4863E2FA70508DC38EF5D723F1C (URI::Escape) line 32␤ in sub uri-unescape at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AEAA4863…»
IOninja orly
Now that's weird. 23:31
Eddward: what's \C supposed to be?
Eddward I'm not sure.
The file name is Brahms - Symphony No 1 in C Major/Symphony No. 1 in C Minor, Op. 68 - IV. Adagio - Piu􏿽xCC􏿽x80 andante - Allegro non troppo, ma con brio.mp3 23:32
23:32 lep-delete joined, pmurias left
IOninja star: use URI::Escape; say uri-unescape 'Adagio\%20-\%20Piuu\%80\%20andante' 23:32
camelia star-m 2016.10: OUTPUT«Malformed UTF-8 at line 1 col 1␤ in block at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AEAA4863E2FA70508DC38EF5D723F1C (URI::Escape) line 32␤ in sub uri-unescape at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AEAA4863…»
IOninja Oh. My terminal's messed up now 23:33
And it does it with funky unicode chars
gfldex Eddward: did you check if the file is stored as proper utf-8 on the file system?
filename even
23:33 nicq201 joined
Eddward banshee stores it as "file: 23:34
///space/pub/music/mp3/Musopen\%20DVD/Brahms\%20-\%20Symphony\%20No\%201\%20in\%
20C\%20Major/Symphony\%20No.\%201\%20in\%20C\%20Minor,\%20Op.\%2068\%20-\%20IV.\
%20Adagio\%20-\%20Piu\C\%80\%20andante\%20-\%20Allegro\%20non\%20troppo,\%20ma
\%20con\%20brio.mp3"
Oh well, I have to run for a few minutes. Bad timing on my part.
IOninja star: use URI::Escape; say uri-unescape '%80'
camelia star-m 2016.10: OUTPUT«Malformed UTF-8 at line 1 col 1␤ in block at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AEAA4863E2FA70508DC38EF5D723F1C (URI::Escape) line 32␤ in sub uri-unescape at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AEAA4863…»
IOninja m: "\x[80]".uniname.say
camelia rakudo-moar 51b0ab: OUTPUT«<control-0080>␤»
IOninja that's.. useful -_-
geekosaur that's all you're getting from it; as a unicode codepoint it's just a mirror NUL per iso8859-1 23:36
23:38 jdmmmmm joined 23:39 cibs left
IOninja .tell Eddward seeing all those backslashes, looks like there's a layer of another encoding. The \C\%80 part is supposed to be %CC%80 (if we're talking about just percent encoding). So seeing what that other layer of encoding is would be the next step 23:39
yoleaux IOninja: I'll pass your message to Eddward.
23:40 cibs joined
Eddward IOninja: Sorry to run. I had to give a child a ride. 23:44
yoleaux 23:39Z <IOninja> Eddward: seeing all those backslashes, looks like there's a layer of another encoding. The \C\%80 part is supposed to be %CC%80 (if we're talking about just percent encoding). So seeing what that other layer of encoding is would be the next step
23:44 Actualeyes joined, heatsink left
Eddward star: use URI::Escape; say uri-unescape '=+=' 23:46
camelia star-m 2016.10: OUTPUT«= =␤»
Eddward uri-unescape doesn't handle + or I'd use that.
IOninja Seems to handle it fine. What did you want it to show up as? 23:48
gfldex there is a sloppy version for utf8 (name does escape me right now) that should be used in URI::Escape but doesn't
Eddward IOninja: I thought it would be a + 23:50
star: use URI::Escape; say uri-unescape '---+---'
camelia star-m 2016.10: OUTPUT«--- ---␤»
IOninja Eddward: but it's a reserved char
Eddward oh.
banshee is messing that up then. It's in several of the names in sqlite. 23:51
IOninja What's the Perl 5 thing that decodes your stuff just fine?
23:51 Sound left
Eddward s/%([0-9A-Fa-f]{2})/chr(hex($1))/egr 23:51
That's what the uri decode library in perl5 says it used. I saved myself the dependency. 23:52
23:53 jdmmmmm left, nicq201 left
Eddward I'm trying to find the pm I was looking at. 23:53
IOninja that can't be it, what's with all the backslashes? 23:54
Eddward URI::Escape
That's was I get out of $sth.allrows.flat.perl.say
"file:///space/pub/music/mp3/Musopen\%20DVD/Brahms\%20-\%20Symphony\%20No\%201\%20in\%20C\%20Major/Symphony\%20No.\%201\%20in\%20C\%20Minor,\%20Op.\%2068\%20-\%20IV.\%20Adagio\%20-\%20Piu\%CC\%80\%20andante\%20-\%20Allegro\%20non\%20troppo,\%20ma\%20con\%20brio.mp3" 23:55
IOninja Oh, so now that has proper %CC 23:56
Eddward star: use URI::Escape; say uri-unescape 'file:///space/pub/music/mp3/Musopen\%20DVD/Brahms\%20-\%20Symphony\%20No\%201\%20in\%20C\%20Major/Symphony\%20No.\%201\%20in\%20C\%20Minor,\%20Op.\%2068\%20-\%20IV.\%20Adagio\%20-\%20Piu\%CC\%80\%20andante\%20-\%20Allegro\%20non\%20troppo,\%20ma\%20con\%20brio.mp3'
camelia star-m 2016.10: OUTPUT«Malformed termination of UTF-8 string␤ in block at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AEAA4863E2FA70508DC38EF5D723F1C (URI::Escape) line 32␤ in sub uri-unescape at /home/camelia/star-2016.10/share/perl6/site/sources/A541643C9AE…»
Eddward perhaps I cut wrong. Sorry.
IOninja star: use URI::Escape; say uri-unescape "file:///space/pub/music/mp3/Musopen\%20DVD/B​rahms\%20-\%20Symphony\%20No\%201\%20in\%20C\​%20Major/Symphony\%20No.\%201\%20in\%20C\%20M​inor,\%20Op.\%2068\%20-\%20IV.\%20Adagio\%20-​\%20Piu\%CC\%80\%20andante\%20-\%20Allegro\%2​0non\%20troppo,\%20ma\%20con\%20brio.mp3"
camelia star-m 2016.10: OUTPUT«file:///space/pub/music/mp3/Musopen DVD/B​rahms - Symphony No 1 in C​ Major/Symphony No. 1 in C M​inor, Op. 68 - IV. Adagio -​ Più andante - Allegro%2​0non troppo, ma con brio.mp3␤»
IOninja The messed up portions is likely just me copy-pasteing fropm the log​0non\%20troppo,\%20ma\%20con\%20brio.mp3" 23:57
Eddward star: use URI::Escape; say uri-unescape "file:///space/pub/music/mp3/Aesop\%20Rock/Skelethon\%20(Deluxe\%20Version)\%20\%5BExplicit\%5D\%20\%5B+digital\%20booklet\%5D/01\%20-\%20Leisureforce.mp3"
camelia star-m 2016.10: OUTPUT«file:///space/pub/music/mp3/Aesop Rock/Skelethon (Deluxe Version) [Explicit] [ digital booklet]/01 - Leisureforce.mp3␤»
Eddward Should be a '+' infront of 'digital booklet' 23:58
IOninja Well, either fix your data or stick .subst: :g, '+', %2B on it 23:59
Eddward mono must mess up the encode going into the db?
IOninja *before* uri-unescaping it