»ö« 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:00 n0tjack left, firstdayonthejob left 00:02 vendethiel joined
MadcapJake It's still too early to use but I thought I'd post my progress: github.com/MadcapJake/p6dx 00:02
00:03 spider-mario left
MadcapJake The completions are generating, but I still need to write the multi MAIN that searches through all the available completions. 00:03
00:03 xpen left
MadcapJake Since it's really close to being ctags, I think I'll add a flag to generate ctags too. 00:04
00:05 bpmedley left 00:10 n0tjack joined 00:12 SCHAAP137 left 00:17 captain-adequate left 00:23 eternaleye left, vendethiel left 00:28 silug joined 00:31 sortiz joined
sortiz hi #perl6 00:31
00:31 vinnix joined, n0tjack left 00:34 BenGoldberg joined 00:35 ab6tract left
skids o/ 00:36
00:36 Matth3w left 00:39 pmurias left 00:41 bjz_ left, bjz joined 00:43 sufrostico left
vinnix o/ 00:45
00:49 eternaleye joined 00:52 n0tjack joined 00:54 Actualeyes joined 00:55 pierre-vigier joined 00:57 n0tjack left 00:58 M-matthew joined, M-Illandan joined, pierre-vigier left, pierre-vigier joined 00:59 cdg left 01:02 yeahnoob joined 01:13 n0tjack joined 01:45 espadrine left 01:46 n0tjack left 01:51 dfcarpenterak left 01:53 bpmedley joined 01:56 xpen joined 01:58 pierre-vigier left 02:02 avs_ joined 02:03 pierre-vigier joined 02:04 AlexDaniel left 02:06 xdoctor left 02:17 lnrdo left 02:24 vendethiel joined 02:34 leont left 02:40 kaare_ joined 02:41 FreezerburnV joined
FreezerburnV Is @*INC not supposed to be available in a BEGIN block in 6.c anymore? 02:41
02:42 M-matthew left 02:43 zamolxes left 02:44 zamolxes joined 02:46 ilbot3 left, avs__ joined 02:47 dfcarpenterak joined, vendethiel left, ilbot3 joined 02:48 M-matthew joined, avs_ left
geekosaur I don't think it's available at all? 02:52
FreezerburnV When did that change? I used to be able to modify it in a previous version. Hm 02:53
geekosaur with the switch to CompUnitRepos, shortly before 6.c release
FreezerburnV I want to have perl6 search the directory a script is being run from for modules 02:54
Gotcha
What's the correct way to do what I just said in 6.c then?
And what's a CompUnitRepo?
geekosaur design.perl6.org/S22.html#Distribut...stallation
geekosaur does not know the answer to your questions, sadly 02:55
FreezerburnV I don't think I have the mental capacity to read through and actually understand all that right now, too tired 02:57
If someone has a quick example of adding a directory to search for perl6 modules, I would appreciate it. Otherwise I'll have to work on this later 02:58
geekosaur this is usually the wrong tome of day, I'm afraid; many of the key folks are in Europe 03:03
*time of day 03:04
FreezerburnV Ah, gotcha
03:05 kaare_ left
MadcapJake FreezerburnV: my @files = find( :dir('.'), :type('file'), :name(rx!(\.pm6?)$!) )».IO.flat.list; 03:07
FreezerburnV MadcapJake: I might have phrased my request badly. I want to tell perl6 a new directory to search for modules when useing them 03:10
Currently it does not seem to search '.', sadly
(which seems odd, considering that one of the most common cases is possibly that you'll be useing your own modules...?) 03:11
MadcapJake You're right, it doesn't search `.` it only searches the locations given in the error.
You could try `use lib '.'` don't know if that will work 03:12
FreezerburnV That works, thanks! Don't remember that being documented anywhere, but I haven't done anything with perl6 for a bit, so I don't know if documentation has been updated or not 03:13
What is that doing?
skids FreezerBurnV: "use lib" sets the search path, but only inside the current lexical scope. 03:18
FreezerburnV Ah, interesting. Duly noted
Thanks
03:22 kid51 left
FreezerburnV Also: How do I build a .moar version of a perl6 module ahead of time? (or whatever the windows version uses, I think I saw a different file ending when compiling with rakudobrew) 03:23
(I could be completely wrong considering moar is the underlying vm...)
MadcapJake don't know anything about that but i think you're just thinking of moarvm's files. 03:25
03:25 AW3i joined
skids On the latest version they are compiled and stored compiled automatically. So just using it once should do it. You'll notice the first run after touching a file is slower. 03:25
03:26 aigan left
FreezerburnV Ah, yeah, ok I'm seeing that now 03:26
03:26 aigan joined
FreezerburnV Sorry, used to a previous version where it didn't do that and I had to manually do that if I wanted to run a script in less then 30 seconds :) 03:26
Looking forward to the future when compilation is faster!
MadcapJake Some are quite fast already! But definitely looking forward to more speed improvements. 03:28
FreezerburnV Native modules, at least, seem to take quite some time. SDL2::Raw takes greater than 10 seconds or so 03:29
MadcapJake oh wow
FreezerburnV Don't remember if the wrapper I'm working on was taking a decent chunk of time or not
I'm excited to figure out more about perl6 though, so I can (theoretically) make a really nice wrapper around SDL2 and OpenGl in a good perly style. I know little enough that I'm sure anything I make write now will seem somewhat barbaric at first 03:30
Hopefully I can actually get it done, put it out there, and have people who are much smarter than me whip it into much nicer shape 03:31
MadcapJake Perl 6 is great in that a beginner can write nice clean code. Then everyday you learn something new that streamlines or condenses your code. It's actually quite fun to grow with!
03:32 avs_ joined, arlenik joined
FreezerburnV That's what I seem to be seeing, and it's really exciting 03:32
awwaiid FreezerburnV: use lib '.'; # works for me 03:33
oh, I didn't read that far ahead in the backlog, you got htat already
FreezerburnV On a totally unrelated note: Do you know if there are plans to be able to package perl6 applications to be standalone in some way and deployable to someone who does not have it?
awwaiid: Yep, thanks though!
awwaiid FreezerburnV: there are no immediate plans, but I think it is a wishlist item for sure 03:34
as in, I don't know of any particularly progressed examples of it
MadcapJake well since rakudo is a compiler, i'm sure it's possible, just perhaps down the line somewhere
FreezerburnV awwaiid, MadcapJake: Sweet
03:34 avs__ left
awwaiid also w/ jvm backend a .jar might be nice for some cases 03:34
MadcapJake yeah that would be awesome too 03:35
FreezerburnV I was assuming it wasn't available now, but knowing my rate of progress, by the time I want to deploy something I'm sure somethign will be available to package the end result
awwaiid: Fair enough
03:35 avs__ joined
FreezerburnV awwaiid: Though I'm pretty sure the JVM backend isn't as fully-developed as the MoarVM one...? 03:36
MadcapJake Clojure and Ceylon both create war files that can be dropped into java servers very easily. that would be really neat to see Perl 6 capable of doing too.
FreezerburnV MadcapJake: That would be neat, though I'm much more interested in gamedev-type stuff. A war file would be much easier than that, I would assume 03:37
03:37 Actualeyes left
arlenik Does anyone know what % of the people who have worked on Perl6 in the last decade or so were paid to work on it? 03:37
03:38 avs_ left
skids There's a grant process that keeps records. As far as I know, it is a very small number (but those that were were among the most productive, so a larger number by LOC or other metrics) 03:39
MadcapJake FreezerburnV: btw did you see there are two SDL modules already modules.perl6.org/#q=sdl
FreezerburnV MadcapJake: Yep! one of them uses the old SDL 1.2, which I have no real interest in due to SDL2. The other is a "raw" (and incomplete!) wrapper around SDL2. Meaning it is literally a giant set of definitions for native functions along with the structs necessary to use them 03:40
I'm adding missing functions to the raw one, along with a nicer wrapper around the raw native code 03:41
MadcapJake FreezerburnV: ahh yeah, well the raw one could at least give you a headstart in wrapping the bindings
Also this might be useful: github.com/Skarsnik/gptrixie 03:42
FreezerburnV I need to go get my modified Raw module off my other computer, actually. My current code doesn't work due to only having the version on github
MadcapJake: Huh, that looks useful 03:43
Though right now I'm going the slightly masochistic route so that I can learn NativeCall better, as well as general syntax of perl better (there seems to be multiple ways to define enums, which I forget the differences) 03:44
(the current Raw bindings use at least two of them)
Also I find it weirdly satisfying to write FFI code 03:45
03:46 erdic left 03:47 noganex joined
MadcapJake alrighty then! I've been wanting to write a wrapper for allegro someday, I might try using that gptrixie tool on that 03:47
FreezerburnV Probably a good idea. Allegro is likely a lot bigger than SDL2 03:48
MadcapJake Also I was a good chunk of the way through a set of FluidSynth bindings, but to me it gets boring trudging through tons of functions that I don't even know how (or want) to use.
FreezerburnV Fair enough 03:49
I have an odd laziness where I would rather trudge through writing the code than setting up the thing that would autogenerate the code
Even if it would take several days less
MadcapJake well i know what you mean, not saying it's a bad thing, but after a while, my mind just wanders :P 03:50
FreezerburnV haha
03:50 noganex_ left
FreezerburnV It's relaxing writing code that takes no effort while watching youtube or something 03:50
03:50 hobbs left 03:51 hobbs joined, Actualeyes joined
MadcapJake FreezerburnV: good on ya then! That's determination :) 03:51
03:52 Ben_Goldberg joined
MadcapJake Well you might've just convinced me to at least finish one of my two unfinished binding projects this way! 03:52
FreezerburnV "You write some code that didn't take incredible focus. It fills you with determinations."
03:52 musca left, luis left
FreezerburnV MadcapJake: Yay! 03:52
More libraries for perl6 is good!
03:53 moritz left, luis joined, BenGoldberg left 03:54 moritz joined, musca joined 03:59 erdic joined 04:00 ZoffixWin joined, ZoffixWin left, ZoffixWin joined 04:02 Calibell_ joined
ZoffixWin . 04:02
04:02 ZoffixWin is now known as Zoffix
Zoffix . 04:02
yoleaux 15 Jan 2016 03:45Z <skids> Zoffix: I pushed some ramblings to user-experience
17 Jan 2016 11:37Z <jdv79> Zoffix: absolutely nothing. i fell off the grid for two weeks. sure, i can move them over.
04:02 Calibell_ left 04:03 ELBeavers left, Calibellus left 04:04 Calibellus joined
Zoffix m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say join '', (u.comb Z l.comb) 04:06
camelia rakudo-moar 770d10: OUTPUT«AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz␤»
Zoffix m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say (u.comb Z l.comb).join: ''
camelia rakudo-moar 770d10: OUTPUT«A aB bC cD dE eF fG gH hI iJ jK kL lM mN nO oP pQ qR rS sT tU uV vW wX xY yZ z␤»
Zoffix Kinda weird the results are different :/
How come? 04:07
04:10 Actualeyes left
MadcapJake m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say (u.comb Z l.comb) 04:10
camelia rakudo-moar 770d10: OUTPUT«((A a) (B b) (C c) (D d) (E e) (F f) (G g) (H h) (I i) (J j) (K k) (L l) (M m) (N n) (O o) (P p) (Q q) (R r) (S s) (T t) (U u) (V v) (W w) (X x) (Y y) (Z z))␤»
MadcapJake weird that the pairings are correct here, join is where it's failing
m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say (u.comb Z l.comb).flat.join
camelia rakudo-moar 770d10: OUTPUT«AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz␤»
MadcapJake that works Zoffix ^ 04:11
Zoffix I'm more curious why the one that doesn't doesn't :)
skids Zoffix: the sub form of join must be flattening, is why.
Zoffix skids, that still leaves the problem for why it's joining in a such a weird way: "A", "aB"... etc 04:12
skids because:
04:12 Psyche^_ joined
skids m: ("A","a").Str.say 04:13
camelia rakudo-moar 770d10: OUTPUT«A a␤»
Zoffix doesn't follow
Ah
K, I get it
m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; say ((u.comb Z l.comb).join: '').elems 04:14
camelia rakudo-moar 770d10: OUTPUT«1␤»
skids (("A","a"),("B","b")).join joins ("A","a").Str with ("B","b").Str
MadcapJake m: ((('a','b','c'),('d','e','f')),(('g','h','i'),('j','k','l'))).join 04:15
camelia ( no output )
MadcapJake m: ((('a','b','c'),('d','e','f')),(('g','h','i'),('j','k','l'))).join.say
camelia rakudo-moar 770d10: OUTPUT«a b c d e fg h i j k l␤»
skids m: (('a','b','c'),('d','e','f')).Str.say 04:16
camelia rakudo-moar 770d10: OUTPUT«a b c d e f␤»
04:16 Psyche^ left
MadcapJake interesting that the three layer tuple i posted, it only joins f and g but not c and d or i and j 04:17
skids Each list at the top level gets .Str'd. There are two such lists. .Str, apparently, flattens lists. 04:18
MadcapJake oh ok, so it isn't actually calling str on each tuple since the first two are being flattened via .Str 04:19
04:19 pierre-vigier left
MadcapJake m: ((('a','b','c'),('d','e','f')).join,(('g','h','i'),('j','k','l')).join).join.say 04:19
camelia rakudo-moar 770d10: OUTPUT«a b cd e fg h ij k l␤»
skids FSVO "first". Each of the ones iterated by .join is.
MadcapJake right, poor word choice :P 04:20
04:22 pierre-vigier joined 04:26 pierre-vigier left 04:28 Ben_Goldberg left 04:32 FreezerburnV left 04:45 Actualeyes joined 04:49 avs_ joined 04:53 avs__ left 04:55 revhippie left 05:03 linuxuser9000 joined 05:05 n0tjack joined 05:08 ELBeavers joined 05:09 molaf joined 05:10 n0tjack left 05:12 vendethiel joined 05:13 ELBeavers left
Zoffix Ahhh... I love being naughty: blogs.perl.org/users/zoffix_znet/20...guage.html 05:18
05:18 laz78 joined
gfldex you forgot __init__ 05:19
05:21 bartolin left, bartolin joined 05:22 quester joined 05:27 vendethiel- joined 05:28 vendethiel left 05:32 molaf left
quester m: say (1...63).hyper.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat; 05:36
camelia rakudo-moar 770d10: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61)␤»
quester m: say (1...64).hyper.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
camelia rakudo-moar 770d10: OUTPUT«()␤»
quester m: say (1...64).race.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
camelia rakudo-moar 770d10: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61)␤»
quester m: say (1...250).race.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
05:37 vendethiel- left
camelia rakudo-moar 770d10: OUTPUT«(193 197 199 211 223 227 229 233 239 241 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61)␤» 05:37
quester m: say (1...250).hyper.map({sleep .1*rand;.is-prime ?? $_ !! ()}).flat;
camelia rakudo-moar 770d10: OUTPUT«()␤»
05:37 yqt left
quester Hmm. Is it just me, or does it seem like hyper is acting strangely lately? 05:38
05:39 MadcapJake left 05:40 leedo left, leedo joined 05:43 laz78 left, MadcapJake joined 05:46 Cabanossi left 05:47 cpage_ joined 05:49 Cabanossi joined 05:55 skids left 05:57 laz78 joined 05:59 garu_ left, mre left, mre joined, garu joined 06:00 jme` left, pierre-vigier joined 06:03 pierre-vigier left 06:07 maslan joined 06:10 pierre-vigier joined 06:14 abaugher left 06:15 pierre-vigier left, abaugher joined 06:19 pierre-vigier joined 06:22 crux left 06:24 crux joined, pierre-vigier left, pierre-vigier joined 06:28 pierre-vigier left 06:29 khw left, pierre-vigier joined 06:40 samb1 left 06:45 pierre-vigier left 06:47 ambs left, pierre-vigier joined 06:49 Calibellus left 06:52 samb1 joined
gfldex m: my \u = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; my \l = 'abcdefghijklmnopqrstuvwxyz'; for (u.comb Z l.comb) -> $e { $e.Str.say } 06:52
camelia rakudo-moar 770d10: OUTPUT«A a␤B b␤C c␤D d␤E e␤F f␤G g␤H h␤I i␤J j␤K k␤L l␤M m␤N n␤O o␤P p␤Q q␤R r␤S s␤T t␤U u␤V v␤W w␤X x␤Y y␤Z z␤»
gfldex Zoffix: ^^^ 06:53
06:54 pierre-vigier left 06:56 pierre-vigier joined 06:58 pierre-vigier left, ambs joined 07:02 avs__ joined 07:03 laz78 left 07:04 vendethiel joined, pierre-vigier joined 07:05 pierre-vigier left, avs_ left 07:06 yeahnoob left 07:09 domidumont joined, _mg_ joined 07:11 pierre-vigier joined 07:12 dayangkun joined 07:13 domidumont left 07:14 pierre-vigier left, domidumont joined 07:15 salva joined 07:21 raiph left
gfldex m: sub infix:<|Z>(List:D \l, List:D \r){ gather for l Z r -> [\re, \le] { take re; take le; } }; dd (1,2,3) |Z <a b c d>; 07:21
camelia rakudo-moar 770d10: OUTPUT«(1, "a", 2, "b", 3, "c").Seq␤»
gfldex it might be sensible to introduce slippy versions of some operators 07:22
07:25 domidumont1 joined, xpen left 07:26 sjoshi joined 07:27 linuxuser9000 left, domidumont1 left, domidumont left 07:32 domidumont joined, Calibellus joined 07:36 dayangkun left, avs_ joined, yeahnoob joined 07:38 domidumont1 joined 07:40 avs__ left, domidumont left 07:42 sno left 07:44 sjoshi left, firstdayonthejob joined, CIAvash joined 07:45 daxim left
moritz or | as a meta operator 07:49
07:49 nakiro joined
El_Che hi perl6 people 07:51
07:53 FROGGS joined 07:55 Calibellus left
FROGGS o/ 07:55
07:56 vendethiel left 07:57 bjz_ joined 07:58 bjz left 08:03 nakiro left 08:04 parisba__ is now known as DrParis 08:08 xpen joined, Ven joined 08:09 RabidGravy joined, nakiro joined 08:10 vendethiel joined, abraxxa joined 08:12 darutoko joined 08:14 pierre-vigier joined, dfcarpenterak left 08:17 kjs_ joined 08:18 Averna joined 08:20 n0tjack joined 08:21 FROGGS left 08:23 nadim joined 08:24 n0tjack left 08:25 ely-se joined, sortiz left 08:30 abaugher left, zakharyas joined, nadim left 08:31 abaugher joined 08:33 vendethiel left 08:35 sno joined 08:36 vendethiel joined
TimToady waves from Waikoloa 08:37
RabidGravy wherever that is 08:38
08:38 firstdayonthejob left
ely-se ate an Hawaiian sandwich yesterday 08:38
RabidGravy sounds a long way from anywhere
I worked for a company based in Hawaii for a while a few years ago 08:39
08:43 sjoshi joined 08:49 cfloare left 08:50 cfloare joined 08:51 CurtisOvidPoe left
masak TimToady: oh haikoloa! 08:53
08:53 cgfbee left 08:55 cfloare left, cgfbee joined, sjoshi left, cfloare joined 08:56 vendethiel- joined
masak good morning, #perl6 08:56
abraxxa hi! 08:57
08:57 vendethiel left
RabidGravy marnin! 08:57
08:58 cgfbee left, quester left 09:00 cfloare left 09:04 cc9989 joined
ely-se where can I find exactly how multimethod candidates are selected? 09:04
masak I think S12 has a complete algorithm 09:05
ely-se: if there's anything in particular you're wondering about...?
ely-se dankeschon
masak: no, I just like knowing things
09:06 cgfbee joined, cgfbee left, cfloare joined 09:07 rindolf joined
masak you're in the right channel ;) 09:07
(I mean, there's plenty of us here) 09:08
RabidGravy has anyone got something that can do some simulcrum of "test coverage" down the back of the sofa?
Ven masak: dozens!
masak ely-se: there's a section in S12 called "Multisub Resolution" 09:09
09:09 luiz_lha joined
masak Ven: dozens, nay scores, nay tens of us! 09:09
09:10 luiz_lha is now known as Guest1419
gfldex m: say 345 div 12; 09:10
camelia rakudo-moar 770d10: OUTPUT«28␤»
09:10 esh left 09:11 esh joined, daxim joined
masak m: say 345 divmod 12 09:11
camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4ZZF0BQgrR␤Two terms in a row␤at /tmp/4ZZF0BQgrR:1␤------> 3say 3457⏏5 divmod 12␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ s…»
masak m: sub infix:<divmod>($l, $r) { $l div $r, $l % $r }; say 345 divmod 12 09:12
camelia rakudo-moar 770d10: OUTPUT«(28 9)␤»
gfldex m: say 345 div o mod 12
camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0lRpGebjKP␤Undeclared routines:␤ mod used at line 1␤ o used at line 1␤␤»
gfldex m: my &divmod = &infix:<mod> o &infix:<div>; 09:13
camelia ( no output )
masak gfldex: ya can't `o` operators 09:14
wrong grammatical category
gfldex doesn't make sense, but nice to know that I could do that
09:14 kjs_ left, secwang joined 09:15 cfloare left 09:17 cgfbee joined
moritz m: say (&[div] o &[mod)(345, 12) 09:18
camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yKDkGiFlYy␤Unable to parse expression in infix noun; couldn't find final ']' ␤at /tmp/yKDkGiFlYy:1␤------> 3say (&[div] o &[mod7⏏5)(345, 12)␤»
moritz m: say (&[div] o &[mod])(345, 12)
camelia rakudo-moar 770d10: OUTPUT«Cannot call infix:<div>(Int); none of these signatures match:␤ (Int:D \a, Int:D \b)␤ (int $a, int $b --> int)␤ in block <unit> at /tmp/OgdtLqbrbZ line 1␤␤»
moritz and iirc infix:<o> only works for single-argument functions, or something
ely-se m: grammar G { rule TOP { <r:sym<b>> }; proto rule r {*}; rule r:sym<a> { '1' }; rule r:sym<b> { '2' } }; G.parse('1').perl.say 09:19
camelia rakudo-moar 770d10: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new((:r(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "1", to => 1, from => 0)))), orig => "1", to => 1, from => 0)␤»
ely-se This does not fail to parse, surprisingly. Is that by-design?
gfldex you would have to .assume one of them
09:19 cgfbee left
[Tux] csv-ip5xs 17.953 09:20
test 22.251
test-t 12.192
csv-parser 50.003
09:21 cfloare joined, vendethiel- left
masak [Tux]: only one column of values today? 09:22
[Tux] I shortened the report to have less questions and automatically update tux.nl/Talks/CSV6/speed4.html and tux.nl/Talks/CSV6/speed5.html
masak [Tux]++
yes, that's more immediately understandable. nice 09:23
[Tux] the last column was somewhat meaningless here and if the 50000 column was wrong, then I would have started complaining before posting the timings
speed5 is now automatically sorted
09:24 kjs_ joined 09:25 secwang left
gfldex i just told Typesafe::XHTML::Writer how not to .indent. Bechmark went from 42.4298 s to 5.0526 s . So .indent seams kinda slow. 09:26
.indent is called 7891 times 09:27
09:28 Guest1419 is now known as uiz_lha, uiz_lha is now known as luiz_lha
gfldex m: for 1..7891 { my $s = "abc"; $s.=indent(0); }; say now - BEGIN now; 09:28
camelia rakudo-moar 770d10: OUTPUT«0.3533741␤»
gfldex m: for 1..7891 { my $s = "abc"; $s.=indent(2); }; say now - BEGIN now;
camelia rakudo-moar 770d10: OUTPUT«3.92408711␤»
gfldex if you _really_ have to indent use .indent(0) :-> 09:29
moritz uhm, yes, .ident is regex based 09:30
no wonder it's slow
gfldex drops .indent like it's hot 09:31
moritz gfldex: if you simply want to indent with spaces, prepending ' ' x $indent is much faster
09:31 sammers left 09:33 sammers joined
gfldex m: for 1..7891 { my $s = "abc"; $s = ' ' x 0 ~ $s }; say now - BEGIN now; 09:36
camelia rakudo-moar 770d10: OUTPUT«0.0238222␤»
gfldex m: for 1..7891 { my $s = "abc"; $s = ' ' x 2 ~ $s }; say now - BEGIN now;
camelia rakudo-moar 770d10: OUTPUT«0.02447584␤»
RabidGravy speedy 09:38
ely-se BEGIN now seems silly. CHECK now seems more appropriate.
moritz well, to be fair you'd have to .lines().map({ ' ' x 2 ~ $_ }).join("\n")
m: say (CHECK now) - (BEGIN now)
camelia rakudo-moar 770d10: OUTPUT«0.03176252␤»
masak if I may bikeshed for just a bit about naming in the code, I think "outdent" is a too-clever neologism which seems to represent a negative indentation level, and "deindent" is much clearer, and means "reducing the indent level" 09:39
I can slip in a renaming patch, unless there's an uproar of protest
09:40 leont joined
masak .oO( or a brouhaha ) 09:40
gfldex you could ack the ecosystem for outdent
moritz was about to do that
09:41 llfourn left
ely-se Python calls it "dedent" but that reminds me too much of tooth extraction. 09:41
gfldex @c>>.Str>>.indent($indent).join(NL) <-- .indent fits in there nicely, ' ' x 2~ not so much
RabidGravy :)
moritz moritz@hack:~/p6/perl6-all-modules$ git grep -l --word outdent
azawawi/farabi6/lib/Farabi6/files/assets/3rd-party/semantic-ui-v1.11.4/components/icon.min.css
azawawi/farabi6/lib/Farabi6/files/assets/3rd-party/semantic-ui-v1.11.4/semantic.min.css
so, only in .css files :-)
masak ely-se: Python seems keen on dropping letters. vide "elif"
moritz perl too :-)
elsif
09:42 cc9989 left
masak goes ahead and spectests a rename 09:42
moritz: indeed.
by analogy, it'd made more sense if we called it "deident" :P
moritz ident? 09:43
deident is like, logging out?
masak "outdent" sounds a bit like punching someone's teeth out 09:44
El_Che weird error msg: Cannot find method 'STORE' in method...
ely-se undent 09:45
El_Che masak: :)
09:45 kanishka joined
masak .oO( "could you redent this code? someone predented it while I was metadenting it, and now it's all semidented" ) 09:46
ely-se indon't
masak .oO( my bastard coworker maldented my code! ) 09:47
ely-se I like "unindent"
09:47 espadrine joined
masak that sounds like "to indent level 0" to me 09:48
moritz want to meet other denters? let's get cross-denting!
masak .oO( <coworker> I'm sorry, misindenting wasn't my intent! ) 09:49
gfldex .oO( .negadent(2) )
ely-se yummy, yeast 09:51
El_Che any idea where "Can not find method "STORE"" can come from? 09:52
09:52 kjs_ left
RabidGravy a proxy, which Proxy depends on what you were doing 09:52
moritz from... code?
ely-se El_Che: from somebody who is bad at English. 09:53
gfldex m: my @a = "abc", "def"; say @a>>.Str>>.&infix:<~>(' ' x 2).join("\n"), 09:54
camelia rakudo-moar 770d10: OUTPUT«abc ␤def ␤»
gfldex wrong way around
09:54 Averna left
masak gfldex: that's because the "invocant" becomes the left-hand operand when you call an &infix like that 09:55
ely-se "Unknown string encoding: 'ebcdic'" :(
gfldex m: sub indent(\r){ ' ' x 2 ~ r }; my @a = "abc", "def"; say @a>>.Str>>.&indent.join("\n"),
camelia rakudo-moar 770d10: OUTPUT« abc␤ def␤»
masak (incidentally what it'd have been if operators were actually methods)
09:56 sjoshi joined
masak m: my &indent = ' ' x 2 ~ *; my @a = "abc", "def"; say @a>>.Str>>.&indent.join("\n") 09:56
camelia rakudo-moar 770d10: OUTPUT« abc␤ def␤»
ely-se Is there a variable containing a set of available encodings? 09:57
masak for my baseline spectest, t/spec/S17-supply/syntax.t dies after test 54 09:58
all the tests succeed up until that point
when I run the test file directly with `perl6`, the whole file succeeds
RabidGravy that sucks 09:59
10:00 dakkar_ joined
masak well, I'm more curious why that happens 10:00
is there something particularly interesting going on after test 54?
# multiple whenevers with channels 10:01
gfldex m: my @a = "abc", "def"; say @a>>.Str>>.&(' ' x 2 ~ *).join("\n"),
camelia rakudo-moar 770d10: OUTPUT« abc␤ def␤»
gfldex :o
El_Che aha. Found my bug. Silly typo. $.var in method signature instead of $var.
gfldex $idiom++
moritz masak: try executing it when your system load is high?
masak gfldex: wow. cute.
moritz I think I prefer map :-)
masak moritz: how do I artificially raise my system load?
moritz masak: like, run a spectest with TEST_JOBS=8 and then start the test manuall in another console? 10:02
masak moritz: note, it fails under `make t/spec/S17-supply/syntax.t`, which shouldn't have that high a system load
moritz masak: oh
masak moritz: hm 10:03
moritz masak: that runs perl t/harness --fudge --moar --kep-exit-code t/spec/S17-supply/syntax.t
masak: so that's what you can try next, plus maybe adding a --verbose
masak moritz: running it with `perl6` a few times while the spectest suite was running: it ran to completion all the way to 60 four or five times
moritz: then I ran it again, and then it got *stuck* after 54
moritz: now it just sits there
masak ^C 10:04
ran it six more times to completion, then it got stuck again.
I think this is cause for quaranteening that test
gfldex masak: sudo aptitude install stress; stress --help 10:05
masak gfldex: ooh. neat.
gfldex++ # guessing correctly what platform I'm on
gfldex nice thing about stress is that you can tell it to have RAM stress only 10:07
masak often has RAM stress :) 10:08
spectesting the rename, I get a "dubious" in t/spec/S32-io/IO-Socket-Async.t -- gonna ignore that 'cus IO::Socket::Async 10:09
IMO, that test file also belongs in quarantine
10:11 lnrdo joined, avs_ left
dalek kudo/nom: 775271d | (Carl Masak)++ | src/core/Str.pm:
rename s/outdent/de-indent/

See bikeshedding discussion at
  irclog.perlgeek.de/perl6/2016-01-20#i_11912864
10:12
masak this has been your daily non-semantic commit. let's see if I can make at least one today that actually improves something, too
10:13 araujo left
jnthn Wait, when did outdent get added? 10:15
yoleaux 19 Jan 2016 23:10Z <b2gills> jnthn: wouldn't Seq.Numeric always be the same as Seq.elems?
jnthn .tell b2gills I'd hope so...
yoleaux jnthn: I'll pass your message to b2gills.
moritz jnthn: probably as an implementation detail of ident with a negative indent 10:16
10:16 Ven left
moritz in auld lang syne 10:16
jnthn Oh, it's a lexical sub
No probs then :) 10:17
masak jnthn: yeah, I also did a bit of a double take before noticing it was lexical-only :)
10:17 lnrdo left
masak aha, you know what I'd like to implement for Rakudo? -i 10:18
10:18 lnrdo joined, avs_ joined
jnthn Yeah, I don't have to smite you for back-compact violation thanks to the wonder of lexical scoping. \o/ 10:18
masak it's probably the biggest reason I sidegrade to `perl` oneliners these days
but (a) I'm not at all sure exactly how the "safely overwrite the input file" magic works in Perl 5, and how to do that in Perl 6
and (b) I'm not sure I completely understand how the passing of the argument to -i works, or if it has support in NQP's argument parser 10:19
for example, `perl --help` says, "-i[extension]", but I don't think I've ever been able *not* to give it an extension
masak tries
moritz masak: safely overriding input file is usually implemented by writing to a temp file first, and moving it to the new location later 10:20
masak well, I'll be
that was easy :)
moritz: I think I'm going to try to hunt down the implementation of that in Perl 5 10:21
(it's probably in toke.c) :P
just so that we don't implement it *worse* and then have to hang our heads in shame over something obvious
moritz I wonder if that'll be fun or "fun" :-)
10:23 _mg_ left
Woodi "moving files" is traditional *nix/POSIX "atomic op" :) 10:23
10:23 avs__ joined
moritz Woodi: be careful; linux offers rename(), but that doesn't work across mount points 10:24
masak Woodi: also note that we're doing more here than just that atomic op
moritz (and /tmp/ being the traditional place for temp files can often be on its own file system)
masak Woodi: we're writing new file contents, and then moving the file 10:25
Woodi moritz: right
masak moritz: yeah, it's for reasons exactly like that I want to check prior Perl 5 art
(and maybe Python and Ruby if they do this too. do they? probably Ruby but not Python)
10:25 avs_ left
Woodi masak: that's a idea: create file.new then move to file so system prevents symlinks attacks 10:26
masak Woodi: what's a symlink attack? 10:27
masak .oO( we also want to prevent updog )
Woodi masak: when you remove file and create new one someone can put symlink to /etc/shadow :) 10:28
masak hm, there was also a TheDamian module that did this...
ah, yes: metacpan.org/pod/IO::InSitu
I should look at that one, too 10:29
moritz masak: I'd trust p5p more than TheDamian with cross-platform, safe IO
masak 'sooth 10:30
10:30 Zoffix left 10:32 kjs_ joined 10:33 vendethiel joined 10:34 brrt joined, ELBeavers joined 10:37 AlexDaniel joined
brrt ohai #perl6 10:37
10:38 ELBeavers left 10:39 leont left
AlexDaniel a quick note: -i is not implemented in Perl 6 (unfortunately!), so you have to use 「sponge」 in order to do that… 10:40
DrForr Morgen.
o/'
AlexDaniel or deal with tempfiles yourself if you don't want to rely on 「sponge」
brrt good morning DrForr
AlexDaniel and by not implemented in perl 6 I mean not implemented in rakudo… gah 10:41
honestly it is pretty hard to talk about those two independently until we actually have some other implementation that actually works… 10:42
masak AlexDaniel: the discussion is about implementing it in Rakudo
AlexDaniel anyway, the one who implements -i in rakudo will get big 🖒👍 from me 10:43
jnthn "not yet in Perl 6" is prefectly fine though...means "not in the specification of any version of Perl 6" :)
masak jnthn: but it is in S19, so... :) 10:44
probably not spectested, though
AlexDaniel anyway, just wanted to note that you can use 「sponge」 as workaround for now. Have to run now o/
jnthn masak: That's design, not spec(test) :) 10:45
masak AlexDaniel: that's good to know. thanks. :) 10:46
maybe `sponge` is another bit of prior art to look at
10:46 andrewalker joined
masak yup. it is. 10:48
RabidGravy yay! 10:49
masak "It also creates the output file atomically by renaming a temp file into place, and preserves the permissions of the output file if it already exists. If the output file is a special file or symlink, the data will be written to it."
10:49 AlexDaniel left
masak from the man page 10:49
I knew there were things I hadn't thought of! :)
10:49 FROGGS joined
RabidGravy masak++ 10:49
masak and there's a git repository 10:50
gfldex .indent can't be replaced with ' ' x $indent ~ * because .indent actually checks how much indentation is already there. What I need for my usecase as I don't recurse around. 10:52
my method indent(){ my $index = 0; $index += 2 while self.subst-eq(' ', $index); $indentor = ' ' x $index+2; }
that works for me and is 20% faster in my benchmark
masak far from a general solution though 10:53
10:53 vendethiel left
gfldex sadly 10:54
masak I'm thinking whoever goes in and replaces those regexes in `method indent` to make it faster, might want to keep the regexes as comments
10:54 sjoshi left
masak actually, this sounds like a good topic for a blog post, with benchmarks before and after 10:54
10:59 ely-se left 11:01 ChoHag left 11:03 RabidGravy left, Ven joined 11:07 TEttinger left 11:09 airomega joined 11:10 ChoHag joined, sjoshi joined 11:11 airomega left
El_Che yeah. My OpenLDAP::DataConsistency app is done (first draft anyway). Let put it in production, clean it up and push it to the ecosystem 11:14
11:18 breinbaas left 11:20 _mg_ joined 11:21 Zoffix joined, Zoffix left, Zoffix joined 11:23 sjoshi left, jdrab joined 11:26 pierre-vigier left 11:28 Alina-malina joined, vendethiel joined 11:29 bjz joined 11:31 bjz_ left
Zoffix Aristotle++ catching and fixing my awful mistake on blogs.perl.org/users/zoffix_znet/20...guage.html 11:32
11:33 Alina-malina left
Zoffix I'm so glad the fix is still so simple :) So my article is still valid :) 11:33
11:34 yqt joined
masak Zoffix: I liked the post -- except for the tongue-in-cheek joshing parts ;) 11:37
Zoffix masak, the YouTube video linked at the end of it makes my blood boil... the Pythonists are lucky they only got the joshing :P
11:39 yqt left
Zoffix or rather, that channel making a whole series of ridiculously ignorant Perl attack videos :) www.youtube.com/playlist?list=PLEK...yK-crDBycD 11:39
11:43 pierre-vigier joined, avs_ joined 11:45 vytas` joined, pierre-vigier left, pierre-vigier joined 11:46 avs__ left 11:48 pmurias joined 11:49 xpen left, vendethiel left 11:51 vendethiel joined 11:54 kaare_ joined
pmurias Zoffix: is the Perl 6 version with Z and comb more readable to someone who knows neither Perl 6 or Python? 11:59
masak pmurias: also, relatedly, how much should a language cater to the group of people who doesn't know how to read it? 12:06
12:07 cc9989 joined
pmurias masak: I suspect it's mostly similiarity to whatever else is popular 12:07
Zoffix pmurias, I don't think that has much relevance. At least from the point of view of my article, the programmer group in question is the one who regularly reads/writes in the language. But, analyzing the two, I can argue the Perl 6 is still more readable than Python version: for Perl 6 one will need to look up "wtf Z is" and the method .comb. The join ... is more or less self explanatory, but we can count it too: that's 3 things to look up. In python 12:10
version, we need to look up what zip() does, in particular to strings, then we need to figure out how 'in' behaves, then we need to figure out what math operations on strings do (which can be guessed) and then there's still a question of what a join method on an empty string does.
Zoffix never found "readability for someone who doesn't know the language" a viable argument.
Is Chinese an easy language to understand for someone who doesn't speak Chinese? 12:11
looks like "linenoise" to me, but I'm sure people who speak related languges will disagree
Zoffix runs to catch the bus
12:11 vendethiel left
brrt wonders if there are significant related languages to chinese 12:14
masak brrt: Mandarin and Cantonese are related. both are "Chinese languages" 12:15
brrt: Tibetan is probably the closest one outside of that group 12:16
timotimo Zoffix: we don't have to "calling it on an empty trying"!
(obviously using autocorrect or swype or something, eh?)
brrt masak: of course... i was simplistically thinking chinese was one language 12:17
timotimo also ... "viola! result." is hilarious :D
12:17 nowan_ left, nowan joined
masak brrt: it's usually presented in that way (with Mandarin and Cantonese being "dialects") for some inscrutable reason 12:19
the reason probably being "a language is a dialect with an army and a navy" :)
12:19 vendethiel joined
timotimo Zoffix: i really don't understand the problem stated in that stackoverflow post. it says "every nth element of final list is from list 2", but then the 3rd is x, the 6th is y and the 9th is ... g?!? 12:21
brrt haha yeah... 12:22
masak Zoffix: also, pro tip based on experience: try to avoid things on the intertubes (whether comments, or YouTube videos, or YouTube comments) that make your blood boil
12:22 ZoffixMobile joined
ZoffixMobile timotimo, yeah, because second list only has 2 elements, x and y 12:23
timotimo i find the description of the problem very lacking.
12:23 kid51 joined
pmurias masak: I guess another commonly used readability metric would be "how readable it is to someone who sort of knows the language but doesn't care enough to learn it fully" 12:23
brrt can second masaks comment on blood-boiling intertube contents 12:24
masak Don't Read the Comments™ 12:25
timotimo that's indeed always good advice
masak pmurias: I'm wary of catering to people who don't care in various ways. I don't mind designing the language for people who can be bothered.
12:25 RabidGravy joined
ZoffixMobile pmurias, I often follow the "how many elements I have to parse" rule of thumb. a postfix for loop with two variables inside a method call is certainly eyebrow-raising to me than using a weird operator 12:25
12:27 Actualeyes left
ZoffixMobile masak, re blood boiling: xkcd.com/386/ :) 12:28
masak absolutely. 12:29
but the undertone even of that comic is that life is too short for that
timotimo i don't think that comic is trying to advocate preventing people from being wrong on the internet by spending time on that particular problem 12:30
brrt also, too many people will be wrong about too many things 12:31
masak right, the comic is about the futility of trying to prevent people from being wrong on the Internet
brrt in fact, i would probably find many things arguable about things $younger-self said 12:32
12:32 Skarsnik joined
masak " You should regard anything from 2001 or earlier as having been written by a different person who also happens to be named “Eliezer Yudkowsky”. I do not share his opinions." -- Eliezer Yudkowsky 12:33
Skarsnik Hello
masak hello, Skarsnik
brrt hi Skarsnik
12:33 uruwi left
tadzik masak: hah, that's a nice way of saying "it... it was a phase mom :(" 12:36
I should write it down, may prove useful some day :P
12:36 kjs_ left
pmurias misses new hpmoar updates 12:37
tadzik reminds me of my english teacher, who once said "oh, Ted, you're young, you're allowed to say stupid stuff"
12:37 llfourn joined
tadzik in retrospect, I did indeed 12:37
12:40 ZoffixMobile left, pierre-vigier left, bowtie left, kid51 left 12:41 vendethiel left, llfourn left
lucs Can I get the PID of a started Proc::Async instance before it terminates? 12:42
Ulti fairly sure its ok to say stupid stuff all the way into old age too :3 at least thats the defacto standard
lucs s/ok/typical/
12:44 bowtie joined
brrt hmmm 12:45
if we couldn't say stupid stuff anymore, that would be quite restrictive indeed
12:46 ely-se joined
tadzik hums "forever young" 12:47
12:47 Actualeyes joined
Ulti it means people would just silently think stupid stuff without giving you the chance to correct them :S 12:47
timotimo especially given that "stupid stuff" should be judged by humanity's future shared understanding of the world
tadzik well, there're things universally stupid, and there's things to be judged by generations to come
masak pmurias: there's supposed to be one final update (an epilogue) later this year 12:48
ely-se nooooo 12:49
12:50 xpen joined
ely-se from 1.0 onwards it can only get worse :( 12:50
pmurias ely-se: you mean from hpmor 1.0 onwards? 12:51
ely-se no 12:52
masak nooooo 12:53
tadzik www.nooooooooooooooo.com/ 12:54
masak DO NOT WANT
12:54 xpen left
ely-se doc.perl6.org still says "Please note that *ALL* deprecated features will be removed at the release of Perl 6.0.0 (expected sometime in 2015)." 12:55
the documentation of DEPRECATED in particular 13:02
dalek c: 569a7da | (Zoffix Znet)++ | doc/Type/Routine.pod:
Update the message displayed when DEPRECATED trait is used
13:11
stmuk damm you Zoffix! you are faster! :) 13:13
13:16 kjs_ joined
Skarsnik brrt, did you find the cause of my weird sigseg? x) 13:19
brrt no, not yet
i'm not terribly familiar with the moarvm gc things
13:27 arlenik left, vendethiel joined
dalek rl6-roast-data: d45411f | coke++ | / (2 files):
today (automated commit)
13:30
perl6-roast-data: 4388063 | coke++ | / (2 files):
perl6-roast-data: today (automated commit)
13:30 dalek left, dalek joined, ChanServ sets mode: +v dalek
abraxxa dalek: IPv6 baby! 13:31
dalek: botsnack!
Skarsnik x)
13:32 g4 joined, g4 left, g4 joined, kjs_ left
tadzik \o/ 13:35
13:37 avs_ left
DrForr o/ 13:37
13:38 llfourn joined 13:41 dfcarpenterak joined 13:43 llfourn left
[Coke] . 13:45
13:46 ZoffixWin_ joined, Xor_ joined
timotimo × 13:46
13:46 ZoffixWin_ left, ZoffixWin_ joined 13:47 pochi_ joined, yurivish_ joined, pmqs_ joined, colomon_ joined, noganex_ joined, pdcawley_ joined 13:48 bapa1 joined, jevin_ joined 13:49 rvchangue left, ggoebel8 joined, jameslen_ joined 13:50 peter3 joined 13:51 mathw joined, Brock joined, nine_ joined, Mouq joined, pjcj joined, bhm_ joined, moritz_ joined, zacts_ joined, garu_ joined, jdv79_ joined, El_Che_ joined, BooK_ joined, atta_ joined, au_ joined, KotH_ joined, mls_ joined, psch_ joined, cfloare_ joined, cxreg2 joined, squain_ joined, masak_ joined, decent_ joined, tinita_ joined, Rotwang_ joined, perlpilo1 joined 13:52 Ulti_ joined, jferrero_ joined, xenu_ joined, cosimo_ joined, shmibs_ joined 13:53 masak_ is now known as masak_grr, [particle]1 joined 13:54 itz2 joined, sjohnson` joined, moznion joined 13:55 itz2 left, emdashcomma_ joined, rafl_ joined, skaji_ joined, yeltzooo9 joined 13:56 FROGGS left, noganex left, bpmedley left, eternaleye left, alpha123 left, hippie1 left, zacts left, felher left, tadzik left, sjohnson left, skaji left, mtj_ left, pjcj_ left, [particle] left, Celelibi left, Amnez777 left, vytas left, xenu left, Quom__ left, atta left, Kcop left, au left, sjohnsen left, autarch left, |Tux| left, rafl left, retupmoca left, moznion_ left, bhm left, jferrero left, ingy left, Bucciarati left, johan left, yeltzooo left, nine left, jdv79 left, tinita left, Ulti left, KotH left, risou left, RabidGravy left, Zoffix left, cfloare left, garu left, moritz left, colomon left, PerlJam left, pdcawley left, jevin left, raydiak left, awwaiid left, shmibs left, pmqs left, yurivish left, keix left, mls left, jameslenz left, ggoebel7 left, vike1 left, stmuk left, DrPete_ left, pochi left, emdashcomma left, psch left, perlpilot left, Rotwang left, bapa left, lestrrat left, masak left, ab5tract left, xdbr left, ashleydev left, El_Che left, decent left, mathw_ left, squain left, cxreg left, charsbar__ left, BooK left, cosimo left 13:57 Celelibi_ joined, M-eternaleye joined, vike1 joined, colomon_ is now known as colomon, rafl_ is now known as rafl, Bucciarati joined, moritz_ is now known as moritz, johan joined, sjohnsen joined 13:58 Celelibi_ is now known as Celelibi, Amnez777 joined, masak_grr is now known as masak, ab5tract joined 13:59 kaare_ left, kaare_ joined, bowtie left, stmuk joined 14:00 Amnez777 left, Amnez777 joined, bowtie joined
brrt netsplits! 14:01
moritz better the nets split than the nets spit :-)
14:02 felher joined, |Tux| joined, xdbr joined, RabidGravy joined, tadzik joined, DrPete_ joined, FROGGS joined, vytas joined 14:03 PerlJam joined, mtj_ joined
masak .oO( there was a rent in the reticulum! ) 14:03
14:03 ingy joined
masak everyone still with us? good, good. 14:03
14:03 retupmoca joined, raydiak joined
moritz those that aren't can't protest :-) 14:04
14:04 risou joined, raiph joined 14:05 charsbar__ joined, bowtie left
gfldex #perl6: Total of 342 nicks 14:05
14:05 hippie1 joined, autarch joined
gfldex so many intarwebs friends! 14:05
14:06 bowtie joined
Skarsnik why do I always have the weirdest probably ungolfable bug? x) 14:07
gfldex you like nativecall very much? 14:08
14:08 vytas` left, tinita_ is now known as tinita
Skarsnik I don't use nativecall 14:09
14:09 vendethiel left
hoelzro morning #perl6 14:10
[Coke] hoelzro: hio 14:11
14:11 CIAvash left
hoelzro I wrote up a blog post about some experiences writing a Pod:: module for DOC INIT time, if anyone's curious: hoelz.ro/blog/getting-eod-pod-and-d...-play-nice 14:11
o/ [Coke]
14:13 yeahnoob left
Skarsnik like how to explain: gist.github.com/Skarsnik/2ce915ed020db8fb91fb 14:13
14:16 bpmedley joined 14:17 _Vi left, skids joined
brrt RT #127308 14:23
how toget a link?
Skarsnik the bot for that is not here I thik x) 14:24
timotimo oh, damn
tadzik: synopsebot was yours, right?
14:26 vendethiel joined
[Coke] it's rt.perl.org/Ticket/Display.html?id=127308 - I added a chrome search backend for RT, so I go to the omnibox, type "RT<TAB>" and then the number to get there. 14:28
ely-se synapsebot
diakopter m: say 2**74_207_281-1
camelia rakudo-moar 775271: OUTPUT«(timeout)»
gfldex m: say (2**74_207_281-1).is-prime 14:29
moritz rakudo-moar 775271: OUTPUT«(timeout)»
diakopter rotfl XD
camelia rakudo-moar 775271: OUTPUT«(timeout)»
moritz here, I'm faster than camelia
diakopter: well, it only does a statistical test 14:30
diakopter say (2**74_207_281-1).is-mersenne
brrt what i would give to find all instances of 'old os x' and.. dispose of them 14:32
os x and the apple pretty hardware may be one of the most powerful regressive forces in OSS today 14:33
[Coke] ?
14:33 uruwi joined
tadzik timotimo: originally, yes. It was later ported to perl6 by [Coke], I think 14:33
timotimo ah
brrt if i must, i will elaborate :-) 14:34
tadzik or colomon?
timotimo were you running it on some server or something?
since it's not running any more, apparently, why not run it on p6c infrastructure
tadzik I was running the perl 5 version years ago
I don't remember who was hosting the p6 version
brrt apple will happily sell you a laptop which is almost, but not quite, a capable developers machine
[Coke] tadzik: doesn't sound familiar.
colomon has nothing to do with synopsebot
timotimo well, if you have no reason to use opengl ever ...
[Coke] brrt: I have a work mactop that is pretty servicable... 14:35
brrt because people confuse it for a capable developers machine, they expect development to just work
tadzik huh
14:35 nadim joined, Fleurety left
brrt however, the apple ecosystem itself is not hackable per se 14:35
[Coke] brrt: "install xcode; install xcode command line tools". done.
brrt yes
and apple gives you a set of tools which are almost, but not quite, workable
tadzik silly people! Development is because things don't "just work" :)
[Coke] with that and macports, I've yet to be annoyed.
brrt: what is driving this complaint?
brrt too much stress in general :-) 14:36
tadzik hugs brrt
brrt the RT ticket, in particular
nemo xcode has caused me so much pain over the years
but it has gotten more usable lately
brrt the simple and dumb fact that we're quite unable to get a VM, a text-based VM, that's all I ask, of 'darwin' and associated build tools to test our stuff on 14:37
timotimo 2015-04-10 17:32:03 <-- synopsebot (~synopsebo@2001:780:101:ff00::2:9) has quit (Remote host closed the connection)
isn't that on our servers?
moritz it is 14:38
14:38 Fleurety joined
timotimo yeah, that's the p6c.org ip space 14:38
[Coke] the problem with jim's config is probably that it's PPC, and we're probably trying to compile JIT. that's my not-even-looking guess. :) His system is very old.
brrt the process is this: people hack stuff on linux, bsd, and expect stuff to work on os x, because apple tells you 'os x is just bsd', and then it isn't, and then we have to find a developer with time and care who will test it on one of the many, many comically fragmented os x 'platforms'
this is a bad state of affairs
[Coke] I think if we do as FROGGS suggested and give him some diagnostic output, he can probably fix it.
nemo brrt: OSX + macports is "just BSD" ? 14:39
[Coke] brrt: no one really expects that.
Certainly not jim.
brrt i kind of expect that
nemo: try libuv
14:39 kjs_ joined
timotimo the only mentions of synopsebot in hack's "locate" database are under /home/duff or /home/tadzik 14:39
who is jsduff on irc again?
moritz timotimo: duff is PerlJam 14:40
brrt nemo: your reply is what i mean with 'almost, but not quite' :-)
14:40 avenj left
[Coke] .seen kid51 14:40
yoleaux I saw kid51 16 Jan 2016 13:36Z in #perl6: <kid51> I ask because I'm about to start a Perl6 study group in NYC and, for the people likely to participate in this group, I've been advised that Rakudo Star will be a better bet.
14:40 FROGGS left
timotimo thanks 14:40
nemo brrt: heh. I'm not a huge OSX user really. just out of necessity for iOS dev 14:41
[Coke] brrt: kid51 is the PPC mac guy, btw.
tadzik ah, PerlJam
nemo brrt: but, yeah, take freeciv's "OSX support" page freeciv.wikia.com/wiki/Install-MacOSX
tadzik seems I was almost correct geographically at least :P
nemo you get to pick which of 3 complete unix-y package management env you get to install first before compiling on your own
timotimo moritz: irc.p6c.org; is that the host that we give to people for having irc sessions? 14:42
it seems strange that it doesn't ipv6
brrt [Coke]: MoarVM assumes darwin == clang, and of course, we don't have the clang toolchain on aged os x instances 14:43
moritz timotimo: it's the host I offered for that matter; but I've shut it down after a few weeks, because nobody used it.
nemo that seems a silly assumption
Skarsnik I say people wanting old plateform support, just write it x) 14:44
brrt all this would not matter if apple was open about their toolchain and let hackers.. hack it, but no
timotimo ah, ok. so no use looking if synopsebot was set up there
brrt nemo: welcome to the MoarVM configuration system
moritz timotimo: correct
timotimo: the IP is bound to eth0 on hack 14:45
14:45 n0tjack joined
moritz up /sbin/ifconfig eth0 inet6 add 2001:780:101:ff00::2:9/64 14:45
# from /etc/netwwork/interfaces
timotimo ah, i should have looked there 14:46
14:46 TEttinger joined
timotimo if i were to set up a new instance of synopsebot, would i create a new user for that? 14:47
timotimo tries running synopsebot locally first
14:47 bowtie left
moritz timotimo: yes, new user 14:48
timotimo: and ideally write a systemd service file
timotimo: so that it's automagically started on reboot
14:48 vendethiel left
timotimo right 14:48
moritz timotimo: see /etc/systemd/system/dalek-irc.service for example; it's no magic :-)
jnthn The MoarVM configuration system will only change notably if somebody with experience of building such things for a bunch of less common platforms steps up to do it.
14:48 Ven left
timotimo i see that perlpilot has a bunch of commits in his repository that haven't been merged into tadzik/, but there's been two pullrequests merged since they both diverged 14:49
jnthn In reality, if you handle Windows + most standard Linux + modern OSX, then you're already covering around 99% of potential users.
Plus it handles a bunch of BSDs too. 14:50
brrt nods in agreement
jnthn Anything else is a fraction of a percent, and it's just not cost effective to spend time on that when it could be spent on making, say, performance and stability better for the > 99%.
brrt and adds that we're kind of limited by 3rd party libraries like libuv, which are very much platform-bound 14:51
jnthn (Noting that we have very limited resources.)
14:51 xpen joined
jnthn So I'm *all* for work to extend the range of platforms, but it won't happen without somebody volunteering. 14:51
14:52 kjs_ left, bowtie joined
ely-se say "Install Gentoo"; exit 1; 14:53
14:53 _ramix_ joined
[Coke] I think the trick here is to give kid51 a pointer on how to fix it himself, make the config probe smart enough to complain the right stuff to him. 14:53
(and that'll help for others with weird platforms)
14:53 TEttinger left
jnthn Yes, being better at knowing when we don't know may well help. 14:54
14:54 kjs_ joined
[Coke] if he comes back and says "oh, now libuv is busted", he's on his own. :) 14:55
14:56 sufrostico joined, dfcarpenterak left 14:57 xpen left
mspo what if you pass CC= ? 14:58
15:00 synopsebotimo joined
timotimo let's see if this works 15:00
15:01 prammer joined
timotimo 152641 [Coke] │ it's rt.perl.org/Ticket/Display.html?id=127308 - I added a chrome search backend for RT, 15:01
15:01 araujo joined, araujo left, araujo joined
[Coke] RT #127308 15:02
synopsebotimo Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127308
timotimo um ...
[Coke] RT #FOOLEDYOU
timotimo yeah :)
i didn't see your line before the synopsebotimo line and i thought it just took almost a minute to react
with one simple patch to IRC::Net::Bot it seems to work again 15:03
15:03 avenj joined
tadzik \o/ 15:03
timotimo it probably asplodes if b0rked utf8 gets sent to a channel, though 15:04
because it uses $connection.Supply.lines 15:05
maybe we should have a way to pass an encoding there?
15:05 g4 left
moritz +1 15:05
15:05 Ven joined
timotimo jnthn: does that sound insane? 15:06
15:06 prammer left
timotimo $connection.Supply(:encoding<utf8-c8>) 15:06
15:06 kubrat joined
jnthn timotimo: Should support that, yeah. 15:06
timotimo: But probably going to implement it a bit differently than it's done today 15:07
timotimo doc.perl6.org/routine/Supply - um, what is this about?
m: say &zip
camelia rakudo-moar 775271: OUTPUT«sub infix:<Z> (| is raw) { #`(Sub+{<anon|68739552>}+{Precedence}|43410160) ... }␤»
timotimo this is about a method on Supply, but why is it under routine/? 15:08
jnthn That looks...odd
15:08 TEttinger joined, lestrrat joined
moritz timotimo: all methods or subs show up under /routine/ 15:08
timotimo oh 15:09
well, fair enough
15:09 pmurias left
jnthn Yes, but sould doc.perl6.org/routine/Supply not show methods called Supply? 15:09
moritz it should
timotimo whoa
15:09 pmurias joined
moritz like doc.perl6.org/routine/zip does, for example 15:10
timotimo github now puts a very visible link to CONTRIBUTING.md at the top of the "new issue" page
:+1:
15:10 KotH_ is now known as KotH
moritz seems somebody read the open letter to github, and decided to implement the simplest thing quickly :-) 15:10
15:10 _Vi joined
timotimo i don't remember seeing that open letter you're refering to 15:11
moritz timotimo: github.com/dear-github/dear-github
15:11 ely-se left
timotimo github.com/perl6/doc/issues/357 - does my complaint seem sensible? 15:13
moritz yes 15:14
a different color for the selection would help
[Coke] timotimo: yup. I got no feedback when I added categories.
moritz like yellow or blue or so
masak "low contrast" is basically the issue
[Coke] so you got whatever I had in my testbed. :)
moritz or even a light red
[Coke] should be pretty easy to change with a style. 15:15
timotimo [Coke]: the categories are super helpful, imo
15:16 _nadim joined, nemo left
timotimo does someone have an irc client that can send raw mojibake to the network? 15:16
15:16 kjs_ left
[Coke] timotimo: danke! 15:16
timotimo no, danke you! 15:17
[Coke] ok, fine, bitte.
timotimo :3
[Coke] YOU WIN OK IS THAT WHAT YOU WANTED?
:)
timotimo :D
15:17 _mg_ left, breinbaas joined
sjn has had some issues with doc.perl6.org too, lately :-\ 15:18
15:18 nadim left
sjn e.g. searching for "..." and then going to the resulting page gives a 404 not found :-\ 15:18
(resulting URL is <doc.perl6.org/routine/...>
15:18 nadim joined
timotimo aye, we have trouble with "funny" urls :( 15:19
mspo add .html
15:19 kjs_ joined
sjn would love that the resulting URL already had .html added :3 15:19
moritz please don't
what's the use?
the problem is that . and / have special meanings in paths 15:20
mspo it makes the page load?
doc.perl6.org/routine/....html
15:20 _nadim left
timotimo with an ACTION, the bot already gets a weird character 15:20
mspo I mean, assuming the page actually loading is important
timotimo tests
moritz mspo: that helps in that particular case, but we need a genral fix
sjn moritz: in that case, there's an issue about escaping here
moritz sjn: could very well be 15:21
timotimo m: $*OUT.write(buf[int8].new(^66))
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dgOh8Sb1rY␤Undeclared routine:␤ buf used at line 1␤␤»
timotimo m: $*OUT.write(Buf[int8].new(^66))
camelia rakudo-moar 775271: OUTPUT«␀ ␤
timotimo okay. is synopsebot okay?
seems to still run fine
moritz RT#1234
timotimo RT #127308
synopsebotimo Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127308
mspo moritz: I think most of them would work as a query param instead of a path url
timotimo not bad indeed. 15:22
mspo moritz: although & and ? and # would still be broken
moritz mspo: right, but that needs a different backend
mspo: it's all static pages right now
15:22 gtodd joined
mspo the static page generator can have a list of "broken" things to render in a different way 15:22
[Coke] there is a suggestion to have files like "." be renamed to something like "period" 15:23
moritz mspo: patches welcome
[Coke]: also patches welcome :-)
mspo it's in the docs repo?
moritz mspo: yes
iirc STD.pm6 has a list of names for characters 15:24
[Coke] you can build the site, but it's incredibly slow, fyi.
timotimo if we translate . to period, what happens to an actual "method period"? :)
15:24 prammer joined
timotimo clearly we need a similar approach to "punycode" :P 15:25
moritz timotimo: we can translate . to @dot and there are no @ in method names
mspo why is it slow?
moritz there's still potential conflicts with operators
mspo or is that redundant? :)
timotimo m: sub infix:<@>($a, $b) { say "haha!" }; 1 @ 2 15:26
camelia rakudo-moar 775271: OUTPUT«haha!␤»
moritz the "proper" solution is to have some dynamic backend
mspo what powers the search?
moritz timotimo: as long as it's not infix:<@dot> it's all good
mspo: client-side JS
15:27 bapa1 is now known as bapa
moritz mspo: htmlify.p6 creates some JSON document that contains an index of documents and key words/symbols, iirc 15:27
sjn sees that just adding .html to the end of the URL would be enough to make the ... doc page work
15:27 brrt left
moritz sjn: but it won't work for $/ for example :-) 15:27
or for //
15:28 uruwi left
mspo the browsers might not all do the same thing when requesting things like // 15:29
15:31 prammer left
sjn hm 15:31
15:31 mls_ is now known as mls
sjn ok, so URL-encoding those don't work (the browser just "fixes" the URL) 15:31
timotimo aye, the url-encoding part is a layer too "high"
or low, depending on your view point 15:32
mspo sjn: it's probably still sending url-encoding but showing you //
sjn if we use another encoding character than %, we just move the problem
mspo chrome does that, anyway
timotimo it'll probably reach the server without the server being able to tell a difference
mspo you can't type XSS into the bar anymore; it's annoying
moritz huh? does it encode < ?
sjn we could just generate URL with our custom encoding (e.g. @40 instead of %40) 15:33
15:33 Zero_Dogg joined
mspo moritz: yes 15:33
I think firefox started doing the same thing recently
sjn as long as it's internally correct, and all characters can be represented (including the escape character), it should work fine
@ is perhaps a bad URL escape character... 15:34
15:34 uruwi joined
sjn ¤? ‰? -? 15:34
perigrin worked on a project that used @@ delimited text.
talk about hard to read data files. 15:35
mspo mojo uses @@ I think in __DATA__
timotimo we should use `, as that's "the one" character perl6 doesn't use anywhere internally
(not seriously)
sjn hehe
let's escape with \0 :) 15:36
that's make things interesting
timotimo "how to find b0rked software"
DrForr perigrin: Try : and * for your delimiters :)
perigrin if only uniocde were better supported on filesystems ... 💩 delimited filenames so people could finally say "where'd it install that crap?"
timotimo reminds me of when fedora named their release "Schrödinger's Cat"
sjn that'll*
15:38 prammer joined, cdg joined
moritz timotimo: did they? including the single quote? 15:38
"what could possibly go wrong?"
timotimo i'm not sure about the single quote actually 15:39
jast well there are lots of benefits to typographical apostrophes ;)
15:40 marmay left
sjn suggests using "-" as an internal escaping character, since it's one of the characters in URL incoding that _don't_ get a custom treatment (meaning, it'll always come across the wire as a -) 15:40
timotimo which one is the right one? ’ or ‘ ?
perigrin It had a 50% chance of both installing and not installing cleanly ... and only when you ran the installer did it collapse into a observable state.
timotimo perigrin: nah, not 50-50.
jast ’ from what I can tell with this font
timotimo .u ‘’
sjn having a file for the minus operator would then be /-2D.html
yoleaux U+2018 LEFT SINGLE QUOTATION MARK [Pi] (‘)
U+2019 RIGHT SINGLE QUOTATION MARK [Pf] (’)
moritz 50+1i %
timotimo jast: seems like both are wrong?
sjn . would give -2E.html 15:41
jast right single quotation mark is visually identical to apostrophe
sjn // would give -2F-2F.html
jast "This is the preferred character to use for apostrophe according to the Unicode standard. "
unicode.org/Public/UNIDATA/NamesList.txt search for 2019 15:42
timotimo ugh.
sjn and we'd only have to encode funny characters like / .. and - :)
jast though there's also
Skarsnik hm, does someone has a suggestion on how I should handle excluding header in gptrixie (like to not display stuff from stdlib.h or 'internal' header)
jast .u ʼ 15:43
yoleaux U+02BC MODIFIER LETTER APOSTROPHE [Lm] (ʼ)
timotimo they put a paired quotation mark thing in, but then decided to suggest using that for apostrophe ?!?
15:43 FROGGS joined
jast I guess that's a combining character, though? 15:43
Skarsnik I mean, should I use a config file, some argument to the binary
hahainternet hey guys/gals, so i've been chatting with a friend about object orientation
masak ok
hahainternet and one thing he said stuck out at me, that when you have $obj.method, your methods are tied to that object explicitly
timotimo Skarsnik: do it just like mplayer and friends to it with their config. interpret the config file contents as commandline flags 15:44
hahainternet even though the method itself might be useful as a function elsewhere, without $obj or replacing $obj explicitly
15:44 abraxxa left
hahainternet but as far as i know in perl6, self is implicit and there's no way of having a bare function that's also a method? or maybe i'm dumb :D 15:44
timotimo you can export methods that turn into subs "on the outside" of the class 15:45
Skarsnik method are special sub I think
hahainternet timotimo: can you give me an example or somewhere to read please?
sjn tools.ietf.org/html/rfc3986#section-2 is the relevant RFC to look at for reserved characters in URIs
timotimo m: class Frob { method nozzle is export { say self } }; Frob.new.nozzle; nozzle(new Frob); nozzle();
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VOOmccpl0r␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax␤at /tmp/VOOmccpl0r:1␤------> 3lf } }; Frob.new.nozzle; nozzle(new Frob7⏏5); nozzle();␤»
timotimo m: class Frob { method nozzle is export { say self } }; Frob.new.nozzle; nozzle(Frob.new); nozzle();
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/94hrJgU8fI␤Undeclared routine:␤ nozzle used at line 1␤␤»
timotimo hum.
FROGGS m: class Frob { method nozzle is export { say self } }; import Frob; Frob.new.nozzle; nozzle(new Frob); nozzle();
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/X5aviyNopo␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax␤at /tmp/X5aviyNopo:1␤------> 3t Frob; Frob.new.nozzle; nozzle(new Frob7⏏5); nozzle();␤»
15:45 nadim left
FROGGS m: class Frob { method nozzle is export { say self } }; import Frob; Frob.new.nozzle; nozzle(Frob.new); nozzle(); 15:46
camelia rakudo-moar 775271: OUTPUT«Frob.new␤Frob.new␤Too few positionals passed; expected 1 argument but got 0␤ in method nozzle at /tmp/7PY2LyjNep line 1␤ in block <unit> at /tmp/7PY2LyjNep line 1␤␤»
timotimo ah, needs the import, of course
the error is to be expected ^
jnthn And need to pass something for the invocant
FROGGS aye
jnthn Which is really just an argument
Skarsnik method have extra parameters yes x)
FROGGS m: class Frob { method nozzle is export { say self } }; import Frob; Frob.new.nozzle; nozzle(Frob.new); nozzle("something");
camelia rakudo-moar 775271: OUTPUT«Frob.new␤Frob.new␤Type check failed in binding <anon>; expected Frob but got Str␤ in method nozzle at /tmp/w7gkxayHlR line 1␤ in block <unit> at /tmp/w7gkxayHlR line 1␤␤»
jnthn Perl 6 believes that pretty deeply
FROGGS :o)
15:46 andreoss joined
jnthn m: class C { method m($a) { } }; C.m 15:46
hahainternet FROGGS: that's what worries me a little bit
camelia rakudo-moar 775271: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in method m at /tmp/rYqP36KmpQ line 1␤ in block <unit> at /tmp/rYqP36KmpQ line 1␤␤»
FROGGS jnthn: something doesnt work :o)
jnthn Note the "expected 2, got 1"
hahainternet could that be made more generic
andreoss m: say -v
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_L6I3JGBCw␤Undeclared routine:␤ v used at line 1␤␤»
hahainternet or is it tied implicitly to Frob?
jnthn FROGGS: :P 15:47
FROGGS m: class Frob { method nozzle(Any:) is export { say self } }; import Frob; Frob.new.nozzle; nozzle(Frob.new); nozzle("something");
camelia rakudo-moar 775271: OUTPUT«Frob.new␤Frob.new␤something␤»
FROGGS hahainternet: ^^
andreoss >Bytecode validation error at offset 166, instruction 25:
jnthn hahainternet: You can...what FROGGS showed UP
oops
s/UP/:)/
andreoss what does this mean?
hahainternet aah very nice, so it's the method signature
that is excellent
jnthn andreoss: Potentially corrupted bytecode, in practice usually version skew between MoarVM and your NQP/Rakudo.
Skarsnik timotimo, na I don't want all the option in a config file. It just I want to exclude stuff from stdlib (and co) but I also want the user to be able to change it ~~ 15:48
15:48 abraxxa joined
timotimo that sounds like you just want to distribute a default config with your program? and also offer a negative version of every switch 15:48
BBL 15:49
andreoss paste.debian.net/366799/ 15:50
perigrin /w 28
FROGGS andreoss: what's moar --version ? 15:51
andreoss > This is MoarVM version 2015.12 built with JIT support
FROGGS hmmmm, weird
bbiab
15:51 FROGGS left 15:52 jme` joined
andreoss it's v6.c, at least rakudobrew says so 15:52
jnthn Very odd. Here I just get "Undeclared routine: a used at line 1"
andreoss ok, will try to rebuid 15:55
masak hahainternet: still there_ 15:56
hahainternet: still there?
15:56 Ven left
Ulti_ andreoss: get undeclared routine here on OSX for what it's worth 15:57
15:57 Ulti_ is now known as Ulti
hahainternet masak: i am 15:57
masak m: my $m = method { say self.name }; class Employee { has $.name }; my Employee $e .= new(:name<Albert>); $e.$m()
camelia rakudo-moar 775271: OUTPUT«Albert␤»
masak hahainternet: you can have methods unconnected with a class, as above.
15:57 sftf joined
hahainternet masak: indeed, i half expected someone in here to say "oh that's a weird requirement, i'm not sure" 15:58
but instead, instant perfect answer
that is coherent and kinda beautiful
damn you perl 6! :D
15:58 andreoss left
masak hahainternet: but I hasten to add that I wouldn't want to write many of my methods like that, since most of my methods (that aren't just syntactic sugar for other methods further down) would touch private state of the object 15:58
and you can't do that if you're outside a class
hahainternet masak: that's fine, this was a discussion about the downsides of methods vs plain functions
15:59 ELBeavers joined
hahainternet and my friend was saying how methods are just crappy functions that have mandatory arguments and become worthless without them 15:59
masak hahainternet: basically, what we're (implicitly) making use of here is that if you dig deep enough into Perl 6, method calls are "actually" function calls
hahainternet wheras here as usual, perl6 has the best of both worlds
masak hahainternet: and the invocant `self` is "actually" passed as a hidden first argument
hahainternet masak: yeah that's pretty normal elsewhere too, method(obj, args) ~~ obj.method(args)
RabidGravy I love this two bugs for one deal I just got
Skarsnik hm, why method have 2 arg at compile time btw?
hahainternet but that's a smart model, because it allows complex behaviour like this, which is very nice
masak hahainternet: in your friend's defense, I've seen a lot of OOD where your friend is right in all ways that matter
hahainternet: but when you do OOD right, your friend is wrong, IMO 16:00
hahainternet masak: he is a functional programmer, so i try to learn from his perspective
moritz lv
sorry, wrong window
hahainternet and his issue is more with languages which make assumptions in this regard i believe, so Python lol
masak hahainternet: the one thing that FP people have over OOP people is that FP *is* grounded in something formal and well-specified. OOP isn't.
hahainternet masak: indeed, but i was going through his particular hates and trying to understand them more 16:01
abaugher I'm having trouble getting an exitcode from Proc.run. The process does return an exitcode of 1 in the shell, and the error is returned on the :err pipe, but the .exitcode method always gives me zero. Any ideas? The code: nopaste.me/view/c40aed69
16:01 _ramix_ left
hahainternet i have found that any time i have any programming issue that is down to syntax or mechanisms or similar, perl6 has the best solution 16:01
masak hahainternet: another thing that Perl 6 largely fixes is the objection "why is there always only *one* invocant?"
hahainternet and what a shock, here too the best of both worlds remain
masak CLOS fixes that one too
hahainternet hell it took me no more than a few seconds to make sub whatever is Atomic {...} work
moritz abaugher: the exit code is only available when the program has exited 16:02
masak with multimethods, you can put all the arguments on exactly the same footing
moritz abaugher: so you need to read everything from $err first
abaugher moritz, ah, ok, thanks
So the Proc is waiting for me to read that pipe because I said I wanted it. I guess that makes sense. 16:03
Skarsnik m: trait_mid:<is>(Routine $p, :$hello) { say $p.signature.params.elems}; class A { method foo is hello(Str $s) {}};
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Qkyw6pEt8V␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/Qkyw6pEt8V:1␤------> 3trait_mid:<is>(Routine7⏏5 $p, :$hello) { say $p.signature.params.␤ expecting any o…»
16:03 ELBeavers left
moritz abaugher: I'm not sure it works then, but I'm pretty sure it can't work without it :-) 16:04
Skarsnik m: trait_mod:<is>(Routine $p, :$hello!) { say $p.signature.params.elems}; class A { method foo is hello(Str $s) {}};
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4dgtk9jnel␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/4dgtk9jnel:1␤------> 3trait_mod:<is>(Routine7⏏5 $p, :$hello!) { say $p.signature.params␤ expecting any o…»
Skarsnik hm
jnthn Skarsnik: You need the signature before the is hello 16:05
Skarsnik: At the moment it's parsing the (Str $s) as an argument to the trait, which is then malformed
Skarsnik m: trait_mod:<is>(Routine $p, :$hello!) { say $p.signature.params.elems}; class A { method foo (Str $s) is hello {}};
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/l0TwlSAUt3␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/l0TwlSAUt3:1␤------> 3trait_mod:<is>(Routine7⏏5 $p, :$hello!) { say $p.signature.params␤ expecting any o…»
16:05 ruoso left, ta0 joined 16:06 ruoso joined
hahainternet are you missing sub 16:06
moritz or better "multi"
Skarsnik m: multi trait_mod:<is>(Routine $p, :$hello!) { say $p.signature.params.elems}; class A { method foo (Str $s) is hello {}};
camelia rakudo-moar 775271: OUTPUT«3␤»
Skarsnik why multi?
and why 3 params x)
hahainternet the method is just 'is' 16:07
PerlJam Skarsnik: *%_
moritz Skarsnik: because there are already existing trait_mod:<is> candidates, and you're overriding them
hahainternet multi is required to select which implementation based on 'hello' i think?
kk sweet, i got a question rightish!
Skarsnik *%_?
PerlJam Skarsnik: ignore me. I'm not fully awake :)
16:07 domidumont1 left
jnthn m: class C { method m($x) { } }; say C.^lookup.signature 16:08
camelia rakudo-moar 775271: OUTPUT«Too few positionals passed; expected 3 arguments but got 2␤ in any lookup at gen/moar/m-Metamodel.nqp line 531␤ in block <unit> at /tmp/nf0mwIsLzC line 1␤␤»
PerlJam Well ... I'm fully awake ... except for my brain
jnthn m: class C { method m($x) { } }; say C.^lookup('m').signature
camelia rakudo-moar 775271: OUTPUT«(C $: $x, *%_)␤»
Skarsnik why only on method?
jnthn That's the 3. The invocant, the $x, and the thing that swallows up unknown named args for interface consistency.
Because subs don't have invocants and don't participate in inheritance so have no need to solve the interface consistency problem.
Skarsnik it bothered me when I wrote the sanity type check routine in NC x) 16:09
b2gills I ask because it currently isn't backed by the same code 16:10
yoleaux 10:15Z <jnthn> b2gills: I'd hope so...
16:10 mohae left
abaugher moritz, that didn't do it either. Thanks anyway; time for me to dig into the source! 16:11
jnthn b2gills: Indeed. Interesting. 16:12
16:15 xinming joined 16:16 _mg_ joined 16:17 uruwi left, uruwi joined 16:18 Xor_ left, xinming_ left 16:19 gtodd left 16:21 ta0 left 16:22 mohae joined 16:23 uruwi left 16:28 musiKk joined, khw joined
tony-o ! 16:31
16:31 peter3 is now known as alpha123, kjs_ left
jnthn tony-o!!! :) 16:32
tony-o !! time to revamp my modules to use some of the new cool stuff people have done, specifically web::scrape
16:33 maslan left 16:34 rindolf left 16:36 greem joined, xenu_ is now known as xenu 16:37 average joined
average blogs.perl.org/users/zoffix_znet/20...guage.html 16:37
this was funny..
16:37 zacts_ left, kjs_ joined, dfcarpenterak joined 16:38 kjs_ left
masak average: you can write very readable Perl. you can write very unreadable Python. it's all a bit of a silly debate, really. ;) 16:42
average masak: it is very silly, yes 16:43
alpha123 masak: well the post is a bit tongue-in-cheek
average Sayre's law all over the place en.wikipedia.org/wiki/Sayre%27s_law
"In any dispute the intensity of feeling is inversely proportional to the value of the issues at stake."
alpha123 lol 16:44
that's a good one
16:44 rindolf joined
average so the Perl vs. Python debate is intense because it matters very little 16:44
masak indeed 16:45
the best any Perl or Python programmer can do is to think about the similarities between the two languages, and between programs written in each
in fact, in many situations, Perl and Python are *ridiculously* similar 16:46
alpha123 i would say the idiomatic way of doing things is rather different in each though 16:47
average I like PLEAC a lot pleac.sourceforge.net/
masak alpha123: sometimes, I guess
average I would like to see Perl6 in PLEAC
alpha123 average: hey thanks, that's a good resource for language design 16:48
average: are you familiar with rosettacode.org ?
average yes
masak agreed, it would be nice to be on PLEAC 16:49
[Coke] j 16:53
`~.
16:54 greem left
RabidGravy there, four of the six RabbitMQ tutorial examples work with Net::AMQP 16:54
jnthn RabidGravy++ 16:55
16:56 vendethiel joined 16:57 nakiro left 16:59 ashleydev joined, average left
Skarsnik what is RabbitMQ? 16:59
and nice job x)
17:01 abraxxa left
alpha123 so is there any way to set a value in a list and return a modified list instead of mutating it 17:01
like haskell lenses kind of 17:03
jnthn would first thing of doing it with slicing
*think
@a[^3], new-value, @a[4..*]
m: my @a = 1..10; say flat @a[^3], 42, @a[4..*] 17:04
camelia rakudo-moar 775271: OUTPUT«(1 2 3 42 5 6 7 8 9 10)␤»
17:04 ratagin joined, nemo joined
jnthn m: my @a = 1..10; say (flat .[^3], 42, .[4..*] given @a) # if you don't want to repeat @a 17:05
camelia rakudo-moar 775271: OUTPUT«(1 2 3 42 5 6 7 8 9 10)␤»
17:05 Xor_ joined, nemo is now known as Guest3204
RabidGravy Skarsnik, it's an AMQP messaging broker made in erlang 17:05
17:06 lichtkind joined
perigrin the API for the Perl6 RabbitMQ APIs made me grumpy compared to the python examples in teh RabbitMQ tutorials / docs. 17:06
sorry Perl5
lichtkind what the best way o get a deep copy of a data sructure?
perigrin RabidGravy: I look forward to seeing where you ended up :) 17:07
lichtkind i tried clone but got spooky action
17:08 ab6tract joined
jnthn Yes, clone is only shallow. What is the data structure? If it's some class of your own you can override clone. 17:08
17:09 zakharyas left 17:10 kjs_ joined
lichtkind array of array 17:13
nothing special
but if its an object attribut and i clone obj then i get full?
17:14 uruwi joined
jnthn Not unless you override clone to make that happen, no 17:14
lichtkind thanks
jnthn Hm, I'm surprised nothing on modules.perl6.org that does deep clone yet
17:15 ZoffixWin_ left
lichtkind like said it the first time i seriously use perl 6 17:16
17:16 perl6newbee joined
lichtkind but out libs grows nicely 17:17
masak lichtkind: if you know the structure beforehand, you can just call clone on all the parts. 17:19
lichtkind: otherwise, write your own deep-clone function
lichtkind i currently do so 17:20
masak i think you will enjoy Mathmatrix, we already have choleki and the 10 most important properties 5 norms etc
growing fast 17:21
17:21 musiKk left, ely-se joined
lichtkind curently banging my head against wall how to make a octave like pretty print for matrices in perl6 17:21
currently working title for this method is table 17:22
but currently one line will do since we have only AoA 17:23
RabidGravy perigrin, imo the P6 one that retupmoca started is much nicer than the python one, I've just been fixing it up so it will do everything that the tutorials need 17:25
17:31 SCHAAP137 joined, uruwi left
perigrin RabidGravy: interesting. 17:32
17:33 cc9989 left, Guest3204 is now known as nemo, AlexDaniel joined 17:34 virtualsue joined
dalek rl6-most-wanted: 74c6805 | (Herbert Breunung)++ | most-wanted/modules.md:
Update modules.md
17:35
lichtkind i added deep clone to github.com/perl6/perl6-most-wanted...modules.md
ab6tract o/ RabidGravy :) 17:37
was going to point out my bug report, but you've already added a label :D 17:38
RabidGravy to be honest if they are the only tests that are failing then it is likely that it will actually work, but that it does point to something weird with int sizes 17:41
ab6tract RabidGravy: my use case is pretty simple 17:42
i'd like to write a script which monitors a few directories in which audio files will be generated by my audio software
then spins off worker threads to create FLAC backup copies and store them in a centralized location 17:43
since it is easy to lose track, more or less, of musical output when it is spread across different DAWs and projects
17:44 molaf joined
ab6tract in the long run i'd like to turn it into a web app designed to triage this process, where i can listen to the changed/new files, rename them, tag them, ignore them, etc. then hit a 'process' button 17:44
but the watch-and-convert script seems like a nice blog post waiting to happen 17:45
.seen bluebear94 17:46
yoleaux I haven't seen bluebear94 around.
17:47 maslan joined, ELBeavers joined 17:48 ely-se left
RabidGravy strangely I was going to make a similar example for Tinky 17:48
[Coke] Tinky Winky? 17:49
17:50 dakkar_ left
jnthn haha...is that a play on POE? :) 17:50
RabidGravy github.com/jonathanstowe/Tinky
it is actually named after the tellytubbie :) 17:51
17:51 ELBeavers left
[Coke] HEE! 17:52
ab6tract RabidGravy: we should coordinate the posts 17:54
yours could be a "an even easier way" 17:55
i might forego Audio::Sndfile for the time being as well and try out Proc::Async 17:58
17:58 Actualeyes left
ab6tract since it is extremely cool that we get IO.watch for free in core, and likewise Proc::Async. so the first case of this example can be a ecosystem-free version 17:59
18:00 FROGGS joined
ab6tract RabidGravy: By the way, I began to suspect we might have convergingly similar use cases for Perl 6 code when you wrote Audio::Sndfile to begin with :) 18:01
18:02 kjs_ left 18:03 domidumont joined 18:07 pmurias left, sftf left 18:09 kjs_ joined
RabidGravy well my long term intention is to be able to make a radio station application that can replace Airtime 18:10
the Audio::* stuff is for the media management and playout parts 18:12
18:12 bowtie left, leont joined 18:13 bowtie joined, noganex joined 18:14 _mg_ left 18:15 Rotwang joined, smash_ joined, zengargo1le joined, johan_ joined 18:16 domm__ joined, flussenc1 joined, b2gills1 joined 18:17 ruoso_ joined, mkz_ joined, bowtie left, Shozan joined, petercom1and joined, ChoHag_ joined, tony-o_ joined 18:18 bjz_ joined, xiaomiao joined
RabidGravy perigrin / anyone else who might be interested github.com/jonathanstowe/Perl6-RMQ-Examples is the first four examples 18:19
18:19 bowtie joined 18:20 timo joined, timo is now known as Guest72620, sm0x_ joined, boegel|quassel joined 18:22 ruoso left, synopsebotimo left, tadzik left, DrPete_ left, sjohnsen left, johan left, Rotwang_ left, noganex_ left, bjz left, ChoHag left, luiz_lha left, AW3i left, zengargoyle left, adhoc_ left, flussence left, domm_ left, sm0x left, leat left, burnersk left, mkz left, petercommand left, SHODAN left, woodruffw left, boegel left, tony-o left, haircode left, smash left, timotimo left, Grauwolf left, bonsaikitten left, b2gills left, anshin left, yossarian joined, sjohnsen joined, luiz_lha joined 18:23 luiz_lha is now known as Guest11472 18:24 bowtie left, adhoc_ joined 18:25 haircode joined, burnersk joined 18:27 bowtie joined, au_ is now known as au 18:28 leat joined, AW3i joined, tadzik joined, b2gills1 is now known as b2gills, anshin joined, flussenc1 is now known as flussence, Grauwolf joined, _mg_ joined 18:31 DrPete_ joined 18:32 lokien_ joined 18:35 prammer left, DrPete_ left, burnersk left, haircode left 18:37 DrPete_ joined, burnersk joined, haircode joined 18:38 prammer joined
lichtkind yay 18:45
18:47 _Vi left 18:48 DrPete_ left, burnersk left, haircode left, DrPete_ joined, burnersk joined, haircode joined 18:50 spider-mario joined 18:52 prammer left
RabidGravy boom! 18:53
tony-o_ pow! 18:54
lichtkind :)
masak zowie! 18:56
18:56 mls left, mls joined 18:57 M-eternaleye left, M-eternaleye joined, raiph left, raiph joined 18:58 perl6newbee left, ab6tract left, ab6tract joined, firstdayonthejob joined 18:59 DrPete_ left, burnersk left, haircode left, lokien_ left, lokien_ joined, laz78 joined
mspo m: say "hello" 19:00
camelia rakudo-moar 775271: OUTPUT«hello␤»
19:01 sjohnson` is now known as sjohnson 19:02 lnrdo left
sjn r: say "oh noes" 19:06
camelia rakudo-jvm 6c0f93, rakudo-moar 775271: OUTPUT«oh noes␤»
19:09 leont left 19:10 cdg left
ab6tract m: say "net".comb.splice(*) 19:12
camelia rakudo-moar 775271: OUTPUT«Method 'splice' not found for invocant of class 'Seq'␤ in block <unit> at /tmp/4jfclYGxJU line 1␤␤»
ab6tract m: say "net".chars.splice(*)
camelia rakudo-moar 775271: OUTPUT«Method 'splice' not found for invocant of class 'Int'␤ in block <unit> at /tmp/uqXWO5Npx5 line 1␤␤»
ab6tract ah well :)
m: say "net".comb.split('e') # there we go 19:13
camelia rakudo-moar 775271: OUTPUT«(n t)␤»
19:20 prammer joined 19:21 leont joined 19:25 uruwi joined
dalek rl6-most-wanted: 89cfc7a | pmqs++ | most-wanted/modules.md:
Added Archive-SimpleZip
19:27
rl6-most-wanted: 0d5daf9 | (Zoffix Znet)++ | most-wanted/modules.md:
Merge pull request #13 from pmqs/patch-2

Added Archive-SimpleZip WIP
mspo ab6tract: chars returns the number of elements 19:28
19:28 marmay_ joined 19:30 jdv79_ is now known as jdv79 19:31 alber joined
TimToady hahainternet: the basic point to stress to your friend is that functions and methods really are unified within Perl 6, and that the primary distinction (apart from a bit of syntactic sugar for implicit self) is in the dispatchers 19:32
hahainternet TimToady: i'm continually impressed with the thought that's gone into Perl 6. My only concerns are that optimization will be long and hard and difficult to do 19:33
[Coke] hahainternet: actually, the architecture was designed to make them easier to implement. 19:34
moritz it has taken decades for Javascript to become fast :-)
[Coke] We'll find out in the next year or so if that holds up.
hahainternet [Coke]: i have heard this said, but my knowledge is not exensive enough to know anything about it really
and moritz the difference is that javascript is unfortunately all but mandatory, not that i want to throw any doubts. I'll continue using 6 regardless 19:35
19:35 n0tjack left
[Coke] no one told you? Perl 6 is also mandatory. :) 19:35
19:35 ELBeavers joined 19:36 Guest72620 is now known as timotimo
TimToady goes out to buy grandkids beach sandals... 19:36
timotimo RT #12345
19:37 n0tjack joined
Skarsnik :' 19:37
timotimo is synopsebot on the other side of a split or something?
19:38 boegel|quassel left, boegel joined 19:39 uruwi left, uruwi joined, prammer left
mspo once moar doesn't take 90MB to run hello world, you'll be onto something 19:39
19:39 uruwi left 19:40 uruwi joined, ELBeavers left
moritz but 89MB is OK? 19:40
19:40 uruwi left, uruwi joined
mspo moritz: something along the perl5 memory usage would be nice 19:40
lower, even
19:41 _mg_ left
moritz mspo: well, lots of things would be nice, but aren't a requirement for success 19:41
19:41 uruwi left
timotimo "lower" is kind of improbable 19:41
19:41 uruwi joined
mspo moritz: a definition of "success" would be a good start if you're going to say stuff like that ;) 19:41
moritz mspo: like, most java programs take up much more space just to start the VM, and yet java is wildly successful
19:42 uruwi left
moritz mspo: to me, sustained grows of the community and ecosystem is success 19:42
*growth
19:42 uruwi joined
mspo java proves that you can do anything if you're willing to type enough :) 19:42
timotimo mspo: fwiw, rakudo-moar currently takes less than 70 mb of ram to run hello world 19:43
19:43 uruwi left
mspo timotimo: I must be a little out of date, then 19:43
19:43 uruwi joined
timotimo potentially 19:43
masak would it be possible to map out where those 90 MB go at the moment?
timotimo seems like perl5 is at 4.5 megabytes of ram for hello world
19:43 uruwi left
masak maybe that could give a clue to what could be optimized away, if anything? 19:43
19:44 uruwi joined
masak or loaded lazily, or whatever 19:44
mspo run hello world in a loop and gcore it?
moritz masak: I'm only guess right now, but loading the setting is likely a big chunk of it
mspo setting?
19:44 uruwi left
skids What size do the GC arenas start at? 19:44
moritz also, most successful dynamic languages have a slower interpreter startup than perl5
timotimo well, i've looked over the things it lazily deserializes when it does hello world and a big chunk of objects - though not necessarily a big chunk of ram - is arrays that belong to our NFA objects for our grammar
19:44 uruwi joined
timotimo skids: the nursery starts at 4 megabytes 19:45
moritz mspo: the setting is all the built-in types and code
timotimo er. the nursery is always at 4 megabytes
it could be we keep around the other space always, since we'd otherwise just end up re-allocating it every few miliseconds anyway? i'm not sure.
19:46 _Vi joined
timotimo if somebody wants to lend us a hand for better ram usage at startup, there's branches that start implementing an op called "nfatostatelist", which would make these NFA arrays superfluous - they could then be created on-demand from the NFA objects themselves 19:46
but lifetime handling of those objects is a tiny bit hairy
mspo what was the command to manually compile? moar --dump ?
timotimo no, compiling stuff manually needs "perl6 --target=moar" or something 19:47
19:47 musiKk joined
timotimo =moar or =mbc or whatever 19:47
skids wonders if there is now such a thing as a page-table-backed lazy chunk alloc.
19:49 uruwi left
mspo perl6 --target=moar -o hello.pl6.moarvm hello.pl6 didn't work 19:49
[Coke] define "didn't work"
Hotkeys is there a way to uninstall a package with panda?
moritz last I looked, it only worked with modules
but that was pre-autoprecomp, even 19:50
mspo Cannot dump this object; no dump method
moritz --target=mbc
mspo ame 19:51
same
jdv79 do we have a post xmas r* and an msi?
yoleaux 18 Jan 2016 16:27Z <ugexe> jdv79: is it possible to bring the elastic search back up for your metacpan fork? its returning `Could not connect to '127.0.0.1:9200': Connection refused`
timotimo yes, it will only work with modules. however, every script is also a module
[Coke] jdv79: nope
19:51 lnrdo joined
timotimo so all you have to do is tell perl6 to load that script as if it was a module and supply a -e '' empty program to "use" the module with 19:51
jdv79 ugexe: sorry. ill fix it tonight.
timotimo RabidGravy: hey, have you seen synopsebot?
jdv79 [Coke]: why not? 19:52
RabidGravy nah
timotimo because the last thing synopsebot saw was a message from you about making a radio station application that can replace airtime
moritz jdv79: because 2015.12 wasn't R*able, so we're waiting for 2016.01
timotimo hm. after that, there's only one ping/pong. so something must have gone wrong anyways
jdv79 we should probably do something more reliable with the metacpan instance soon.
[Coke] jdv79: lack of volunteers. 19:53
jdv79 ok. well, we kinda want that for a study group that might meet on 2/6.
i guess i could try to gen something if official isnt out by then. 19:54
[Coke] there is a partial effort (nine++) at getting a safe release of 2016.01 that avoids any backward compatibility issues; once that is released, an R* based on that can be cut.
jdv79 ok 19:55
[Coke] Anyone wants to help, test out his branch, make sure it's clean against the 6.c branch in roast, see if there are other commits that are safe to pull from nom...
TL;DR - teh first release post christmas is -hard-. please be patient.
19:56 lnrdo left
[Coke] the first release with non-backwards compatible stuff also hard. 19:56
20:04 prammer joined 20:06 firstdayonthejob left, _mg_ joined 20:07 firstdayonthejob joined 20:08 prammer left
rindolf are backticks/qx the same as in perl 5? 20:08
because they are not mentioned here - doc.perl6.org/language/5to6-nutshell 20:09
20:09 prammer joined
Brock rindolf: nope, no backticks 20:09
20:09 Brock is now known as awwaiid
awwaiid rindolf: my $result = shell("shell stuff", :out).out.slurp-rest 20:10
jnthn qx/shell stuff/
rindolf awwaiid: ah.
Hotkeys I'm getting this error when running perl 6 with linenoise on windows 7 pastebin.com/qK2F2Qcj
any ideas what's wrong?
or rather how I can fix it 20:11
awwaiid oh right. I can't remember why I used the shell slurp setup instead of qx
jnthn Yeah, the qx way is a lot shorter for the common case. Which is why it's there. :)
rindolf awwaiid: thanks, so the document needs to be revised.
timotimo so, i was wondering about module installation and multi-version-at-same-time stuff
20:12 jast left
timotimo do we need to have some way to allow module writers to just "use My::Other::Module" without having to specify the exact version, api, authority in the module code? 20:12
awwaiid Hotkeys: I don't know much about windows, but what command are you executing there?
Hotkeys 'perl6'
timotimo like, if we load a module from a specific distribution, perhaps we could set a compile-time variable to hold info like "what's the current authority, version, ..." and also "what other modules are part of this same distribution"
20:13 domidumont left
Hotkeys which runs perl6.bat I believe 20:13
or perl6-m.bat
awwaiid Hotkeys: hmm interesting. Did you by chance explicitly install linenoise? ala 'panda install linenoise'
timotimo so that a "use My::Other::Module" will resolve to the exact same version, authority, api, ... as the one that the use statement is in if that Other::Module is part of the same distribution?
Hotkeys awwaiid: Yep
b2gills jnthn: we can't have Seq.Numeric doing the same thing as Seq.elems because the [Bag|Mix|Set] spec tests require that it be cached :(
awwaiid Hotkeys: cool. welp... you've reached the end of my knowledge here. quickly too. :(
Hotkeys awwaiid: it was telling me that I should so I did
timotimo because otherwise if you install versions 1 and 2 and you don't precompile version 1 before precompiling version 2, you could end up with version 1 use-ing modules from version 2 by accident 20:14
Hotkeys that or Readline
which i can't do on windows
no libreadline
timotimo unless the module author puts version info every-whooping-where in the source
bread line!
20:14 darutoko left
skids timotimo: A distribution affinity like that would only work if the module author locksteps all the modules -- though I guess if they are unversioned and in the same distro that would be the case. 20:15
b2gills rindolf: some think that qq:x// should be discouraged in favor of shell() and run()
Hotkeys I'm gonna try doing a reinstall of all the things
jnthn b2gills: Ah...that may be a sensible distinction then
Hotkeys maybe that'll fix linenoise
jnthn b2gills: I'd mis-read and not realized we didn't cache in the other case 20:16
timotimo i think i was using wrong words here
what i really mean is modules from the same git repository
things that get installed together when you "panda install ASingleThing"
b2gills jnthn: I think it is LTA though that +permutations(10) takes a long time, but permutations(10).elems returns instantly 20:17
hoelzro Hotkeys: that looks like the error FROGGS and I found when trying linenoise on Windows
let me know if a re-install fixes it
skids timotimo: if :version took an ordered list of preferences, then maybe a preference for same-distro could be pushed on the front of unversioned "use" statements.
Hotkeys alright
20:18 DrPete_ joined, burnersk joined, haircode joined
b2gills
.oO( perhaps there should be a 「sub prefix:<+> ( PermutationSeq $seq ) { $seq.elems }」 )
20:18
Hotkeys PermutationSeq?
b2gills currently it is an anon Seq 20:19
Hotkeys ah
timotimo first of all i want to know if this is really a problem or if i'm just imagining things
does this belong in a different perl6 sub-irc-channel?
rindolf how do I specify a type for a paramter in rakudo perl6 / moar? 20:20
skids timotimo: e.g. 'use "Foo"'; in a distro that was "v1.0" in the META would mean use "Foo" :ver(v1.0,*). But then we might want to restrict that to only apply to modules supplied by that distro.
moritz m: sub rindolf(Str $x) { say $x }; rindolf('foo')
camelia rakudo-moar 775271: OUTPUT«foo␤»
rindolf moritz: ah, thanks. 20:21
hahainternet just noticed the type graph on the Exception doc page, it's truly something to behold
timotimo yes, only modules from that distro. otherwise things will get VERY strange
hahainternet doc.perl6.org/images/type-graph-Exception.png is also a little unusable 20:22
jnthn b2gills: Well, the point of Seq was not to have a proliferation of *Iter types in userspace :)
b2gills Actually it might make sense for there to be a role that permutations/combinations/Range sequence that declares that you can call .count-only() on it without modifying it
jnthn b2gills: Maybe. But I think we can live with it for now. 20:23
b2gills It would of course add a requirement that you have to implement that method
timotimo hahainternet: yeah, mostly due to the way roles are interconnected in there, i think
hahainternet: if you can help us embed some interactive graphviz viewer or scrollable in-line image thing that doesn't suck, please go ahead
20:23 espadrine left
timotimo or a better alternative 20:24
20:24 _mg_ left
hahainternet timotimo: if there exists an interactive graphviz viewer or something like that that doesn't suck i would love to know about it :( 20:24
skids hahainternet: that's only going to get bigger over time, too.
20:24 nowan left
hahainternet i wish i had a good solution i'm afraid 20:25
skids wonders how a PCB layout utility would do with something like that
20:25 sno left
moritz skids: I'm only speculating, but most big layouts seem to have arrays of same or similar components lined up, so I guess there are some manual steps that allow you align them 20:27
timotimo hahainternet: i've searched a few things, but nothing amazed me enough
moritz also most modern layouts are dominated by a few pieces with monstrously many pins, which dictate most of the layout
hahainternet moritz: few people use the autorouter to do everything 20:28
skids moritz: oh for sure, but "monstrously many pins" does kinda describe some of those ovals. :-)
hahainternet and honestly, autorouters aren't really what you'd want i don't think
20:28 DrPete_ left, burnersk left, haircode left, hippie1 left
hahainternet well, on that note i'm also going to make my way off while freenode collapses a little more 20:29
moritz timotimo: around 2007 or so I even installed an online map viewing software to allow people to browse my network of GPG signatures. It still sucked.
timotimo ;(
20:29 buharin joined
buharin hello 20:29
:)
vendethiel hi
moritz timotimo: though things might have improved since then :-)
timotimo potentially
buharin I wonder know why Perl6 get less users than Swift?
timotimo nowadays, building usable user interfaces in javascript isn't as terrible of a task as it used to be
buharin: because larry wall isn't steve jobs 20:30
Skarsnik Switft is backed up by Apple x)
moritz buharin: probably because swift had a pre-made niche to which all alternatives (objective C) more or less sucked
timotimo also, you can use swift already to build apps for iOS, which makes you dollars "immediately"
skids My experience with such problems is they keep making progress in academic papers but as they do so they use even more esoteric symbology to the point where people that wouls actually care to apply it are too busy putting their eyes back in their sockets to start coding. 20:31
timotimo perl6 doesn't yet have a way onto phones to develop apps with
buharin with perl6 you will be always poor?
skids (that was, WRT routing/mapping/data categorization)
moritz buharin: there are already people making money with Perl 6; it's just not such a straight and mapped-out route as with iOS apps 20:32
skids (and half the papers are just proofs that "indeed, this problem is NP hard and/or complete")
mst also, the iOS ecosystem is a pretty terrible way to make a living at this point if you're directly selling things too 20:33
timotimo no, no. you don't sell things on mobile platforms
mst but, yeah, for the moment perl6 is more likely to be your secret weapon than a CV asset
masak buharin: what you should be asking is about the various ways Swift is playing catch-up with Perl 6 (which is still ahead) :)
timotimo you give your app away for free, show a big amount of advertisements and if you can get the users to accept your privileges on android also grab information about installed apps and such and relay that to other companies for money 20:34
moritz or use the app for presenting teaser content, and then making the money from selling the actual content through in-app purchases
masak buharin: but features are only interesting if you use them, and something tells me you haven't written your first Perl 6 program yet ;) 20:35
m: say "hi, buharin!"
camelia rakudo-moar 775271: OUTPUT«hi, buharin!␤»
masak now's your chance.
buharin masak, I write Perl5 programs
even last time
but I used to swift
masak ok, so no Perl 6 yet. got it.
I for one hope you try it! you'll be surprised. 20:36
buharin masak, thats not problem :D because I like it
20:36 gensym left
RabidGravy it's going to be great 20:36
buharin but got a long story :P
masak, if you want to know ;) maybe you can advice me smh
RabidGravy well apart from a small amount of Perl 5, C and the language that Liquidsoap uses I wrote almost exclusively Perl 6 last year 20:38
masak RabidGravy++
buharin sure thats greate
I program C++ then C then Python now I am Yocto recipe scripture in my job ;P and my cousin said me go learn swift it will be greate you will be rich etc. so I think about future and buy iMac start learn swift, and as I can tell you doing interfaces for iOS in some visual designers is so boring to me always some strange problem I got and I start thinking about Linux and Perl etc. but where can I get job in it? 20:41
thats a problem
money are killing good open source ppl
masak doesn't look that way from here
Ulti m: say 'a'.split('').perl 20:42
camelia rakudo-moar 775271: OUTPUT«("", "a", "")␤»
moritz buharin: if you find something you like doing, and are good at it, somebody will want to pay you for doing it for them. Then it's just a matter of finding them
20:42 ab6tract left
buharin moritz, I think you are true 20:42
20:42 DrPete_ joined, burnersk joined, haircode joined
Ulti why would anyone want the start and end empty strings? 20:42
buharin in 100% 20:43
moritz buharin: if you like Perl programming, for example, go to a Perl conference, and be surprised by how many companies are hiring
masak also, I find that money and open source have good ways nowadays to stay in symbiosis
RabidGravy yeah, that's my way of looking at it, too
buharin moritz, there are no Perl conference in my country
20:43 gensym joined
moritz buharin: where are you located? 20:43
buharin Perl is very unpopular here
in Poland
moritz buharin: there's a Polish Perl Workshop
buharin w8 I will check
RabidGravy nah, there are loads of people here from Poland
moritz buharin: at least there are were in 2013 and 2014 20:44
masak I've been to two Polish Perl Workshops. they were great
buharin masak, thanks ;-)
moritz buharin: also, there's YAPC::EU each year, which attracts folks from all over Europe
buharin masak, because last time I write a perl script in my company
Hotkeys Speaking of geography, any canadians here? 20:45
buharin and I told it is multitool I write smh like tool for things which I repeat during dev many times
masak buharin: you should try to find other Perl people (or other open-source people) in your local area
moritz buharin: I was at YAPC::EU 2013 in Kiev, and it became a running gag that nearly every speaker concluded his or her talk with "and by the way, we're hiring"
buharin and the guy said me ask someone here who like perl
masak moritz: that gag spilt over a little to the subsequent YAPC::Europes too
20:45 maslan left
buharin and he said if no-one says yes then stop writing in perl because it will be unmaintainable 20:46
Hotkeys are you saying I should move to europe if I want a perl 6 job
RabidGravy this year I am going to persuade a company that they want to use Perl 6
buharin RabidGravy, how to do it? 20:47
I talk with guy in my company and he says that perl is unreadable
no-one want to learn it
better write perl
shell is better then perl
Hotkeys Perl 6 is less line noise than perl 5 I've heard 20:48
although I never really used perl 5
alpha123 perl5 wasnt really linenoisey unless you made it that way
moritz buharin: for every language out there, there are people bashing it. PHP? Ugly, unsafe. Perl? Read-only. JS? don't even get me started. Haskell? Academia only. And so on
buharin moritz, I don't like PHP too
alpha123 yeah, the only language that's worthy of real bashing is PHP 20:49
buharin but supporting only main companies languages is worse
you know for example D lang
moritz buharin: the best thing you can do is write software that gets things done, and let the haters hate
buharin no-one head about it till one guy start to promote it
alpha123 remember when D was relevant?
yeah me neither
20:49 lokien_ left 20:50 ely-se joined
buharin and what else sucks in os x 20:50
masak at our company, we have been using Perl 6 for years
moritz I don't like PHP either, but I acknowledge that some of most widely used blogging and general web platform is written in PHP
buharin I use it first time but I can't run iOS dev on another platform
masak it's one of our (no-so-secret) business advantages
moritz I'd love to see something comparable in Perl 6 :-)
20:50 kjs_ left
alpha123 also 90% of the web's security vulnerabilities normalized for language deployments are written in PHP! 20:51
SmokeMachine___ m: my %a; my @b = 1, 2, 3; %a{||@b} = True; say %a.perl
camelia rakudo-moar 775271: OUTPUT«{"1" => Bool::True, "2" => Any, "3" => Any}␤»
buharin and I got right now iMac and I cant install Linux here some strange problems
ely-se PHP is my favourite dynamically typed programming language, because it doesn't allow for abominations like monkey patching.
buharin why the fuck ppl like these systems
SmokeMachine___ shouldn't it be {1 => {2 => {3 => Bool::True}}} ?
buharin confused 20:52
20:52 nowan joined
masak buharin: I can only speak for myself, but I find Linux very nice and easy to work with. it's the system that frustrates me the least 20:52
buharin: then again, I'm not trying to run it on an iMac :P
moritz m: my %a; my @b = (1; 2; 3;); %a{||@b} = True; say %a.per
camelia rakudo-moar 775271: OUTPUT«Method 'per' not found for invocant of class 'Hash'␤ in block <unit> at /tmp/AX0UgLK9lO line 1␤␤»
moritz m: my %a; my @b = (1; 2; 3;); %a{||@b} = True; say %a.perl
camelia rakudo-moar 775271: OUTPUT«{"1" => Bool::True, "2" => Any, "3" => Any}␤»
20:53 virtualsue left, nowan left, DrPete_ left, burnersk left, haircode left
awwaiid I heard there is a new mersenne prime. Unfortunately this is taking a while to run: say "YEP!" if (2⁷⁴²⁰⁷²⁸¹-1).is_prime 20:53
buharin masak, yeah but I got Linux notebook but I do a shit and buy iMac now I got nothing
masak, that way I listen my million cousin to make a cash
:]
masak, he said me you use vim emacs you are linux conservator 20:54
20:54 xpen joined
buharin only on Xcode only on iMac you can do a big money so I am poor at the moment quite I listen him ;s 20:55
and right now I think thats a shit
Hotkeys hmm 20:56
moritz buharin: you can make money by providing value to others, and charging money for that. iOS isn't the only platform by far that allows that
Hotkeys rakudobrew couldn't install the latest build for some reason
just restarted lets see if that fixes
buharin moritz, I event not earning 1k$ here in poland
cause the companies that come here pay us less than in US or UK etc. 20:57
so I think thats a problem
huf yes. but they go there *because* they can pay less
buharin not that I want to keep open source 20:58
masak buharin: it's partly a matter of familiarity as well. I'm very familiar with the Linux toolset, from bash to vim/Emacs to LaTeX to Perl. this helps me solve problems quickly. other platforms approximate but do not quite reach that level of convenience
SmokeMachine___ moritz: should be {1 => {2 => {3 => Bool::True}}}, right? 20:59
moritz SmokeMachine___: possibly; I'm not very confident in this area
20:59 xpen left
buharin masak, do you think I can turn back my career? 21:00
and start learn Perl on iMac?
SmokeMachine___ design.perl6.org/S09.html#Multidim...nal_arrays
skids A lot of multidim is still yet to be implemented.
masak buharin: sure, why not
buharin: "turn back" sounds too drastic, though
SmokeMachine___ m: my @a = 1, 2, 3; my @b; @b[||@a] = True; @b.perl.say 21:01
camelia rakudo-moar 775271: OUTPUT«[Any, Bool::True, Mu, Mu]␤»
masak buharin: think of it as learning new skills, and finding out which tools you like
SmokeMachine___ same "problem" with array...
buharin masak, I play with many things
SmokeMachine___ m: my @a; @a[1;2;3] = True; @a.perl.say 21:02
masak SmokeMachine___: that last one looks right to me
camelia rakudo-moar 775271: OUTPUT«[Any, [Any, Any, [Any, Any, Any, Bool::True]]]␤»
21:02 geraud left
buharin masak, from web dev in Java to some Go simple website C, C++, iOS even a bit android 21:02
RabidGravy buharin, I learn new things all the time, I've been programing for a living for some twenty five years and have learned maybe twenty languages
SmokeMachine___ masak: the@a[1;2;3] one?
jnthn The || interpolator didn't make it into 6.c
buharin the one thing which I omit it is a game dev
xD
RabidGravy, ya like me 21:03
SmokeMachine___ jnthn: that explains the problem!
buharin RabidGravy, but I don't feel really good in one
masak SmokeMachine___: no, the `my @a = 1, 2, 3; my @b; @b[||@a] = True` one
buharin RabidGravy, even in my work I do multiple things
SmokeMachine___ but using it don't throw a error either...
moritz buharin: maybe you should stop focusing on tools so much, and learn more about the techniques?
SmokeMachine___ masak: I don't think that response was correct... 21:04
buharin moritz, what do you mean?
moritz buharin: algorithms, architecture, design patterns
buharin moritz, I think about it last time
moritz buharin: best practise, the fundamentals of your infrastructure, how the protocols work that you use (TCP, DNS, HTTP, ...)
buharin moritz, what exactly I think it was to learn well techniques with some language which I really love
21:05 hankache joined
rindolf thanks for your help , everyone. 21:05
moritz buharin: yes, an environment you love really helps
Hotkeys hmm
SmokeMachine___ jnthn: is there any idea in what version will it be implemented?
RabidGravy and develop a personal pattern book of architectural stereotypes that work will in real world applications
Hotkeys lets see if i can build 2015.12 or if this is a me problem
buharin moritz, as about TCP DNS .. and so on what you mean? 21:06
moritz buharin: if you develop for the web, all those protocols are used; it can help immensely if you know how they work 21:07
buharin what about perl is it only for web?
jnthn SmokeMachine___: That and partially dimensioned views are something I'd hope to get into 6.d
moritz buharin: no
buharin but as I look for job only web was
SmokeMachine___ jnthn: thanks!
hankache good evening #perl6 21:08
Hotkeys jnthn: if you get partially dimensioned views in I will love you forever 21:09
hoelzro Hotkeys: did Linenoise end up working for you?
Hotkeys hoelzro: I'm currently having trouble just installing p6
hoelzro =/
Hotkeys so i'm diagnosing that now 21:10
I'm going home soon so I'll see if it's a machine issue or a windows issue
(I'll try building on my desktop)
21:10 prammer left
hoelzro ok 21:10
Hotkeys but I'm currently building 2015.12
to see if it's a recent issue
or just a me issue
21:10 geraud joined
Hotkeys if it's a recent issue that isn't on my end then I get to do the fun thing where I try every build in between systematically to find where the problem is 21:13
yep
21:13 cdg joined
Hotkeys 2015.12 worked fine 21:13
21:13 lokien_ joined
Hotkeys gonna head home now though, I'll start the fun in half an hour or so 21:14
hoelzro good luck Hotkeys
cxreg2 did pl6anet recover a backup? 21:16
21:17 cxreg2 is now known as cxreg, colomon left
AlexDaniel Ulti: dunno. But if you don't want those then just use comb? 21:18
m: say ‘,one,two,three,’.split: ‘,’
camelia rakudo-moar 775271: OUTPUT«( one two three )␤»
AlexDaniel m: ‘,one,two,three,’.split(‘,’).perl.say 21:19
camelia rakudo-moar 775271: OUTPUT«("", "one", "two", "three", "")␤»
AlexDaniel Ulti: it kinda just makes sense. You have an empty string before your string and after it, so therefore you get these elements. Just like in this case ↑
oh nice, completely numeric commit hash 21:21
21:26 maslan joined 21:29 marmay_ left 21:30 molaf left 21:33 hankache left
leont S05 mentions a «<it($threshold)>» regex syntax, but doesn't explain how/if you can define rules that take arguments. Anyone have pointers? 21:34
SmokeMachine___ how can I declare a variable of type Pair where the key will be a Array of Str and the Value will be a Str? 21:36
21:37 addison joined 21:38 rindolf left, jvcakg left
hoelzro leont: Perl6::Grammar does it quite a bit 21:39
rule it($threshold) { ... } should do the trick
ely-se SmokeMachine___: I think you have to make a subset of Pair.
Pair isn't a parameterised role
21:40 jme` left
SmokeMachine___ ely-se: :( 21:41
ely-se m: subset StrsToStr of Pair where { .key ~~ Array && .value ~~ Str }; my StrsToStr $p = ["a", "b"] => "c"; 21:42
camelia ( no output )
ely-se don't know how to do they "array *of strings*" part
b2gills SmokeMachine___: you mean 「my Pair $v where :( Array :key($), Str :value($) );」
21:42 jme` joined
ely-se so many sad smileys 21:42
timotimo you have to either force the user to declare the array as Array[Str] or you have to match all(.key.list) ~~ Str 21:43
SmokeMachine___ b2gills: does that do the trick?! 21:44
b2gills m: my Pair $v where :( Array[Str] :key($), Str :value($) ) = Array[Str]( [''] ) => ''; say $v
camelia rakudo-moar 775271: OUTPUT«[] => ␤»
SmokeMachine___ m: my Pair $v where :( Array[Str] :key($), Str :value($) ) = [<bla bye bli>] => 'test'; say $v 21:45
21:45 sno joined
camelia rakudo-moar 775271: OUTPUT«Type check failed in assignment to $v; expected <anon> but got Pair␤ in block <unit> at /tmp/OGwOqmqIaX line 1␤␤» 21:45
SmokeMachine___ m: my Pair $v where :( Array[Str] :key($), Str :value($) ) = Array[Str]([<bla bye bli>]) => 'test'; say $v 21:46
b2gills SmokeMachine___: you have to coerce in that case, or accept any Array
camelia rakudo-moar 775271: OUTPUT«[bla bye bli] => test␤»
SmokeMachine___ b2gills: that looks great! thanks!
21:47 nowan joined, colomon joined, DrPete_ joined
b2gills SmokeMachine___: I don't know if the Signature :(…) version is more or less performant than 「my Pair $v where .key ~~ Array[Str] and .value ~~ Str;」 21:49
SmokeMachine___ b2gills: thanks! 21:52
leont How can I store a method in a variable?
21:52 shmibs_ is now known as shmibs 21:53 lnrdo joined
SmokeMachine___ m: my Pair $v where :( Array[Str(Any)] :key($), Str :value($) ) = [<bla bye bli>] => 'test'; say $v 21:53
camelia rakudo-moar 775271: OUTPUT«Type check failed in assignment to $v; expected <anon> but got Pair␤ in block <unit> at /tmp/vciYX2DpTs line 1␤␤»
21:54 skids left
SmokeMachine___ m: my Pair $v where :( Array[Any(Str)] :key($), Str :value($) ) = [<bla bye bli>] => 'test'; say $v 21:54
camelia rakudo-moar 775271: OUTPUT«Type check failed in assignment to $v; expected <anon> but got Pair␤ in block <unit> at /tmp/wIm9JZMDU_ line 1␤␤»
21:55 bjz_ left
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say} f("bla") 21:56
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dVba70qZJM␤Strange text after block (missing semicolon or comma?)␤at /tmp/dVba70qZJM:1␤------> 3sub f(Str(Any) $a){$a.WHAT.say}7⏏5 f("bla")␤ expecting any of:␤ infix␤ infix st…»
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say}; f("bla")
camelia rakudo-moar 775271: OUTPUT«(Str)␤»
21:56 n0tjack left
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say}; Any $b = "test"; f($b) 21:56
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pWP0CMmM9F␤Two terms in a row␤at /tmp/pWP0CMmM9F:1␤------> 3sub f(Str(Any) $a){$a.WHAT.say}; Any7⏏5 $b = "test"; f($b)␤ expecting any of:␤ infix␤ infix stopper␤ state…»
SmokeMachine___ m: sub f(Str(Any) $a){$a.WHAT.say}; my Any $b = "test"; f($b)
camelia rakudo-moar 775271: OUTPUT«(Str)␤»
21:58 lnrdo left, prammer joined 21:59 kaare_ left 22:00 laz78 left 22:01 burnersk joined, haircode joined
Ulti AlexDaniel by that logic though you would expect 'ab'.split('') to have an empty string delimited by empty strings in the middle of a and b but there isn't 22:01
22:02 colomon left
AlexDaniel m: say ‘a,,,b’.split(‘,’).perl.say 22:02
camelia rakudo-moar 775271: OUTPUT«("a", "", "", "b")␤True␤»
22:02 colomon joined, Skarsnik left
AlexDaniel Ulti: correct, but then it would be an infinite amount of empty strings… 22:02
Ulti exactly
thats why I dont like it
'' is a special case
its like the empty set 22:03
AlexDaniel Ulti: you don't like that it doesn't hang? But honestly I also fail to see why would anybody want to use ‘’ as a delimiter
22:03 raiph left
Ulti also its a strange thing to "fix" from Perl 5 expectations of split 22:04
AlexDaniel because split is infinitely more memorable and obvious a method than comb
22:04 laz78 joined
b2gills moritz: I figured out what the problem was with the permutations PR, and fixed it. 22:04
Ulti frakly split with no arguments should imply the same as comb with no arguments :S 22:05
at least thats what I expect even if its not what I get
[Coke] Do you still have that expectation after reading the docs?
b2gills m: say 'abab'.split('a').perl; # Ulti: this is why
camelia rakudo-moar 775271: OUTPUT«("", "b", "b")␤»
Ulti split join is unaffected by split with extra empty strings but split with zip ends up being super unexpected 22:06
b2gills Ulti: if you don't want the empty strings use .comb()
Ulti b2gills: I still dont see how that really explains why
buharin what book should I use for perl6?
22:07 colomon left
[Coke] buharin: there is no book yet. 22:07
AlexDaniel buharin: doc.perl6.org… not a book but yeah
buharin so can I use perl5 book
for perl6?
[Coke] nope.
AlexDaniel buharin: partially
[Coke] 6 ain't 5.
22:07 colomon joined
buharin oh okay ;s 22:07
Ulti m: say 'ababa'.split('a').perl; #why no terminating ''?
camelia rakudo-moar 775271: OUTPUT«("", "b", "b", "")␤»
[Coke] AlexDaniel: I think using the 5 book to learn 6 would be a very bad idea.
Ulti whoa
b2gills Ulti: .split('') could very well produce an infinite list of empty strings and not be incorrect
Ulti thats different from P5 22:08
also
AlexDaniel buharin: by “partially” I mean that perl5 knowledge definitely helps when learning Perl 6, but other than that not so much
[Coke] Ulti: welcome to 6?
Ulti sure but I dont see the actual /use case/ for this in 6
[Coke] AlexDaniel: I think Ulti would disagree that knowing how 5 works helps at this point. :)
Ulti not everything in 5 was broken
[Coke] Ulti: that's the spec.
Ulti sure but I'm asking why so I can see the light
AlexDaniel .u light 22:09
yoleaux U+0FC1 TIBETAN CANTILLATION SIGN LIGHT BEAT [So] (࿁)
U+23BE DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT [So] (⎾)
U+23BF DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT [So] (⎿)
22:09 captain-adequate joined
AlexDaniel .u bulb 22:09
yoleaux U+1F4A1 ELECTRIC LIGHT BULB [So] (💡)
b2gills Perl 6 doesn't throw things away like Perl 5 did
22:09 ZoffixWin_ joined, ZoffixWin_ left, ZoffixWin_ joined
[Coke] If you really wanted, you could dig into the github specification and spectest repo and see what the history associated with that change was. 22:09
AlexDaniel I think that I remember some boring discussion about it…
[Coke] but we're talking about 15 years of design and development here.
22:10 captain-adequate left, bjz joined
AlexDaniel m: split ‘,’, ‘hello,world’, ‘foo,bar’ 22:10
camelia rakudo-moar 775271: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5foo,bar' (indicated by ⏏)␤ in block <unit> at /tmp/S_09P2XQuL line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/S_09P2XQuL line 1␤␤»
Ulti ok I have it >:P how about split(*) does Whatever I want :P 22:11
AlexDaniel m: split ‘’, *
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BnfdKpQ237␤Calling split(Str, Whatever) will never work with declared signature ($pat, Cool $target, |c is raw)␤at /tmp/BnfdKpQ237:1␤------> 3<BOL>7⏏5split ‘’, *␤»
Ulti yeah its wide open for it
[Coke] m: say 'ababa'.split('a', :skip-empty).perl;
Ulti :D
camelia rakudo-moar 775271: OUTPUT«("b", "b")␤»
22:11 burnersk left, haircode left
[Coke] So maybe if you don't like the default, use that. 22:11
AlexDaniel m: say 'ababa'.split('', :skip-empty).perl;
camelia rakudo-moar 775271: OUTPUT«("a", "b", "a", "b", "a")␤»
Ulti [Coke] but thats so much extra typing for what is quite clearly the most common use case
:keep-empty
22:12 captain-adequate joined, burnersk joined, haircode joined
[Coke] Ulti: there is no way this is changing for 6.c 22:12
22:12 laz78 left
AlexDaniel m: say ''.split('', :skip-empty).perl; 22:12
camelia rakudo-moar 775271: OUTPUT«()␤»
22:12 Skarsnik joined
AlexDaniel [Coke]: there is a way to change that in 6.d 22:12
22:12 captain-adequate left
AlexDaniel but honestly, I don't see any problem with it… 22:12
[Coke] If you want to argue for a change in 6.d, that's something. Otherwise I don't know what we can tell you unless whoever made the decision happens to see this in backscroll.
Ulti well I've been using P6 for... 6 years and I just managed to actually use split wrong for the first time just because join swallows the '' just fine so you never notice and can cargo cult from P5 knowledge
[Coke] AlexDaniel: sure, in the next spec version, it's changeable.
22:13 colomon left
Ulti but something like Z=> to make a hash kills you 22:13
I guess what I'd actually argue for is no args split just splits into a list of the characters that exist in the string based on grapheme cluster o___O specifically 22:14
[Coke] Ulti: that's .comb 22:15
Ulti whatever star also kind of makes sense it would do the same
[Coke]: sure
but I want to use the word split
because wtf
[Coke] m: say "abcde".split(*).perl;
camelia rakudo-moar 775271: OUTPUT«Cannot call split(Str: Whatever); none of these signatures match:␤ (Cool $: Regex:D $pat, $limit = { ... };; :$all, *%_)␤ (Cool $: Cool:D $pat, $limit = { ... };; :$all, *%_)␤ (Str:D $: Regex:D $pat, $parts = { ... };; :$v is copy, :$k, :$kv…»
[Coke] Ulti: I'm sorry this doesn't make you happy. 22:16
RabidGravy I don't think I've used split // more than twice in Perl in twenty years
Ulti lol
22:16 meth joined
[Coke] but like I said, there's no way it can change without a new spec release. 22:16
m: use Inline::Perl5;
camelia rakudo-moar 775271: OUTPUT«===SORRY!===␤Could not find Inline::Perl5 in:␤ /home/camelia/.perl6/2015.12-214-g775271d␤ /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␤ …»
[Coke] star: use Inline::Perl5;'
camelia star-m 2015.09: OUTPUT«===SORRY!===␤Could not find Inline::Perl5 in any of:␤ file#/home/camelia/.perl6/2015.09/lib␤ inst#/home/camelia/.perl6/2015.09␤ file#/home/camelia/star-2015.09/share/perl6/lib␤ file#/home/camelia/star-2015.09/share/perl6/vendor/lib␤ file#/home…»
AlexDaniel m: say ‘hello’.split(/‘’/).perl 22:17
[Coke] ah well.
camelia rakudo-moar 775271: OUTPUT«("", "h", "e", "l", "l", "o", "")␤»
[Coke] heading out. later, everyone.
Ulti have fun
22:18 bearder joined
Ulti RabidGravy in bioinformatics I split strings into characters more than I do any other operation, more than addition 22:18
b2gills m: say ‘hello’.comb(/./).perl
22:18 raiph joined
camelia rakudo-moar 775271: OUTPUT«("h", "e", "l", "l", "o").Seq␤» 22:18
22:18 bjz left
mspo substr-as-a-loop is probably faster than split anyway 22:18
AlexDaniel Ulti: then why not use comb!
or why not define your own sub
or even your own operator
RabidGravy Ulti, I'm not saying there is no use for it, just the kind of things I do I've never found a need for it :) 22:19
b2gills .comb is going to be faster than .split('') anyway
mspo your own operator sounds most fun
zhmylove Hi all! I'm just compiled 2015.12 rakudo, and it takes 0m2.074s against perl5 0m0.013s to execute a file with 1000 lines ``print "JAPH\n";'' Am I doing smth wrong? 22:20
b2gills zhmylove: run it twice
zhmylove b2gills: ? kind of joke?
Ulti .comb for me always brings up the thoughts combine combinatorial etc. when programming not "its like a hair comb" 22:21
mspo zhmylove: it cached bytecode into ~/.perl6, is why he's saying that
zhmylove: but it's way slower
zhmylove mspo: how would I run it twice?
mspo: perl6 /tmp/file.p6 && perl6 /tmp/file.p6 ?
22:21 xdoctor joined
mspo zhmylove: just run it again exactly like you did 22:21
zhmylove: if you were getting the compile-to-bytecode part it would be slower 22:22
AlexDaniel mspo: it sounds slow actually
22:22 burnersk left, haircode left
AlexDaniel mspo: but yes, fun too 22:22
Ulti b2gills why is exactly why I would argue for split(*) and split() to literally call .comb
mspo AlexDaniel: the operator or substr?
masak 'night, #perl6
AlexDaniel mspo: split operator
mspo AlexDaniel: why? are operators slow like grammars?
AlexDaniel mspo: no, they just add up to the startup time 22:23
mspo perl6: the fast parts -- going to be published :)
AlexDaniel mspo: significantly
camelia rakudo-jvm 6c0f93, rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Preceding context expects a term, but found infix : instead␤at /tmp/tmpfile:1␤------> 3he fast parts -- going to be published :7⏏5)␤»
AlexDaniel haha
zhmylove mspo: 2,07 real, 2,07 real, 2,07 real
mspo zhmylove: so then it's right
zhmylove mspo: 2 seconds to parse+compile+execute just 1000 of prints ??? 22:24
mspo I can try it on my machien if you like
it's very slow
AlexDaniel yeah, my machine is not that fast too. I'd be happy to try it
zhmylove mspo: Yes, please try it, if it's not a problem for you
22:25 Amendil joined 22:26 Amendil left
RabidGravy m: role Splitty { multi method split(Whatever) { self.comb(/./) }}; my $a = "abcdefgh" but Splitty; say $a.split(*); 22:26
camelia rakudo-moar 775271: OUTPUT«(a b c d e f g h)␤»
22:26 Amendil joined 22:27 meth is now known as teachmeUNIX
AlexDaniel Interestingly, it actually takes goddamn two seconds!!? 22:27
mspo or me
zhmylove: 3.4s for me
I'm usig a tiny vm :)
b2gills RabidGravy: .comb() is a different method than .comb(/./), and likely slower
22:28 ely-se left
AlexDaniel 「say」 is a little bit faster but not much 22:28
pmqs_ Is it possible to match against a low-level type (int8, int32 etc)? Here is what I've tried
ZoffixWin_ zhmylove, 2.39s on my 1-core Linode box. Seems about right. There are a bit of points to clarify in your comparison against Perl 5: (a) Perl 5 had over a decade to optimize itself (especially with the recent drastic improvements in the .20+ versions), while Perl 6 is a brand new language whose stable version is not even a month old.. But more importantly, it's not *just* 1000 prints. You're getting the type system and all the built ins. Barebones
Perl 5 doesn't include that. Try importing Moose along with several List, String, and Math modules.
pmqs_ m: my int8 $a; do given $a { when int8 {"int8"}; when Int {"int"}; default {"default"} }
camelia ( no output )
mspo weirdly printing just one line only takes .5s
22:28 bearder left
Skarsnik I am worried there is no new issue on DBIish since x-mas x) 22:28
22:28 maslan left
AlexDaniel and 10_000 prints takes 16.5 seconds! Almost linearly! 22:29
Skarsnik: sure, because I haven't submitted anything yet :D
pmqs_ m: my int8 $a; say do given $a { when int8 {"int8"}; when Int {"int"}; default {"default"} }
camelia rakudo-moar 775271: OUTPUT«int␤»
ZoffixWin_ m: print "JAPH" for 10_000; say now - INIT now;
camelia rakudo-moar 775271: OUTPUT«JAPH0.0021305␤»
Skarsnik hm
b2gills pmqs_: You can't use a native type in a when statement or the right side of ~~
AlexDaniel ZoffixWin_: no it is actually slow and it actually depends on the source code 22:30
ZoffixWin_: that's a real issue
RabidGravy Skarsnik, I've seen few issues on anything really
ZoffixWin_ AlexDaniel, hence my first point :)
Skarsnik RabidGravy, for me it mean a shortage of users x)
ZoffixWin_ AlexDaniel, well, actually what do you mean "actually slow"?
mspo --optimize=3 brings mine down a few 1/10th of a second 22:31
Skarsnik for output you have to take into account the term speed
mspo Skarsnik: I'm > /dev/null
Skarsnik oh oki
b2gills m: multi t (int8) {8}; multi t (Int) {Inf}; say t my int8 $ # pmqs_
camelia rakudo-moar 775271: OUTPUT«8␤»
pmqs_ b2gills, is there a way to get the string representation for the type? I'm looking for a way to lookup an action for a set of types
Skarsnik it's because int8 does not have Accept? 22:32
mspo I'm surpised that it isn't all startup time
AlexDaniel ZoffixWin_: 16 seconds for 10_000 prints is slow, there's no need for a debate about that…
mspo it's actually the execution of "print" is slow
Skarsnik m: say int8.^name
camelia rakudo-moar 775271: OUTPUT«int8␤»
zhmylove Guys, thank for your investigation. Errgh :(, going to wait some decades before migration of the production to p6...
b2gills pmqs_: int8 is not really a Type the way that Int is
mspo zhmylove: no one will tell you moar is fast right now
zhmylove: check out the memory usage for that script too :) 22:33
AlexDaniel zhmylove: honestly, it looks like there is some problem with that specific case. I have done a bunch of rather complex stuff and it worked just fine
22:33 colomon joined
pmqs_ b2gills, that sounds a bit crazy. 22:33
mspo 'say' is even slower! 22:34
b2gills zhmylove: If the rate of optimizations it has currently undergone it will surpass Perl 5 in less than 5 years ( not that I expect that necessarily )
AlexDaniel zhmylove: but sure, if you need rather good performance then perl 6 is probably not the best choice right now, if only you don't plan to rewrite some stuff in C to get amazing performance :)
zhmylove Hmmm, is there anything like perlcc for p6? :)
Skarsnik not yet? 22:35
b2gills pmqs_: The only reason int8 and friends exist is so that very bare metal optimizations are possible
ZoffixWin_ AlexDaniel, errr, right, I missed the 16 seconds bit... FWIW, I'm still waiting for it to finish on my box :o
Oh, wait, I messed up...
RabidGravy It's say that is slow
mspo for what it's worth using a loop () { print } is much faster
AlexDaniel mspo: of course, but that's not the point 22:36
b2gills zhmylove: I've heard on the channel a while back that someone uses Perl 6 for testing C code
AlexDaniel b2gills: it was me, I do, yes
pmqs_ b2gills, as a relative newcomer to perl6, that sounds arbitrary.
RabidGravy m: my $a; $a++ for ^250000; say now - INIT now # approximately the same as 1000 says
camelia rakudo-moar 775271: OUTPUT«0.1437352␤»
ZoffixWin_ 0.207s for Perl 5 and 18.175s for Perl 6 on my Linode box.. :o
DrForr grouses at RT.
pmqs_ m: my int8 $a; say do given $a.^name { when 'int8' {"int8"}; when "Int" {"Int"} }
camelia rakudo-moar 775271: OUTPUT«Int␤»
b2gills m: say Int ~~ Any; # pmqs_:
camelia rakudo-moar 775271: OUTPUT«True␤»
mspo it must be looking up "print" each time 22:37
Skarsnik err that weird
ZoffixWin_ m: say 18.175/0.207
camelia rakudo-moar 775271: OUTPUT«87.801932␤»
ZoffixWin_ yikes
Skarsnik m: say int8.WHAT
camelia rakudo-moar 775271: OUTPUT«(int8)␤»
AlexDaniel what's the right [TAG] for RTs about optimization?
zhmylove Some texts recommends using Rakudo-JVM. But it's java unlikely
Skarsnik pmqs_, there is something wrong here
AlexDaniel e.g. we have [LTA] and [BUG] and stuff like that, I kinda expect to see bug reports about rakudo being too slow with a similar tag 22:38
b2gills Rakudo-JVM is not up-to date
Skarsnik m: my int8 $a; say $a.WHAT
camelia rakudo-moar 775271: OUTPUT«(Int)␤»
AlexDaniel or should I just come up with something?
Skarsnik m: my int8 $a; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«Int␤»
Skarsnik m: my int8 $a = 8; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«Int␤»
AlexDaniel [SLOW] ?
Skarsnik That so wrong 22:39
pmqs_ Skarsnik, assume WHAT should give int8 ?
Skarsnik yes
AlexDaniel Skarsnik: I think that there was a bug report for that. Try searching for it :)
Skarsnik m: my int18 $a = 8; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5===␤Type 'int18' is not declared. Did you mean any of these?␤ int16␤ int8␤␤at /tmp/LvlnxVo0dS:1␤------> 3my int187⏏5 $a = 8; say $a.^name;␤Malformed my␤at /tmp/LvlnxVo0dS:1␤------> 3my7⏏5 int18 $a = 8; say …»
b2gills pmqs_: there is no way that WHAT **can** give int8 (since there is no type object of type int8)
Skarsnik m: my int16 $a = 8; say $a.^name; 22:40
camelia rakudo-moar 775271: OUTPUT«Int␤»
AlexDaniel m: say int8
camelia rakudo-moar 775271: OUTPUT«(int8)␤»
ZoffixWin_ It's all in compilation too.
17 seconds before it told me I got a syntax error
AlexDaniel b2gills: okay but what's that? ↑
Skarsnik m: my int16 $a = 8; say $a.REPR;
camelia rakudo-moar 775271: OUTPUT«P6opaque␤»
Skarsnik this is wrong too
pmqs_ AlexDaniel, will take a look & see if there's a ticket
Skarsnik m: my int16 $a = 8; say int16.REPR; say $a.REPR; 22:41
camelia rakudo-moar 775271: OUTPUT«P6int␤P6opaque␤»
AlexDaniel zhmylove: thanks for reporting this issue. I'll submit a ticket
Skarsnik m: my int $a = 8; say int16.REPR; say $a.REPR;
camelia rakudo-moar 775271: OUTPUT«P6int␤P6opaque␤»
AlexDaniel zhmylove: there is a high chance that by fixing this issue we will see general p6 speedup… hmm :)
Skarsnik I hope it stopped giving me random bug when I work on gptrixie xD 22:42
22:42 rvchangue joined 22:43 buharin left
ZoffixWin_ AlexDaniel, if you want to include this in the ticket: it takes 17s to run 10,000 prints on my box, but if I move them into a module and a sub and precompile the module, then I get 1.2s run. This is all compared to 0.2s run with Perl 5 on the same box 22:43
zhmylove AlexDaniel: thank you very much!
22:43 ratagin left
pmqs_ b2gills, what *should* be the way to get "uint8" if WHAT is the way? 22:44
zhmylove ZoffixWin_: how do you precompile? Just make a first run?
ZoffixWin_ zhmylove, yeah. It's done automagically for modules.
Skarsnik m: my int16 $a = 8; say $a.VAR.WHAT;
camelia rakudo-moar 775271: OUTPUT«(IntLexRef)␤»
RabidGravy that's me done for the day 22:45
AlexDaniel ZoffixWin_: thanks, great info
Skarsnik m: class A { has int16 $.a is rw; }; say A.^attributes[0].type;
camelia rakudo-moar 775271: OUTPUT«(int16)␤»
pmqs_ Skarsnik, ohhh 22:46
that looks promising
Skarsnik m: class A { has int16 $.a is rw; method foo() { say $.a.WHAT}}; A.new.foo;
camelia rakudo-moar 775271: OUTPUT«(Int)␤»
Skarsnik duh 22:47
m: class A { has int16 $.a is rw; method foo() { say $!a.^name}}; A.new.foo;
camelia rakudo-moar 775271: OUTPUT«Int␤»
pmqs_ Skarsnik, that's one I tried earlier. My usecase is in a class 22:49
22:49 prammer left, cpage_ left, RabidGravy left 22:50 AlexDaniel left
Skarsnik m: class A { has int16 $.a is rw; method foo() { say $!a.^type}}; A.new.foo; 22:52
camelia rakudo-moar 775271: OUTPUT«Method 'type' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤ in method foo at /tmp/wv20F9Sh1P line 1␤ in block <unit> at /tmp/wv20F9Sh1P line 1␤␤»
jdv79 .tell ugexe its back up. maybe its time to run it better. 22:53
yoleaux jdv79: I'll pass your message to ugexe.
22:54 vendethiel left 22:55 xpen joined 22:58 sortiz joined
sortiz o/ #perl6 23:00
pmqs_ Skarsnik, found the definition for uint8, etc in natives.pm
my native uint8 is repr('P6int') is Int is nativesize( 8) is unsigned { }
23:00 xpen left, musiKk left
Skarsnik Oh right there are all is Int? 23:01
pmqs_ yep
Skarsnik still it's weird they get the Int type
23:01 yqt joined
Skarsnik I mean not their own type 23:02
pmqs_ yep - if this is defined behaviour it will cause confusion
Skarsnik m: class A is Int{}; my A $a .= new; say $a.^name;
camelia rakudo-moar 775271: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HUH2qkRz6C␤Cannot call trait_mod:<is>(A, Int, Hash); none of these signatures match:␤ (Mu:U $child, Mu:U $parent)␤ (Mu:U $child, :$DEPRECATED!)␤ (Mu:U $type, :$rw!)␤ (Mu:U $type, :$natives…»
23:03 dfcarpenterak left
Skarsnik m: class A is Int {}; my A $a .= new; say $a.^name; 23:03
camelia rakudo-moar 775271: OUTPUT«A␤»
23:03 bapa left 23:04 brabo left, bapa joined, brabo joined
pmqs_ Skarsnik, going to call it a night. Will dig more into this tomorrow. Thanks! 23:06
23:06 ZoffixWin_ left
Skarsnik I am curious now x) 23:06
m: use NativeCall; my bool $a; say $a.WHAT;
camelia rakudo-moar 775271: OUTPUT«(Int)␤»
23:14 skids joined 23:16 hippie1 joined
sortiz pmqs_, All "native" types uses a different representation than normal types 23:20
m: say .WHAT, .REPR for int8, int, Int, str, Str
camelia rakudo-moar 775271: OUTPUT«(int8)P6int␤(int)P6int␤(Int)P6opaque␤(str)P6str␤(Str)P6opaque␤»
Skarsnik yes but it get lost when doing my type $a: 23:21
m: my int8 $a = 8; say $a.REPR; # should be p6int 23:22
camelia rakudo-moar 775271: OUTPUT«P6opaque␤»
23:24 AlexDaniel joined
sortiz Ah, I'm late in the discussion 23:25
23:27 addison left, kid51 joined 23:29 llfourn joined 23:38 SCHAAP137 left 23:41 burnersk joined, addison joined
sortiz m: use NativeCall; my int $a = 1; my Int $b = 1; say .VAR.WHAT for $a, $b # the container is different! 23:42
camelia rakudo-moar 775271: OUTPUT«(IntLexRef)␤(Scalar)␤»
23:43 khw left
AlexDaniel zhmylove: rt.perl.org/Public/Bug/Display.html?id=127330 23:43
23:44 maslan joined
Skarsnik Good night #perl6 23:47
Tomorow I try some c++ in gptrixie if I don't get another weird bug xD
23:48 FROGGS left 23:57 Skarsnik left 23:58 cognominal left