»ö« 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 pmurias joined 00:07 bjz left 00:13 AlexDaniel left 00:15 BenGoldberg joined 00:19 khw left 00:26 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 00:27 itcharlie2 joined
beginner_guy #kernelnewbies 00:28
oops 00:29
00:29 itcharlie left 00:31 BenGoldberg left 00:34 BenGoldberg joined 00:36 llfourn joined 00:38 aborazmeh joined, aborazmeh left, aborazmeh joined 00:39 espadrine left, BenGoldberg left 00:40 BenGoldberg_ joined 00:41 BenGoldberg_ is now known as Ben_Goldberg, Ben_Goldberg is now known as BenGoldberg, llfourn left 00:43 itcharlie1 joined 00:47 AlexDaniel joined, itcharlie2 left 00:49 AlexDaniel left 00:54 itcharlie1 left 01:03 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 01:08 pmurias left 01:15 zacts joined 01:19 avalenn left 01:20 avalenn joined
timotimo tbrowder: did you see my comments on the "probs with when" commit? 01:20
tbrowder no, looking now...thanks 01:21
01:27 aborazmeh left 01:29 jeffythedragonsl joined 01:34 jeffythedragonsl left
Geth doc: e9f4bb1037 | (Tom Browder)++ | doc/Language/control.pod6
use correct name for the block under discussion!
01:35
01:38 llfourn joined
timotimo the comment below it, too? 01:40
ah, 4 comments now
i'm confused as to why you'd put that specific example there 01:43
01:43 llfourn left
timotimo for one, it's got nothing to do with a when block by itself 01:43
Geth doc: d5f23aeae9 | (Tom Browder)++ | doc/Language/control.pod6
add more info to explain the context
01:45
timotimo maybe it's just me *shrug* 01:48
tbrowder timotimo: i didn't say that did i? i referred to the source text in sub calls in signatures. my only original reason for the pr was to document the problem i've been having with when blocks, then i realized the when block is not treated as a separate object even though i think it should be found as such in a search. please modify anything you want, but at 01:50
least let me have something to find to refresh my memory better than what we had.
timotimo oh, you just wanted "when" to show up when searched 01:51
what do you mean by the reference to signature literals? 01:52
tbrowder yes, and then get some more info on tricky parts that aren't well described elsewhere IMHO, at least for my pea brain. sometimes the docs leap into depth first before less esoteric uses
timotimo mhm 01:53
tbrowder ref is to the only place i could find about valid sub calls
timotimo excuse me, "valid sub calls"?
tbrowder pleas find a better reference, or do whatever it takes...look at the error versions in my example
timotimo m: for <a b c> { when / :i h / { &say } } 01:54
camelia ( no output )
timotimo m: for <a b c> { when / :i h / { &say; } }
camelia ( no output )
timotimo what error did you actually get?
tbrowder i first try the old p5 trick of calling a sub with &foo and got bit... 01:55
timotimo yeah, that's just the function as a noun rather than as a verb
tbrowder look at the example earlier today 01:56
timotimo in irc here?
oh! 01:57
that's something different :D
m: if say { 1 }
camelia rakudo-moar a62882: OUTPUT«5===SORRY!5===␤Function 'say' needs parens to avoid gobbling block␤at <tmp>:1␤------> 3if say { 1 }7⏏5<EOL>␤Missing block (apparently claimed by 'say')␤at <tmp>:1␤------> 3if say { 1 }7⏏5<EOL>␤␤»
timotimo not related to when
01:58 ocbtec left
tbrowder well, explain it better then... 01:58
timotimo hm
01:59 Actualeyes left
timotimo m: for say { "meep" } 01:59
camelia rakudo-moar a62882: OUTPUT«5===SORRY!5===␤Function 'say' needs parens to avoid gobbling block␤at <tmp>:1␤------> 3for say { "meep" }7⏏5<EOL>␤Missing block (apparently claimed by 'say')␤at <tmp>:1␤------> 3for say { "meep" }7⏏5<EOL>␤␤»
tbrowder look at irclog.perlgeek.de/perl6/2017-02-15#i_14109385
timotimo it's a good question where this should go, but i'm pretty sure it shouldn't go here 02:00
though the control flow page might be the right page at least 02:01
since putting a sub without arguments before a { } like that is a temptation mostly in those contexts
because you have keyword, term, block immediately in a row there 02:02
02:03 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
tbrowder it would help to illustrate that exact point item by item in at least one of the error entres! i'm going to sleep on it...will check in tomorrow 02:08
timotimo well, the error is trying to 02:09
just if you have "f" three times in a row it's hard to tell which f it means 02:10
it puts the marker after f { ... }^here^
and says "lacks a block" "the block was apparently taken by f" and "f needs to have parens in order to avoid gobbling the block"
02:11 kurahaupo__ joined 02:13 Actualeyes joined
samcv is there a way to do rakudobrew with moar blead when using Travis? 02:13
looks like my travis MoarVM panic: Internal error: invalid thread ID 1302783360 in GC work pass, and that's been fixd in moar
02:15 jraglin joined 02:16 khw joined
timotimo yeah, you can get "rakudobrew triple nom master master" 02:20
samcv what 02:24
so if i put nom in the .travis.yml it'll build nom?
02:37 cdg joined 02:39 llfourn joined 02:42 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
timotimo no, the command is "rakudobrew triple nom master master" 02:43
02:43 alphah joined 02:44 llfourn left 02:45 ssotka left 02:46 agentzh left, alphah left 02:51 agentzh joined
BenGoldberg . o O (coffebrew triple size nom nom nom) 02:52
02:55 grondilu joined 02:56 snowkiss21 joined 02:59 AlexDaniel joined
skids bisect: use NativeCall; use nqp; my $anchor; my $c = nativecast(Pointer[uint8], Buf.new(1,2,3,4,5,6)); class f is repr("CStruct") { has uint16 $.a; has uint32 $.b }; my $d = nativecast(f,$c); my $f = $d.a; nqp::force_gc; $d = nativecast(f,$c); say $f == $d.a 02:59
bisectable6 skids, On both starting points (old=2015.12 new=a628826) the exit code is 0 and the output is identical as well
skids, Output on both points: False
skids OK, so that's not a new thing. 03:00
03:02 raiph joined 03:06 cdg left, cdg joined 03:07 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
AlexDaniel commit: all use NativeCall; use nqp; my $anchor; my $c = nativecast(Pointer[uint8], Buf.new(1,2,3,4,5,6)); class f is repr("CStruct") { has uint16 $.a; has uint32 $.b }; my $d = nativecast(f,$c); my $f = $d.a; nqp::force_gc; $d = nativecast(f,$c); say $f == $d.a 03:09
committable6 AlexDaniel, gist.github.com/1832349c258408fad0...270ab92e1b
03:10 xtreak joined 03:21 cdg left 03:27 cale2 joined
cale2 how do you do the .tell command here? to send people messages later? 03:27
grondilu .tell cale2 just like that, no? 03:28
yoleaux grondilu: I'll pass your message to cale2.
03:28 ssotka joined
grondilu say something and yoleaux will relay 03:28
cale2 hi 03:29
yoleaux 03:28Z <grondilu> cale2: just like that, no?
cale2 is timotimo here?
grondilu .seen timotimo
yoleaux I saw timotimo 02:43Z in #perl6: <timotimo> no, the command is "rakudobrew triple nom master master"
skids bisect: my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say 03:34
bisectable6 skids, Bisecting by exit code (old=2015.12 new=a628826). Old exit code: 0
skids, bisect log: gist.github.com/c56451864b792d91a5...0ed967e6a3
skids, (2016-11-02) github.com/rakudo/rakudo/commit/ab...80e5efecbf
cale2 .tell timotimo: it might be worthwhile to add a "help wanted" section to perl6weekly. People could send you a little classified about something they need help with and how a person can get involved :) 03:35
yoleaux cale2: What kind of a name is "timotimo:"?!
cale2 .tell timotimo it might be worthwhile to add a "help wanted" section to perl6weekly. People could send you a little classified about something they need help with and how a person can get involved :)
yoleaux cale2: I'll pass your message to timotimo.
cale2 lol
03:35 kurahaupo_ joined, noganex joined
skids bisect: my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; } } }; $p.break; await($w); $b.say 03:36
bisectable6 skids, On both starting points (old=2015.12 new=a628826) the exit code is 0 and the output is identical as well
skids, Output on both points: 1
skids Hrm, well, finding why I had to put that .resume in there in the first place might require some digging. 03:38
03:38 noganex_ left
MasterDuke bisect: old=abf6caf06eb7e48674d4e22a4ad6b580e5efecbf my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say 03:38
03:38 kurahaupo__ left
bisectable6 MasterDuke, Bisecting by output (old=abf6caf new=a628826) because on both starting points the exit code is 1 03:38
MasterDuke, bisect log: gist.github.com/48a46201d3a30c5ccb...721dc85b4c
MasterDuke, (2016-12-20) github.com/rakudo/rakudo/commit/b8...7bcfed8e2c
MasterDuke bisect: old=b8df3a613125f17e9cbc59488326187bcfed8e2c my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say 03:40
bisectable6 MasterDuke, On both starting points (old=b8df3a6 new=a628826) the exit code is 1 and the output is identical as well
MasterDuke, Output on both points: Tried to get the result of a broken Promise␤ in block <unit> at /tmp/vKFkDC23_N line 1␤␤Original exception:␤ This exception is not resumable␤ in block at /tmp/vKFkDC23_N line 1␤ in block at /tmp/vKFkDC23_N line 1␤
AlexDaniel c: all my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; .resume } } }; $p.break; await($w); $b.say
committable6 AlexDaniel, gist.github.com/f10650909b08ee2fad...1391f8bae0
AlexDaniel the thing with Bisectable is that you have to know what you're looking for
03:41 llfourn joined
skids Falling off a stanza inside a CATCH is technically considered a "resume" or not? 03:41
c: all my $p = Promise.new; my $b = 0; my $w = start { await($p); CATCH { default { $b = 1; } } }; $p.break; await($w); $b.say 03:42
committable6 skids, gist.github.com/b05de1815ecb560852...ce483adee9
03:49 llfourn left, cale2 left 03:55 kyan left
Geth whateverable: a44467ea4f | (Daniel Green)++ | Benchable.p6
Also use slightly faster pzstd for Benchable
03:59
04:01 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 04:11 ChoHag_ left 04:31 Cabanoss- joined
skids Anyone worked up CompUnit incantations to get a multi-module test on one line for the bots? 04:32
04:34 Cabanossi left, Cabanoss- is now known as Cabanossi 04:36 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 04:37 agentzh left 04:39 xtreak left 04:41 xtreak joined 04:45 llfourn joined 04:51 llfourn left 04:55 AlexDaniel left 05:01 khw left 05:05 kurahaupo__ joined 05:09 kurahaupo_ left 05:21 wamba joined 05:26 mr_ron left 05:33 snowkiss21 left 05:39 BenGoldberg left 05:40 curan joined 05:46 llfourn joined 05:51 llfourn left 05:57 skids left 05:59 Cabanossi left, Cabanossi joined 06:03 llfourn joined 06:04 snowkiss21 joined 06:07 CIAvash joined 06:13 Actualeyes left 06:16 bolangi left, hwu_ left 06:26 xtreak left 06:28 yan4138 joined 06:29 xtreak joined 06:32 wamba left 06:41 yan4138 left 06:52 mr_ron joined 06:54 RabidGravy joined 07:01 mr_ron left 07:02 Actualeyes joined 07:03 darutoko joined 07:04 ssotka left 07:26 wamba joined 07:33 eroux joined 07:37 mr_ron joined 07:46 cpage_ left 07:47 eroux left 07:48 Tonik joined, mr_ron left 07:50 eroux joined 08:10 kurahaupo__ left 08:13 ufobat joined 08:26 xtreak left 08:27 cpage_ joined 08:29 kurahaupo__ joined, xtreak joined 08:31 abraxxa left, abraxxa joined 08:32 abraxxa left, dakkar joined 08:33 abraxxa joined 08:35 agentzh joined, CIAvash left 08:39 agentzh left 08:40 cpage_ left, kurahaupo__ left 08:41 abraxxa left 08:42 abraxxa joined 08:44 cpage_ joined 08:45 kst left, cpage_ left, kst joined, wamba left 08:52 xtreak left 08:54 xtreak joined 08:56 bjz joined 09:01 astj_ joined 09:03 obra_ is now known as obra 09:04 jonas2 joined 09:07 xtreak left 09:14 cpage_ joined 09:28 bolangi joined 09:29 curan left 09:31 curan joined 09:32 TEttinger left 09:42 dakkar left, dakkar joined 09:46 xtreak joined 09:54 lukaramu joined 10:04 user10 joined 10:06 user9 left, user10 is now known as user9 10:08 user10 joined 10:10 user9 left 10:12 user10 left 10:17 user9 joined 10:19 sena_kun joined 10:24 dmaestro left 10:27 faraco joined 10:35 bjz left 10:41 espadrine joined 10:42 curan left, bjz joined 10:49 bjz left
tbrowder morning #perl6 ... sleepless night worrying over when block 10:49
10:49 bjz_ joined 10:50 curan joined
sena_kun tbrowder, 0/ 10:51
jnthn I once had a sleepless flight implementing whenever blocks...does that count? :) 10:52
tbrowder .tell timotimo i'm all wrong about the words i used in the new doc chunk. i think the fundamental point is the when and if are similar but the if doesn't implicitly give control back to the enclosing block while the when does. i'll reword in a bit. 10:53
yoleaux tbrowder: I'll pass your message to timotimo.
tbrowder sena_kun: hi, jnthn: i think that counts for sure! 10:54
jnthn tbrowder: If it helps, `when X { Y }` compiles into the same thing as `if X.ACCEPTS($_) { Y; succeed; }`
Or something very close/equivalent 10:55
Though it also forces the surrounding block to have a succeed handler 10:56
timotimo o/
yoleaux 03:35Z <cale2> timotimo: it might be worthwhile to add a "help wanted" section to perl6weekly. People could send you a little classified about something they need help with and how a person can get involved :)
10:53Z <tbrowder> timotimo: i'm all wrong about the words i used in the new doc chunk. i think the fundamental point is the when and if are similar but the if doesn't implicitly give control back to the enclosing block while the when does. i'll reword in a bit.
timotimo tbrowder: oh, okay! that's a whole different topic than i thought we were talking about! :)
tbrowder jnthn: i would appreciate your perusal of my reword when i get it done, and that helps (i think!)
timotimo: yes, i was muddling two different issues of my p6 !understanding 10:58
jnthn: i'll try to put yr wrds in layman's language 11:02
11:02 wamba joined 11:04 xtreak left 11:08 wamba left 11:26 eliasr joined 11:40 _Vasyl left 11:41 _Vasyl joined 11:45 g4 left 11:52 rindolf left
faraco Hi guys, just want to know from you guys opinion, what makes a written program a "good code" to you? Just want to expand my skills on writing better program and the ease the development for myself and everyone else (if somebody did look at it, you'll never know!) 11:53
sena_kun faraco, here can be different answers, but I guess it is too complex topic to express shortly. You can search for different books like "Perfect Code" and alike, but remember that it is just a bunch of examples and opinions, not The Single Truth Of This World As It Is. 11:59
IOninja hehe, too long to explain. 12:00
timotimo good code is easy to understand when read, makes its intentions clear, has comments that say why a given piece of code is the way it is, and is reasonably easy to modify when circumstances change
that's ... extremely fuzzy :) 12:01
IOninja faraco: a good program is like art; and perfection in art not is achieved no when there is nothing left to add, but when there is nothing left to take away ;)
timotimo m:
12:01 rindolf joined
timotimo m: for $( ) { } 12:01
camelia ( no output )
IOninja Now you just need to frame it and sell it for millions of dollars. 12:03
For tips, see en.wikipedia.org/wiki/Black_Square_(painting) :)
faraco sena_kun, timotimo, IOninja: Thank you for your input. I usually write code that is structured enough, but I always felt them being too verbose that it's supposed to, without any documentation on why the specific implementations of code were needed for the program. 12:11
s/that/than 12:12
arnsholt I'm only in partial agreement with the "nothing left to take away" quote 12:13
It's a nice quote, but in practice there has to be a balance between "minimal set of features" and "useful" 12:14
12:14 jraglin left
faraco I always think that when I write them, it will be me and only me who read them afterward. I guess I was wrong when someone commented my code :P 12:14
timotimo keep in mind that "me" from the future can be a whole 'nother person :D 12:15
sena_kun faraco, try to be understandable, comment all "How I wrote it? I don't remember" parts, try to avoid creation of "I'm scared to look into this file" parts, use general guidelines and have fun. 12:17
faraco thank you :D
timotimo: while you're online, I want to say that Raw::SDL2 is nice! However, I can see some of the examples (shooter.pl) were lagging. Is this because of the moarvm? (mine is rakudo, fyi) 12:21
timotimo yeah, there's a bunch of inefficiencies that it has to work against 12:22
what does your raw timing look like when graphed?
i.e. gnuplot -p -e "plot 'raw_timings.txt' with lines" 12:23
i think i need to take care to remove the first few results as they tend to be crazy outliers
IOninja arnsholt: the quote doesn't advocate minimalism :) 12:24
faraco Right now, I'm not on my home workspace, I cannot install Perl 6 to try. I tried your examples like 3 days ago if I'm not mistaken, but I will try to report what you requested when I got to my PC. 12:25
timotimo actually, it'd potentially be enough to post the output it does at the end 12:26
faraco If I still remember, I can only the star particles and spaceship moving just fine (with some lags, some sort of 14 FPS) 12:28
but that's it
see*
timotimo can you give me your specs? 12:30
it's most likely CPU bound
the SDL calls it does are super cheap in comparison to the overhead from not-so-optimized perl6 code
faraco I think my PC is to blame, 1GB ram and 1.50+ Ghz if I'm not mistaken. 12:31
maybe it's due to moarvm eating a lot of rams that cause the lagging when trying your examples. 12:32
timotimo well, if it's pressed for RAM that'll certainly slow it down a whole lot
but more like 1fps or 0.01fps, not 14fps
faraco I think you are right. 12:33
timotimo you can figure out how much ram it maxes out on with "time" 12:34
it'll give you the "maxresident" k
faraco sure, when I'm back home, I'll try what I can do
12:36 bjz_ left
timotimo ah, OK! 12:36
12:36 agentzh joined
timotimo the numbers that shooter.pl outputs at the end are a bunch of percentiles from frame timings and the inverse of the frame timings (i.e. theoretical FPS) 12:36
it only uses 150 megs of ram on my machine 12:37
and i hardly get framerates below 56 12:38
faraco That is very weird. I once before installed the Libgdx example (jumper?) on the same PC I tested shooter.pl. It's shockingly fast (maybe because the claimed well written API). 12:40
timotimo libgdx?
faraco yes, Java (I know, I know)
timotimo it's really rakudo's fault that shooter is so slow
12:41 agentzh left
faraco timotimo: that is my first thought too, since running a hello world script took like a java hello world compilation total time on my machine. but I see this can be addressed later (idk actually). 12:42
timotimo rakudo could be much faster in theory 12:43
it's just a lot of work to make it better :)
faraco Indeed. 12:44
timotimo hah, when i profile it, it says it spends 81% of its time in SDL_RenderPresent
that's VSync sleeping until the next frame can be pushed to the screen
funny thing, when you have more FPS, more enemies will spawn 12:46
faraco sounds like the game is user machine tolerant :P 12:47
timotimo anyway, with PRESENTVSYNC turned off i get between 131 and 746 FPS 12:48
but the 746 seems to be a rather radical outlier; it's the 95th percentile after all
75th percentile is still 221 FPS 12:49
12:50 wamba joined 12:52 pmurias joined
pmurias IOninja: The "Nothing more to add" approach sometimes works too, just look at Perl ;) 12:53
timotimo oh 12:56
that was with profiling running
without profiling the 95th percentile goes up to 1379fps and the 75th is 428 fps
faraco holy...
timotimo so ... maybe rakudo is fast enough after all? 12:57
it differs strongly by how many enemies are on screen, of course 12:58
12:58 bjz joined, eroux left
timotimo of course if the game were written in C, it'd have >3000 fps even with 200 enemies on screen, i'd imagine 13:00
faraco but I have lags in *all* of the examples.
even the whitenoise.pl and snake.pl 13:01
timotimo maybe GC is making things very bad for you? 13:02
faraco like I said, I think my old PC is to blame, not suited to play games.
timotimo on my machine it spends 8% of its time in GC
faraco Maybe you are right, I'm just curious why, like Perl 5 frozen-bubble and Jumper libgdx on Java is like playing on 64 bit PC. I didn't noticed any significant lags in them. 13:03
13:03 pmurias left
timotimo mhm 13:04
hard to say without measuring things
13:04 pmurias joined 13:08 andrzejku joined
andrzejku hi 13:09
guys what do you know about this project? Perlix? 13:10
13:10 Sgeo_ left
andrzejku status? 13:10
timotimo i haven't heard of perlix 13:14
andrzejku www.foo.be/docs/tpj/issues/vol5_2/...-0009.html
DrForr Oh, good god. Short answer: it's a joke.
andrzejku no, it is not? 13:15
timotimo when was that doc written?
andrzejku 2000
DrForr Notice the URL references ftp:// - That should be a good indication of how long it's "been around". 13:16
El_Che Simon Cozens. He was las year at fosdem
13:16 lizmat left
DrForr yeah, and the bastard didn't even say hi :) 13:16
andrzejku Simon is still live www.simon-cozens.org/ 13:17
DrForr Yes. That doesn't mean anything though.
El_Che DrForr: he did to me :)
andrzejku He also write Perl book
what is he doing right now? 13:18
DrForr Yes, he did. perlix is still a joke that was funny for a few months back in 2000. That's about it.
El_Che looking at his git repo: glyphs
andrzejku doesnt mean that there no existing sources of Perlix? 13:20
DrForr Typography, yes. Font design, last time I checked. I doubt he's thought about that page in at least a decade, yet it still remains on the Web.
13:20 wamba left, aborazmeh joined, aborazmeh left, aborazmeh joined
DrForr andrzejku: Yes, the page is there. No, to my knowledge very little work if any was ever done on the project. As it says, Perl Power Tools is the closest we've come. 13:21
There is very little point to writing a kernel in anything other than C, or possibly C++ if you're a masochist, due to performance constraints. 13:22
andrzejku DrForr, sad I got big hope that's really exist
El_Che DrForr: D, Rust? 13:23
andrzejku and Go
El_Che And there is a Java OS out there
andrzejku: Go <-- GV
GC
andrzejku yeah that's a point
13:23 snowkiss21 left
andrzejku if there exist Java OS 13:23
why we cann't have Perlix?
El_Che I am a Perl guy, but I wouldn't run it :) 13:24
DrForr Because nobody's written it?
andrzejku El_Che, you can run it on embedde device
to speed programming out there
El_Che andrzejku: Perl as the OS of an embedded device <-- you like pain, don't you? 13:25
the slow type :)
DrForr andrzejku: Perl 6 compiles to the JVM, ergo you can write Perl6-OS targeted to the JVM.
El_Che en.wikipedia.org/wiki/JavaOS
andrzejku I just need somehow compile Perl JVM on embedde device and write the rest in Perl 13:26
El_Che discontinued closed source
DrForr No need, compile Perl 6 to the JVM - There is no "Perl JVM" - There's the Java Virtual Machine and MoarVM.
13:26 jraglin joined
IOninja Perl6-OS? Call it Slowos :P 13:26
andrzejku MoarVM 13:27
DrForr Nobody's stopping you.
faraco The Sixth-Sense.
andrzejku ya I know I just wanted to look for friends
El_Che en.wikipedia.org/wiki/JX_(operating_system) 13:28
faraco If Perl 6 somehow got a native compiler, then does OS development with Perl 6 still relevant? (well, reduced pain of course) 13:30
with some extensions maybe?
you know, like chicken scheme to C compiler.
El_Che faraco: do you mean a ->C compiler of a compiler completely in Perl6? 13:31
13:31 lukiramu joined
faraco Both, if we can? 13:31
Although, I'm not transpiling to C will give you full control of the native result. 13:32
13:32 bjz left
faraco I'm not sure* 13:32
since the generated C code maybe do something than you expect to, although can be easily edited, just to make sure where the depends calls happens. 13:33
my grammar is messed up... 13:34
13:34 lukaramu left
faraco including that 13:34
DrForr If you've got the time, now that the grammar is stable, feel free to write a LLVM or GCC frontend for Perl 6 :)
sena_kun does it have iterators now? 13:36
DrForr Does what have iterators? C++ yes, LLVM/GCC - no idea. 13:37
13:37 astj_ left, astj joined
sena_kun DrForr, Perl6::Parser. 13:38
I'm not so hardcore to know anything about LLVM/GCC. :)
DrForr Oh. No, I had some personal issues come up before FOSDEM, haven't really gotten back to the code. 13:39
sena_kun ah, nevermind me then.
DrForr No worries, it just came in without context.
sena_kun I want to rewrite Texas::To::Uni(and name it properly *this time*), but it is likely to be super-tricky and buggy without a proper parser. 13:40
13:41 mr_ron joined 13:43 lizmat joined, wamba joined, llfourn left
DrForr sena_kun: Well, let me look at that over the weekend. I found some other things slipping through the cracks that I'll probably have to take care of first but I'll at least give it a splice() method or something that can be used for modification. I also want to be able to braid in ->walk, ->walk-no-whitespace, ->walk-no-structural and ->walk-no-documentation. 13:47
13:48 aborazmeh left
Geth doc: 4416cdb167 | (Will "Coke" Coleda)++ | 2 files
fix typos, learn word, avoid short form
13:49
timotimo does anybody want to work on making panda's reporting work with cpandatesters again?
it seems to no longer send the build stage output 13:50
so every report gets N/A as the grade
sena_kun DrForr, you don't need to hurry, since it is unlikely that one of my modules is *heavy* needed by someone, and I have plenty of other things to take care for now. You have many tasks to do too, I suppose, so don't worry and have fun. :)
DrForr Eeh, it'd be a change of pace. 13:51
perlpilot DrForr: btw, a minor thing ... Perl6::Parser doesn't show up in the project list when you type exactly that in the search bar. (because it's Perl6-Parser)
IOninja timotimo: wouldn't it make more sense to make a zef reporting plugin?
perlpilot (on modules.perl6.org that is)
timotimo yeah, could do that, too
IOninja perlpilot: huh. Seems we do have auto-searching for :: when - is typed, but not in reverse :S 13:52
perlpilot I was thinking maybe a "-" was ignored so it was if you'd typed "Perl6 Parser" and that "::" was not ignored 13:53
DrForr Well, the git project name is 'perl6-Perl6-Parser'... What needs to change? 13:54
IOninja DrForr: modules.perl6.org needs a fix 13:55
perlpilot DrForr: the "name" in META.info
and what IOninja said!
:)
DrForr Thanks.
IOninja This Issue wasn't fully resolved basically: github.com/perl6/modules.perl6.org/issues/57 13:56
DrForr Done, will push when I get home.
14:05 wamba left 14:07 imcsk8 left 14:09 imcsk8 joined, kurahaupo__ joined 14:12 sammers left 14:16 pmurias left 14:17 kurahaupo__ is now known as kurahaupo 14:18 cibs left 14:20 cibs joined 14:21 curan left 14:22 jonas2 left 14:25 _Vasyl left, sammers joined
Geth doc: daa2950944 | (Will "Coke" Coleda)++ | 2 files
Unify example skips.

Instead of skipping some files when extracting examples, and some when running the tests, move all the exclusions to the test; as of this commit, extract-examples now passes 100% - the goal should be to remove all these skips and still have the test file pass.
14:30
14:30 Cabanossi left 14:32 Cabanossi joined
Geth doc: 8ad0c63645 | (Zoffix Znet)++ | doc/Type/Array.pod6
Document Array.clone

Implemented in Rakudo today in github.com/rakudo/rakudo/commit/dc69dafc42
14:38
IOninja ^ that could use a link to explanation of reification but I don't know where/if that's explained 14:39
14:39 llfourn joined 14:41 eroux joined 14:42 skids joined
IOninja I don't get it. Why does it complain about attributes in a type object? gist.github.com/zoffixznet/ecdb9f8...5ab64f5760 14:43
And just for Array :S
m: Rat.clone
camelia rakudo-moar dc69da: OUTPUT«Cannot look up attributes in a Rat type object␤ in block <unit> at <tmp> line 1␤␤»
IOninja oh
OK. Never mind then, I guess
14:44 llfourn left 14:45 jfuller joined
lizmat perhaps we should have a Mu:U: clone ? 14:48
yoleaux 5 Feb 2017 21:28Z <nine> lizmat: github.com/niner/Inline-Perl5/commit/f461fabb67 is the solution :)
6 Feb 2017 09:27Z <gfldex> lizmat: you may want to link the following tonight video.fosdem.org/2017/K.4.201/
14 Feb 2017 19:28Z <samcv> lizmat: thanks for " Make Int.WHICH about 1.7x faster" :)
IOninja lizmat: way ahead of you :)
lizmat :-) 14:49
IOninja Also, welcome back!
14:49 araraloren joined
faraco .tell nobody I'm bored. 14:50
yoleaux faraco: I'll pass your message to nobody.
14:51 wamba joined
IOninja .tell IOninja meows 14:52
yoleaux IOninja: Talking to yourself is the first sign of madness.
14:58 wamba left, wamba joined 15:04 zakharyas joined 15:08 Ven joined 15:09 jraglin left 15:10 cale2 joined
cale2 hi 15:10
IOninja ahoy 15:11
cale2 m: my @array.push(0) for [].elems; say @array.elems; say @array; 15:12
camelia rakudo-moar dc69da: OUTPUT«1␤[0]␤»
cale2 So apparently [].elems is pushing an (Any) onto @array
15:12 mst left, mst joined
cale2 m: say [].elems; say ().elems; 15:13
camelia rakudo-moar dc69da: OUTPUT«0␤0␤»
IOninja cale2: no, you're iterating for one iteration.
m: "meows".say for 0
camelia rakudo-moar dc69da: OUTPUT«meows␤»
timotimo m: say "hello cale" for 1
camelia rakudo-moar dc69da: OUTPUT«hello cale␤»
cale2 ah... So how do I actually do what I want there?
timotimo i think you've had this same misunderstanding before with masak
cale2 m: say "hello cale" for 0
camelia rakudo-moar dc69da: OUTPUT«hello cale␤»
IOninja m: my @array.push(0) for ^[].elems; say @array.elems; say @array; 15:14
camelia rakudo-moar dc69da: OUTPUT«0␤[]␤»
15:14 snowkiss21 joined
cale2 m: say "hello cale" for ^0 15:14
camelia ( no output )
cale2 m: say "hello cale" for ^([].elems)
camelia ( no output )
IOninja m: my @array.push(0) for ^[]; say @array.elems; say @array;
camelia rakudo-moar dc69da: OUTPUT«0␤[]␤»
cale2 m: say "hello cale" for ^([].elems * 3)
camelia ( no output )
IOninja (no need for .elems even)
heh
0*3 is still 0 :)
cale2 I don't get it though
timotimo m: say ^5
camelia rakudo-moar dc69da: OUTPUT«^5␤»
timotimo yeah 15:15
m: say ^5.List
camelia rakudo-moar dc69da: OUTPUT«Potential difficulties:␤ Precedence of ^ is looser than method call; please parenthesize␤ at <tmp>:1␤ ------> 3say ^57⏏5.List␤^1␤»
timotimo m: say ^5 .List
camelia rakudo-moar dc69da: OUTPUT«(0 1 2 3 4)␤»
timotimo ^5 is short for 0..^5
IOninja cale2: ^ is the range operator that makes 0..^$x; The $x used is your elemes
lizmat m: .say for 0
camelia rakudo-moar dc69da: OUTPUT«0␤»
lizmat m: .say for [].elems
camelia rakudo-moar dc69da: OUTPUT«0␤»
cale2 m: say "hi" for ^0; say "hi" for ^[];
camelia ( no output )
cale2 m: say "hi" for ^0; say "hi" for ^[];
camelia ( no output )
cale2 m: say "hi" for 0 15:16
camelia rakudo-moar dc69da: OUTPUT«hi␤»
IOninja cale2: `for 0` iterates over a 1-item list: the number 0; `for ^0` iterates over nothing because `^0` range is an empty list
timotimo for iterates over a list, individual objects in perl6 behave like a list with only that object in it
IOninja m: say [0] 15:18
camelia rakudo-moar dc69da: OUTPUT«[0]␤»
IOninja m: say [^0]
camelia rakudo-moar dc69da: OUTPUT«[]␤»
cale2 m: say [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say "%classified[]"; say "%classified<adults>";
camelia rakudo-moar dc69da: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '%classified' is not declared. Did you mean '&classify'?␤at <tmp>:1␤------> 3> 0 ?? 'adults' !! 'babies' }; say "7⏏5%classified[]"; say "%classified<adults>␤»
cale2 m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say "%classified[]"; say "%classified<adults>";
camelia rakudo-moar dc69da: OUTPUT«babies 0␤Use of uninitialized value %classified of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in block <unit> at <tmp> line 1␤␤»
cale2 ah... the problem is that classified IS inserting a value for the adults 15:19
IOninja ? no it doesn;'t
m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; dd %classified
camelia rakudo-moar dc69da: OUTPUT«Hash %classified = {:babies($[0])}␤»
cale2 m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say "%classified<adults>.elems"; 15:20
camelia rakudo-moar dc69da: OUTPUT«Use of uninitialized value %classified of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in block <unit> at <tmp> line 1␤.elems␤»
cale2 m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say %classified<adults>.elems;
camelia rakudo-moar dc69da: OUTPUT«1␤»
cale2 yeah it is ^
timotimo it's kind of confusing that it's saying "value %classified" even though it is about the elem in it
IOninja hehe
cale2: it autovivifies
cale2 %classified<adults>.elems should be 0 15:21
timotimo IOninja: careful with that word. in that code there's no change to the hash yet
IOninja to an Any and you call Any.elems and get 1
cale2 I need it to "do what I mean" haha
timotimo m: my %foo; dd %foo<nope>
camelia rakudo-moar dc69da: OUTPUT«Any %foo = Any␤»
timotimo well, thanks for the name
m: my %foo; say %foo<nope>:exists
camelia rakudo-moar dc69da: OUTPUT«False␤»
cale2 m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; say %classified<adults>.elems == 0; 15:22
camelia rakudo-moar dc69da: OUTPUT«False␤»
timotimo you want to either check for exists, or use a definedness check (like "with" instead of "if")
15:22 espadrine_ joined
IOninja Right, it don't autoviviy, it gives you an Any and you call .elems on it 15:22
m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; %classified<adults> andthen .elems.say
camelia ( no output )
IOninja m: my %classified = [0].classify: { $_ <= 0 ?? 'adults' !! 'babies' }; %classified<adults> andthen .elems.say 15:23
camelia rakudo-moar dc69da: OUTPUT«1␤»
15:23 espadrine left
IOninja m: my %classified = [0].classify: { $_ <= 0 ?? 'adults' !! 'babies' }; .elems.say with %classified<adults> 15:23
camelia rakudo-moar dc69da: OUTPUT«1␤»
IOninja m: my %classified = [0].classify: { $_ > 0 ?? 'adults' !! 'babies' }; .elems.say with %classified<adults>
camelia ( no output )
IOninja More than one way to skin a cat.
MTOWTSAC
cale2 This is the actual code I have now: my @newborns.push(0) for ^(%classified<adults>.elems * $growth-rate); 15:24
lizmat actually, it returns a container that may vivify the element in the hash
cale2 I should change it to: my @newborns.push(0) for ^(%classified<adults>.elems // 0 * $growth-rate);
IOninja :o 15:25
lizmat m: my %h; my $a := %h<foo>; dd %h; $a = 42; dd %h
camelia rakudo-moar dc69da: OUTPUT«Hash %h = {}␤Hash %h = {:foo(42)}␤»
IOninja TIL
m: my %h; my $a := %h<foo>; dd %h; $a = Any; dd %h
camelia rakudo-moar dc69da: OUTPUT«Hash %h = {}␤Hash %h = {:foo(Any)}␤»
timotimo the most natural thing to be inside a hash isn't a list, it's a single object
IOninja how does it know
timotimo the magic of WHENCE 15:26
IOninja s: &postcircumfix:<{ }>, \(%, 'foo')
cale2 the defined-or // didn't work
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/4b85...lice.pm#L6
timotimo well, where did you place it?
m: Any.elems // 0
camelia ( no output )
lizmat IOninja: Array, line 366
timotimo this won't do it
m: say Any.elems // 0 15:27
camelia rakudo-moar dc69da: OUTPUT«1␤»
timotimo because 1 is defined
cale2 fugg
timotimo you need something like this:
m: say (Any // []).elems
camelia rakudo-moar dc69da: OUTPUT«0␤»
cale2 it still iterates at least once 15:28
IOninja So when $!whence is a codeblock it gets called on first assignment or something?
timotimo are you still using for blah.elems? you need to put a ^ in front of the number
or else you'll always be doing one iteration, no matter what number it is
IOninja m: use nqp; nqp::p6bindattrinvres((my $special-something), Scalar, q|$!whence|, -> { say "meows" }); $special-something = 42; $special-something = 72 15:30
camelia rakudo-moar dc69da: OUTPUT«meows␤»
IOninja ehehe, neat.
Is there a way to get the value being assigned? 15:31
m: use nqp; nqp::p6bindattrinvres((my $special-something), Scalar, q|$!whence|, { say "meows" x $special-something }); $special-something = 3;
camelia rakudo-moar 4b85db: OUTPUT«meowsmeowsmeows␤»
IOninja haha, awesome
[Coke] IOninja: meowsome. 15:32
cale2 I'm using ^
timotimo ok, can you show your code again? 15:33
cale2 my @newborns.push(0) for ^(%classified<adults>.elems // [] * $growth-rate);
timotimo yeah, you've got a precedence problem
cale2 I wrapped it in parens and still didn't work
timotimo and your // [] is in the wrong spot
i told you you need to put (the thing // []).elems 15:34
not the thing.elems // []
cale2 ah
timotimo we may want to host a golly server on p6c :)
cale2 WORKS
IOninja What's a golly?
timotimo gobby*
golly is the cellular automaton program
gobby is the multi-user simultaneous text editor
IOninja Ah :) 15:35
timotimo i bet we can gte camelia or committable in there as a chatbot as well
and give it special commands like "camelia: line 10-15" or "camelia: run"
BBL
IOninja star: use LWP::Simple; use nqp; nqp::bindattr((my $title), Scalar, q|$!whence|, { LWP::Simple.get($title).match: /"<title>" (.+?) "</title>"/; $title = ~$/[0]}); $title = "perl6.party"; say $title 15:36
camelia star-m 2016.10: OUTPUT«Welcome - Perl 6 Party␤»
IOninja :}
Hm, you can rebind the whence... Cheaper Proxy? 15:37
jnthn Please do not encourage use of this outside of CORE.setting. We will quite likely want to kill it off at some point 15:40
araraloren What is *whence* ?
jnthn And replace it with something the various optimizers can reason about
15:40 llfourn joined
IOninja star: use LWP::Simple; use nqp; nqp::bindattr((my $title), Scalar, q|$!whence|, { LWP::Simple.get($title).match: /"<title>" (.+?) "</title>"/; $title = ~$/[0]; nqp::bindattr($title, Scalar, q|$!whence|, &?BLOCK) }); say $title; $title = "perl6.party"; say $title; $title = "brrt-to-the-future.blogspot.com/201...ate.html"; say $title 15:41
camelia star-m 2016.10: OUTPUT«(Any)␤Welcome - Perl 6 Party␤brrt to the future: Register Allocator Update␤»
araraloren It's not recommend to do that.
IOninja Haha
araraloren: whence is a professional secret :)
jnthn m: my %h; my $a := %h<b>; say %h.keys; $a = 42; say %h.keys
camelia rakudo-moar 4b85db: OUTPUT«()␤(b)␤»
jnthn It's the mechanism we currently use to make things like that work. 15:42
15:42 eroux left
jnthn (Which will, of course, continue to work, but the current mechanism is costly.) 15:43
15:43 kjk joined
[Coke] IOninja: sharing the reifier is an intended consequence of clone, or a side effect of rakudo's implementation? 15:43
Geth doc: 02c0ff3782 | (Will "Coke" Coleda)++ | util/extract-examples.p6
fix typo
15:45
doc: 4f640536f9 | (Will "Coke" Coleda)++ | 2 files
test examples in doc/Type/IO/ArgFiles.pod6
doc: 10106249be | (Will "Coke" Coleda)++ | xt/words.pws
learn new words
15:45 llfourn left
IOninja [Coke]: mmm.. side-effect that we're aware of, I guess. 15:46
I don't think they should share anything, but timotimo pointed out that they're then not really clones. 15:47
timotimo well, when you $a = [@b], you're not explicitly saying "i want a copy, please"
i think @b[] would definitely express that
IOninja timotimo: oh, well, that was just the example of .clone implementation 'cause llfourn proposed it and all the discussion I said was about the behaviour of .clone 15:48
timotimo oh 15:49
15:49 sufrostico left
IOninja m: my @a = 1, {rand} ... $++ < 10; my @b = @a.clone; say @a[^3]; say @b[^3] 15:50
camelia rakudo-moar 4b85db: OUTPUT«(1 (Any) (Any))␤(1 (Any) (Any))␤»
araraloren It's a shadow copy. 15:51
timotimo copy on black instead of copy on white? 15:52
IOninja Sorry, got distracted here.... 15:53
(by someone :) I don't have ADHD) 15:54
m: my @a = lazy 1, {rand} ... $++ > 10; my @b = @a.clone; say @a[^3]; say @b[^3]
camelia rakudo-moar 4b85db: OUTPUT«(1 0.471505249405541 0.984319991320413)␤(1 0.471505249405541 0.984319991320413)␤»
IOninja so what I was gonna say ^ here you get the same values in the clone. If reifier is not shared then you'll either get the same values OR different values depending on whether the array was already reified berfore the clone
So the shareage makes sense to me. It's the race coditions that are a bit LTA. 15:55
Geth doc: a634443cad | (Tom Browder)++ | doc/Language/regexes.pod6
tweak comments
IOninja [Coke]: so... maybe more discussion of this is needed. But how? :) 15:56
FWIW I did add an explict test for shareage
[Coke] IOninja: was just curious. seems to be a reasonable thing for clone to do.
IOninja github.com/perl6/roast/blob/master....t#L37-L39
OK 15:57
Geth doc: 116c879972 | (Will "Coke" Coleda)++ | doc/Language/regexes.pod6
remove trailing whitespace;
15:59
16:00 ChoHag joined
[Coke] (docs) regarding our example testing; we cheat by wrapping everything in a class - some things cannot be run inside a class (like use lib) - should we force the examples to include a class {} around them in the docs? 16:00
16:00 eroux joined
[Coke] (the one that need it) 16:00
*ones
16:02 cdg joined
Geth doc: 274c6d6d5f | (Will "Coke" Coleda)++ | 2 files
test examples in doc/Programs/00-running.pod6

  (... which are for now all skipped)
16:04
16:05 llfourn joined
gfldex [Coke]: the example extractor was never meant to provide complete testing, however sena_kun is working on that problem 16:06
sena_kun [Coke], github.com/perl6/doc/blob/274c6d6d...d6#L18-L49 - shouldn't it be a table, not a code?
Geth doc: 93a4b37b70 | (Will "Coke" Coleda)++ | 2 files
test examples in doc/Programs/01-debugging.pod6
16:07
mspo TimToady: www.infoq.com/presentations/Simple-Made-Easy isn't this intro more your style? :)
16:08 kigai joined
mspo anyway that video + slides format is pretty nice 16:08
[Coke] gfldex: I am also working on the problem.
16:08 Ven left
gfldex brilliant, we may end up with two solutions that way \o/ 16:08
[Coke] sena_kun: it wasn't a table before, was it? (I mean it looks like one, but it's not tagged as one.)
gfldex [Coke]: there will always be some examples we have to skip tho, so I would not spend too much time on that problem
[Coke] sena_kun: I only explicitly makred it as code so I could add :skip-test 16:10
so if you can table-ify it, that would be great.
kigai [Coke], it wasn't, but I'm sure it should be. I've met valid tables that was marked as code for some reasons(most likely by mistake or a bit of ignorance) before.
[Coke], I'll do now.
Ah, hexchat changed my nick. :/
[Coke] whoever you are, thank you. :) 16:11
16:11 sena_kun left
kjk m: my @a = [1, 2, [3, 4], 5]; say flat @a; say @a.List; say flat @a.List; 16:12
camelia rakudo-moar 4b85db: OUTPUT«(1 2 [3 4] 5)␤(1 2 [3 4] 5)␤(1 2 3 4 5)␤»
timotimo arrays put all their contents into scalar containers, which don't flatten
but also, you may want to "dd" instead of "say" so that you see structure better 16:13
kjk m: my @a = [1, 2, [3, 4], 5]; dd flat @a; dd @a.List; dd flat @a.List;
camelia rakudo-moar 4b85db: OUTPUT«(1, 2, $[3, 4], 5).Seq␤(1, 2, [3, 4], 5)␤(1, 2, 3, 4, 5).Seq␤»
timotimo m: my @a = [1, 2, [3, 4], 5]; say (flat @a).perl; say @a.List.perl; say (flat @a.List).perl;
camelia rakudo-moar 4b85db: OUTPUT«(1, 2, $[3, 4], 5).Seq␤(1, 2, [3, 4], 5)␤(1, 2, 3, 4, 5).Seq␤»
timotimo yeah
16:13 kigai left 16:14 kigai joined
SmokeMachine m: my $a = "bla"; $a = $a but False; dd $a; dd $a.Str; $a = $a.Str; dd $a; my $b = $a.Str; dd $b # shouldn't the last $a and $b be only Str? 16:14
camelia rakudo-moar 4b85db: OUTPUT«Str+{<anon|34954624>} $a = "bla"␤"bla"␤Str+{<anon|34954624>} $a = "bla"␤Str+{<anon|34954624>} $b = "bla"␤»
kjk timotimo: i see..., you are way ahead of me :) guess this comes up a lot, huh? thank you
16:14 kigai left
timotimo flattening lists of lists and arrays of arrays and such is a topic that comes up at least once a month 16:14
16:15 kigai joined
gfldex kjk: yes it does :) gfldex.wordpress.com/2016/08/01/wa...the-flats/ 16:16
SmokeMachine shouldn't .Str() or Str() return Str?
16:16 kigai is now known as sena-kun
SmokeMachine m: ("bla" but role {}).Str.^name.say 16:17
camelia rakudo-moar 4b85db: OUTPUT«Str+{<anon|34109712>}␤»
SmokeMachine m: ("bla" but role {}).gist.^name.say
camelia rakudo-moar 4b85db: OUTPUT«Str+{<anon|49428752>}␤»
timotimo but that is a Str
IOninja hehe :) 16:18
SmokeMachine timotimo: not only Str...
kjk gfldex: thanks, will read it
timotimo but Str + anon ~~ Str
SmokeMachine m: S/(.*)/$1/g .^name.say given ("bla" but role {})
camelia rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of /g; in Perl 6 please use :g␤at <tmp>:1␤------> 3S/(.*)/$1/g7⏏5 .^name.say given ("bla" but role {})␤»
SmokeMachine m: S:g/(.*)/$1/ .^name.say given ("bla" but role {}) 16:19
camelia rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix call (only alphabetic methods may be detached)␤at <tmp>:1␤------> 3S:g/(.*)/$1/ .7⏏5^name.say given ("bla" but role {})␤»
gfldex SmokeMachine: Perl 6 doesn't really got a concept of a singular type. Even if it only got one type object, that just happens to be a list with one element.
16:19 dwarring left
IOninja m: S:g/(.*)/$1/.^name.say given ("bla" but role {}) 16:19
camelia rakudo-moar 4b85db: OUTPUT«Use of Nil in string context␤ in code at <tmp> line 1␤Use of Nil in string context␤ in code at <tmp> line 1␤Str␤»
IOninja m: S:g/(.*)/$0/.^name.say given ("bla" but role {}) 16:20
camelia rakudo-moar 4b85db: OUTPUT«Str␤»
IOninja looks good to me
16:20 ssotka joined
IOninja m: S:g/jghgjhgjhgjhghjjgh/$0/.^name.say given ("bla" but role {}) 16:20
camelia rakudo-moar 4b85db: OUTPUT«Str+{<anon|53439680>}␤»
IOninja yup 16:21
SmokeMachine gfldex: but how do I get a string from a Str? i mean if I do 42.Str I get a Str...
IOninja SmokeMachine: ~ ''
SmokeMachine m: (42 but role{}).Str.^name.say
camelia rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Whitespace required after keyword 'role'␤at <tmp>:1␤------> 3(42 but role7⏏5{}).Str.^name.say␤»
IOninja SmokeMachine: for your but case. But Str is already a Str.
SmokeMachine m: (42 but role {}).Str.^name.say
camelia rakudo-moar 4b85db: OUTPUT«Str␤»
SmokeMachine m: (~("bla" but role {})).^name.say 16:22
camelia rakudo-moar 4b85db: OUTPUT«Str+{<anon|57760016>}␤»
IOninja m: say (~("bla" but role {})) ~~ Str
camelia rakudo-moar 4b85db: OUTPUT«True␤»
gfldex SmokeMachine: you can't handle raw objects, you always talk to some interface. The typiness is lost when the VM crosses the boundary to native libs 16:23
IOninja m: (''~("bla" but role {})).^name.say
camelia rakudo-moar 4b85db: OUTPUT«Str␤»
SmokeMachine m: ("bla" but role {}).Str === "bla"
camelia rakudo-moar 4b85db: OUTPUT«WARNINGS for <tmp>:␤Useless use of "===" in expression ".Str === \"bla\"" in sink context (line 1)␤»
SmokeMachine m: say ("bla" but role {}).Str === "bla"
camelia rakudo-moar 4b85db: OUTPUT«False␤»
SmokeMachine m: say "bla" === "bla" 16:24
camelia rakudo-moar 4b85db: OUTPUT«True␤»
16:24 snowkiss21 left
IOninja SmokeMachine: what actual problem are you trying to solve? 16:24
16:24 Actualeyes left 16:26 llfourn left
SmokeMachine IOninja: I'm doing for @funcs -> &func { $word = fund($word) }; and fund may return $word but False; and Im getting: 16:26
Str+{<anon|140262140200064>}+{<anon|140262140200336>}+{<anon|140262140200608>}+{<anon|140262140200880>}+{<anon|140262140201152>}+{<anon|140262140201424>}+{<anon|140262140201696>}+{<anon|140262140201968>}+{<anon|140262140202240>}+{<anon|140262140202512>}+{<anon|140262140202784>} $a = "bla"
16:27 pierrot left
IOninja hehe 16:27
SmokeMachine this: glot.io/snippets/en62c3a2jh
IOninja Well, that's the output of a non-Perl6 debug functions isn't it?
SmokeMachine yes... dd... 16:28
16:28 Actualeyes joined
IOninja doesn't see a problem 16:28
Stop mixing it a ton of roles for no reason :)
SmokeMachine :( 16:29
Geth doc: 6e59f1d728 | (Tom Browder)++ | doc/Language/control.pod6
another stab at describing "when"
16:29 devmikey joined
IOninja SmokeMachine: but as I showed, use ~ '' if you want to get rid of all the mixins 16:30
m: (''~("bla" but role {})).^name.say
camelia rakudo-moar 4b85db: OUTPUT«Str␤»
16:30 pierrot joined
tbrowder .tell timotimo please look at "when" doc commit 16:30
yoleaux tbrowder: I'll pass your message to timotimo.
IOninja .Str does return a Str type. I don't see a problem with current behaviour.
SmokeMachine IOninja: thanks... (IMHO it should return a "only" Str... but its only my opinion...) 16:32
jnthn Coercion methods returning a subtype is fine 16:33
IOninja It's not even a subtype, just the type with a role mixed in.
16:33 kalkin- left
gfldex tbrowder: while you are on it `when` defaults to `$_ ~~` while `if` doesnt. 16:33
jnthn IOninja: That's how mixins work: they create a subtype, compose the role into it, and then turn the object into the subtype :) 16:34
IOninja Ah
Cool.
sena-kun [Coke], don't forget that =begin/=for code directives should be on the same indendation level as the actual code, otherwise you'll get unnecessary indentation. 16:35
I don't know is it bug or feature. 16:36
gfldex sena-kun: that's a bug
16:37 itcharlie joined, hoelzro_ left, hoelzro joined
sena-kun gfldex, is it a known bug? 16:37
gfldex yes
sena-kun ah, okay than.
16:38 araraloren left
SmokeMachine does any one know why Im getting the error "Use of uninitialized value <element> of type Any in string context\nAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/330122387/lib/RSLP/Rule.pm6 (RSLP::Rule) line 18" here? glot.io/snippets/en62c3a2jh 16:38
IOninja It's a warning not an error. 16:39
SmokeMachine yes, sorry, I mean warning... 16:40
perlpilot SmokeMachine: because not all of your rules have exception set
SmokeMachine hum! exceptions!!! 16:41
I was looking at line 18!
perlpilot: thanks!
jnthn Line numbers are added at statement level at the moment, so multi-line statements can sometimes be a bit confusing 16:42
Sometime to try and fix at some point :)
*something
perlpilot SmokeMachine: also, it looks like you're using both "exception" and "exceptions"
16:42 snowkiss21 joined
sena-kun btw, I'll merge github.com/perl6/doc/pull/1192 as, it seems, nobody is against and we planned it for a while. After the merge github.com/perl6/doc/issues/776 will be closed. 16:43
SmokeMachine the one on the plural form is to receive a array and than I transform that array into a Junction on the not plural form...
perlpilot ok. I wasn't sure as I didn't look at the code in detail.
16:46 gregf_ joined 16:56 benjibenji joined
IOninja huh "The RT System itself - Status changed from 'rejected' to 'open'": rt.perl.org/Ticket/Display.html?id...et-history 16:57
wonder what happened
16:58 abraxxa left
IOninja Getting sentient and trolly... 16:58
But I showed that RT System who's boss
Geth doc: f68df26403 | (Tom Browder)++ | doc/Language/control.pod6
tweak wording, correct format errors
16:59 devmikey left 17:03 benjibenji left
Geth doc: 43756336e7 | (Tom Browder)++ | doc/Language/control.pod6
add default use of $_ to "when"
17:05
tbrowder gfldex: okay...
17:13 zakharyas left
Geth doc: 46ffe0d035 | Altai-man++ | CONTRIBUTING.md
Explain examples output style
17:14
doc: a7f74fe9f9 | Altai-man++ | CONTRIBUTING.md
Merge pull request #1192 from perl6/contributing-examples-style

Contributing examples output style explanation
17:14 zakharyas joined
TimToady m: my @a = <one two three>; my $b = [@a,]; @a.push("four"); say $b; # [@a] copies by one-arg rule 17:16
camelia rakudo-moar 4b85db: OUTPUT«[[one two three four]]␤»
TimToady oops, mischan 17:17
17:21 llfourn joined 17:22 khw joined 17:26 llfourn left 17:28 dakkar left 17:37 zakharyas left
IOninja m: my @a = <one two three>; my @b = @a,; @a = @b,; @a.push("four"); say @b; say @a 17:40
camelia rakudo-moar 4b85db: OUTPUT«(\Array_66586808 = [[Array_66586808 four]])␤(\Array_66586920 = [[Array_66586920] four])␤»
IOninja hehe
m: my @a = <one two three>; my @b = @a,; @a = @b,; @a.push("four"); say @b.perl; say @a.perl
camelia rakudo-moar 4b85db: OUTPUT«(my \Array_61540616 = [[Array_61540616, "four"],])␤(my \Array_61541120 = [[Array_61541120,], "four"])␤»
IOninja m: my @a = <one two three>; @a = @a,; @a.perl.EVAL.say 17:41
camelia rakudo-moar 4b85db: OUTPUT«[(Mu)]␤»
IOninja
.oO( close 'nuf... )
17:43 agentzh joined
IOninja m: q|(my \Array_60715336 = [{Array_60715336}(),])|.EVAL.say 17:44
camelia rakudo-moar 4b85db: OUTPUT«[(Mu)]␤»
IOninja m: q|(my @Array_60715336 = [{@Array_60715336}(),])|.EVAL.say 17:45
camelia rakudo-moar 4b85db: OUTPUT«(\Array_38592536 = [Array_38592536])␤»
IOninja How come @foo works but \foo doesn't above?
Or... how come there's an error about trying to initialize itself with the @foo but not with \foo
m: q|(my @Array_60715336 = [42, {@Array_60715336}()[0],])|.EVAL.say 17:47
camelia rakudo-moar 4b85db: OUTPUT«[42 (Any)]␤»
IOninja Ahhh. 'cause the @foo already got a container
m: q|((my @Array_62604976) = 42, @Array_62604976,)|.EVAL[1][1][1][0].say 17:52
camelia rakudo-moar 4b85db: OUTPUT«42␤»
IOninja \o/
17:55 ChoHag left 17:57 ChoHag joined 17:58 faraco left 18:01 lizmat_ joined 18:02 sufrostico joined 18:03 lizmat left 18:04 girafe joined
IOninja hm, what other thing can you make circular that isn't an Array or a Hash? 18:12
18:13 jfuller left
gfldex IOninja: maybe a Pair? 18:15
ugexe m: my \a = \a; say a 18:16
camelia rakudo-moar 4b85db: OUTPUT«Cannot call method 'perl' on a null object␤ in block <unit> at <tmp> line 1␤␤»
IOninja hah
m: my $p = :42a; $p.value = $p; say 4p 18:17
camelia rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3my $p = :42a; $p.value = $p; say 47⏏5p␤»
IOninja m: my $p = :42a; $p.value = $p; say $p
camelia rakudo-moar 4b85db: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at <tmp> line 1␤␤»
IOninja m: my $p = :42a; $p.value := $p; say $p
camelia rakudo-moar 4b85db: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use bind operator with this left-hand side␤at <tmp>:1␤------> 3my $p = :42a; $p.value := $p7⏏5; say $p␤»
IOninja gfldex: how can it be done?
oh
m: my $p; $p = :a($p); say $p
camelia rakudo-moar 4b85db: OUTPUT«(\Pair_57833856 = a => Pair_57833856)␤»
IOninja cool
m: my $p; $p = :a($p); say $p.perl.EVAL<a> 18:18
camelia rakudo-moar 4b85db: OUTPUT«(Mu)␤»
gfldex m: class C { has $.c is rw }; my $c = C.new; $c.c = $c; dd $c;
camelia rakudo-moar 4b85db: OUTPUT«C $c = (my \C_31805024 = C.new(c => C_31805024))␤»
IOninja hmmm
gfldex enum may work too using the MOP
in fact, pretty much anything might work using the MOP
IOninja m: q|((my $Pair_57833856) = a => $Pair_57833856)|.EVAL<a> 18:19
camelia ( no output )
IOninja m: q|((my $Pair_57833856) = a => $Pair_57833856)|.EVAL<a>.say
camelia rakudo-moar 4b85db: OUTPUT«(\Pair_50370960 = a => Pair_50370960)␤»
IOninja m: q|((my $Pair_57833856) = a => $Pair_57833856)|.EVAL<a><a><a>.say
camelia rakudo-moar 4b85db: OUTPUT«(\Pair_36893024 = a => Pair_36893024)␤»
gfldex it's recursions all the way down
IOninja Well, I have a fix for Array and Hash. Not sure about the rest though 'cause of the container stuff 18:20
you can't (my \foo) = [foo,];
oohh
m: q|((my $Pair_57833856) = a => $Pair_57833856<>)|.EVAL<a><a><a>.say
camelia rakudo-moar 4b85db: OUTPUT«(Any)␤»
IOninja hm nevermind. I thought <> thing deconted
18:22 llfourn joined 18:23 _kristian joined 18:27 llfourn left 18:40 espadrine_ left 19:01 moritz joined
Geth doc: 30380fd806 | (Will "Coke" Coleda)++ | doc/Language/control.pod6
remove trailing whitespace
19:04
19:09 AlexDaniel joined 19:12 cdg left 19:16 itcharlie left 19:17 cdg joined 19:18 snowkiss21 left 19:19 sufrostico left 19:21 llfourn joined 19:22 cdg left 19:26 llfourn left 19:27 darutoko left, raiph left, sena-kun left 19:30 espadrine joined, eliasr left 19:40 agentzh left 19:44 agentzh joined
AlexDaniel IOninja: re “what other thing can you make circular that isn't an Array or a Hash?” 19:45
m: my $x := (my $y := $x); say $x.WHAT
camelia rakudo-moar 67aeef: OUTPUT«(Mu)␤»
AlexDaniel (RT #127254) 19:46
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127254
AlexDaniel bisect: my $x := (my $y := $x); say $x.WHAT
bisectable6 AlexDaniel, Bisecting by exit signal (old=2015.12 new=67aeefa). Old exit signal: 11 (SIGSEGV)
AlexDaniel, bisect log: gist.github.com/fefb62ce77d582687e...c0df188465
AlexDaniel, (2016-04-13) github.com/rakudo/rakudo/commit/ae...55297757a3
19:47 ufobat left
IOninja AlexDaniel: I don't get what's circular about it. You're just replacing the container with it's self are you not? 19:52
itself 19:53
timotimo <> on a scalar will decont, won't it?
yoleaux 16:30Z <tbrowder> timotimo: please look at "when" doc commit
IOninja m: my $x := (my $y := $x); $y = 42; say $x 19:54
camelia rakudo-moar 67aeef: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at <tmp> line 1␤␤»
IOninja timotimo: yeah, it does.
AlexDaniel: actually, you're binding a Mu to it even, innit?
AlexDaniel IOninja: well, as I read it, $y should be bound to $x while $x is bound to $y… 19:55
19:55 eroux left
IOninja m: ((my $P) = a => $P<>); say $P 19:55
camelia rakudo-moar 67aeef: OUTPUT«a => (Any)␤»
AlexDaniel m: my $x := (my $y = 5); $y = 42; say $x; say $y
camelia rakudo-moar 67aeef: OUTPUT«42␤42␤»
AlexDaniel m: my $x := (my $y = 5); $x = 42; say $x; say $y
camelia rakudo-moar 67aeef: OUTPUT«42␤42␤»
IOninja timotimo: ^ but in this case it's done before $P got any real value, so you get an Any there
That's what I meant back when I first thought <> was broke above 19:56
AlexDaniel IOninja: and no, that's not Mu. That's null
m: my $x := (my $y := $x); say $x.^name 19:57
camelia rakudo-moar 67aeef: OUTPUT«VMNull␤»
AlexDaniel m: Mu.^name
camelia ( no output )
AlexDaniel m: say Mu.^name
camelia rakudo-moar 67aeef: OUTPUT«Mu␤»
IOninja m: my $x; $x := (my $y := $x); $y = 42; say $x; $x = 72; say $x
camelia rakudo-moar 67aeef: OUTPUT«42␤72␤»
IOninja Ah, OK.
AlexDaniel: I think that should really complain about using the variable to initialize itself 19:58
m: my @a = @a; # like this one does
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use variable @a in declaration to initialize itself␤at <tmp>:1␤------> 3my @a = @7⏏5a; # like this one does␤ expecting any of:␤ term␤»
IOninja And then you don't get any VMNulls
m: my \x := (my $y := x); say x.^name
camelia rakudo-moar 67aeef: OUTPUT«VMNull␤»
AlexDaniel IOninja: yes, it should probably be disallowed
IOninja Same here
19:58 andrzejku_ joined
AlexDaniel since when it started giving a warning by the way… 19:59
andrzejku_ hey
AlexDaniel not even a warning though
andrzejku_ what do you know about Perl6 and IoT?
AlexDaniel bisect: my @a = @a
bisectable6 AlexDaniel, On both starting points (old=2015.12 new=67aeefa) the exit code is 1 and the output is identical as well
AlexDaniel, Output on both points: 04===SORRY!04=== Error while compiling /tmp/wax1dYBxM9␤Cannot use variable @a in declaration to initialize itself␤at /tmp/wax1dYBxM9:1␤------> 03my @a = @08⏏04a␤ expecting any of:␤ term
AlexDaniel c: all my @a = @a
committable6 AlexDaniel, gist.github.com/d57b425c2542275aab...dd8461b4e5
IOninja andrzejku_: are you hunting for the vaugest of questions? :) 20:00
AlexDaniel bisect: old=2015.07 my @a = @a
bisectable6 AlexDaniel, Bisecting by exit code (old=2015.07 new=67aeefa). Old exit code: 0
AlexDaniel, bisect log: gist.github.com/05a3d1105ed35d4624...815876f48d
AlexDaniel, (2015-08-17) github.com/rakudo/rakudo/commit/37...ecd97dc7d5
IOninja vaguest even\
andrzejku_ IOninja, no
look here www.linux.com/news/event/elcna/201...approaches 20:01
IOninja tl;dr 20:02
20:03 bjz joined
AlexDaniel m: my @a = @::a, 25; say @a 20:03
camelia rakudo-moar 67aeef: OUTPUT«(\Array_53743872 = [Array_53743872 25])␤»
AlexDaniel um, why was it disallowed, by the way? 20:04
DrForr Perl 6 has been compiled to Android and ARM, at the very least. What are you asking about specifically, andrzejku?
IOninja m: my @a = @::a, 25; say @a.perl.EVAL[0][0][0][1]
camelia rakudo-moar 67aeef: OUTPUT«25␤»
andrzejku_ I am asking if someone started to play with it
IOninja andrzejku_: why?
AlexDaniel m: my $a := $::a; say $a 20:05
camelia rakudo-moar 67aeef: OUTPUT«(Mu)␤»
andrzejku_ IOninja, because IoT every language got its own support for IoT?
AlexDaniel m: my $a := $::a; say $a.^name
camelia rakudo-moar 67aeef: OUTPUT«VMNull␤»
AlexDaniel so nothing has changed
c: 3754356d8e my $a := $::a; say $a.^name
committable6 AlexDaniel, ¦«3754356»: «exit signal = SIGSEGV (11)»
andrzejku_ IOninja, artoo.io/
AlexDaniel yes, the fix didn't fix anything
andrzejku_ even ruby
AlexDaniel it's jnthn's work that resolved the underlying segv problem
IOninja andrzejku_: but why are you asking about it?
andrzejku_ IOninja, I am curious 20:06
AlexDaniel and the patch actually broke a feature?
:S
IOninja AlexDaniel: hm, you're right, seems at least @ and % can be used to init selfs
20:06 jraglin joined
IOninja m: my %h = :b( 20:06
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at <tmp>:1␤------> 3my %h = :b(7⏏5<EOL>␤»
AlexDaniel I see no reason why I cannot have a self-referential array
IOninja m: my %h = :b(%::h), :42a; say %h<b><b><a> 20:07
camelia rakudo-moar 67aeef: OUTPUT«42␤»
AlexDaniel m: my @a = 25, @a
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use variable @a in declaration to initialize itself␤at <tmp>:1␤------> 3my @a = 25, @7⏏5a␤ expecting any of:␤ term␤»
DrForr andrzejku_: Support for IoT doesn't magically come into existence for any language. It needs people interested in it and working on it.
AlexDaniel like wtf, why not
IOninja AlexDaniel: so... you're submitting a patch then :)
AlexDaniel sure
IOninja m: my $x = $x
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use variable $x in declaration to initialize itself␤at <tmp>:1␤------> 3my $x = $7⏏5x␤ expecting any of:␤ term␤»
AlexDaniel I can do that
m: my $x = $::x
camelia ( no output )
IOninja AlexDaniel++
andrzejku_ ok
IOninja m: my $x = $::x; say $x.^name
camelia rakudo-moar 67aeef: OUTPUT«Any␤»
andrzejku_ but do you think if for example I would start creating IoT 20:08
and after a few month
IOninja AlexDaniel: Well, with $x I guess it don't make sense, eh? And with \foo
andrzejku_ people start to use it
that's a question if Perl6 is only for scripts and web
AlexDaniel the revert might open some other ways to create VMNulls, but you can do it anyway if you really try
andrzejku_ I don't know
AlexDaniel so it falls under DIHWIDT
DrForr andrzejku_: You're more than welcome to put your modules up on GitHub and we'll add them to modules.perl6.org.
andrzejku_ okay 20:09
AlexDaniel IOninja: yeah, for scalars maybe not
andrzejku_ probably the best solution should be to use Perlix as embedded for IoT
AlexDaniel IOninja: actually forget what I've just said
DrForr andrzejku_: Perl6 is not just for "scripting and web." There are GUI libraries, I was just seeing talk about people optimizing games using SDL.
AlexDaniel m: my $a = ($::a, 25)
camelia ( no output )
AlexDaniel m: my $a = ($::a, 25); say $a
camelia rakudo-moar 67aeef: OUTPUT«(\List_73050816 = (List_73050816 25))␤»
IOninja hehe cool
AlexDaniel IOninja: scalars are alright
andrzejku_ okay
IOninja m: my \a = (a, 25); say a 20:10
camelia rakudo-moar 67aeef: OUTPUT«((Mu) 25)␤»
IOninja Funny that for the case that actually doesn't work it doesn'
t complain :")
andrzejku_ DrForr, I am just afraid that many good Perl developers will die soon
and we need to code more
DrForr andrzejku_: Perlix was a joke that someone may have carried a bit far. If you want IoT support for Perl 6, whatever that means, it's not going to happen unless somoene builds it. 20:11
andrzejku_ to keep Perl alive
DrForr andrzejku_: I work in an office with 40+ Perl hackers, all roughly 22-25 years old.
IOninja is only 30
andrzejku_ DrForr, huh so they are pretty young 20:12
DrForr Why are you afraid of Perl developers dying? Where did you get this evidence?
IOninja I meant 17
El_Che IOT is not the spot you want to go right now with a new language. The contraints are very... contraining 20:13
IOninja would prefer the depressing self-fullfilling profecies about "Perl Dying" and people whining about it would stay in Perl 5 land
andrzejku_ DrForr, what about people which were at the Perl creation? if Perl was started at 87' so they guy who was a new developer got in 87' 20years + 20years because we got now 2017 so they got 40years +
old good perl developers are 40+
IOninja andrzejku_: so? 20:14
andrzejku_ this is the age when programmers going die
El_Che andrzejku_: non dynamic languages are clearly in the advantage there
IOninja andrzejku_: what does that have to do with anything?
20:14 jraglin left
andrzejku_ I watch once the Netscape programmers they look unhealthy as fuck 20:14
IOninja andrzejku_: what does that have to do with a language... and Perl 6 especially? 20:15
andrzejku_ IOninja, old perlers will die and there no many young
though
IOninja andrzejku_: what do you base this data on? 20:16
DrForr andrzejku_: Perl really started to get adopted around version 5 in the late 90s, actually.
20:16 pmurias joined
IOninja andrzejku_: what's your proof? 20:16
andrzejku_ IOninja, I just calculated this above
perlpilot andrzejku_: your "calculation" is anecdote, not proof 20:17
andrzejku_ there no proof I just calculated and I am worried a bit
IOninja andrzejku_: the obvious flaw in your calculation is assuming Perl developers = Perl 6 developers = People who were programmers in '87 and no new programmers were birthed ever since
DrForr andrzejku_: And based it on the completly fallacious notion that you have to start with perl 1. LIke I said, most poeple starteed using it around verison 5.
IOninja andrzejku_: it's asinine
DrForr *version
IOninja andrzejku_: Here. 16 year olds presenting about Perl 6: medium.com/hypetonic/perl-6-the-mu....utv4acifm
Your argument is invalid.
andrzejku_ ya I don't say that I am right 20:20
but I am worried
DrForr You're making up data and then presenting it as a strawman.
20:21 agentzh left
andrzejku_ DrForr, :) 20:21
DrForr Why be worried if you don't even know if your data is right? Confirm it first.
andrzejku_ okay okay nevermind
perlpilot Unless being worried motivates you to do something to help the Perl community ... ;)
andrzejku_ perlpilot, yes that's true 20:22
perlpilot, that's my motivation though
20:22 llfourn joined
IOninja I'd suggest you pick a different one. 20:22
DrForr At least one that's not so easy to drive holes through :) 20:23
IOninja Write stuff you enjoy writing. So you'd be interested in maintaining it and provide support for it. 20:24
Writing stuff under the delusion that if you just write X modules somehow users will happen will just leave piles of bitrot.
andrzejku_ IOninja, sure okay
IOninja Exhibit A: metacpan.org/release/WebService-Cryptsy
Note the note: metacpan.org/pod/WebService::Crypt...NANCE-NOTE 20:25
perlpilot andrzejku_: For play, adventofcode.com is nice. I've been off and on using Perl 6 to solve those problems. 20:26
20:26 AlexDaniel left
perlpilot andrzejku_: the only ones (that I remember) that give Perl 6 problems are the ones where you need to compute many MD5 hashes. Rakudo is a bit slow at that. 20:27
andrzejku_ perlpilot, I prefer exercism
20:27 llfourn left
IOninja perlpilot: but... use moar coares \o/ 20:28
Perl 6 is 2,000% faster by adding two words of code: tpm2016-2.zoffix.com/#/16 20:29
tpm2016-2.zoffix.com/#/15 20:30
perlpilot yeah, my next bit of play with that might be doing that.
IOninja :)
perlpilot and/or using NativeCall to hack in a C version of MD5
El_Che IOninja: are the words "Abra Cadabra"? :) 20:31
DrForr I thought it was Avada ...
IOninja El_Che: no. start and await. I'm not even making the numbers up. Though I did use a 32-core box :) 20:32
20:32 TEttinger joined
DrForr I thought it was Avada Kadavra or something like that. 20:32
20:33 agentzh joined
IOninja en.wikipedia.org/wiki/Abracadabra 20:33
El_Che DrForr: "I create as I speak". Transliterated from Aramic -> Hebrew, so it will have many spellings :)
and you're suppose to read it with a Spanish accent 20:34
:)
ah, tha avada thing is a harry potter thing? 20:35
DrForr I gave up around the Gobbledy of Gook :)
20:37 AlexDaniel joined
AlexDaniel “I am just afraid that many good Perl developers will die soon” well, heh… There are many young developers, don't worry 20:38
El_Che “I am just afraid that many good Perl developers will die soon" <-- sounds like a threat :)
DrForr "Nice language, shame if something were to *happen* to it." 20:39
IOninja :)
tony-o haha
El_Che "Make it faster or else"
AlexDaniel I also loved this: “old good perl developers are 40+, this is the age when programmers going die” 20:40
20:41 agentzh left
AlexDaniel that's a very optimistic view on the life expectancy 20:41
IOninja m: my $p = :a($::p); say $p
camelia rakudo-moar 67aeef: OUTPUT«(\Pair_66335072 = a => Pair_66335072)␤»
DrForr Based on a sample size of seeing a few people in the 90s.
IOninja AlexDaniel: ^ another one that don't need the using-to-init-self error 20:42
perlpilot Have Perl programmers in their 40s been dying off and I just didn't notice? ;-)
AlexDaniel IOninja: yea, the error has to go
[Coke] (potter) imgur.com/gallery/rgskT
geekosaur didn't notice dying within the last 10ish years... 20:46
DrForr I know of 2 at least, but I'm not feeding the fire. 20:47
IOninja m: my @a; my $p = :a(@a); @a = @a, $p; $p.perl.EVAL.perl.say
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Term definition requires an initializer␤at /home/camelia/EVAL_0:1␤------> 3((my \Pair_495672327⏏5) = :a(((my @Array_49216448) = [@Array_4␤»
IOninja whoooops
I broke it
AlexDaniel geekosaur: well, heh, then you're not a *good* Perl developer :P
IOninja m: my $p = :a($::p); $p.perl.EVAL.say 20:48
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Term definition requires an initializer␤at /home/camelia/EVAL_0:1␤------> 3((my \Pair_689514087⏏5) = :a(\Pair_68951408))␤»
IOninja star: my $p = :a($::p); $p.perl.EVAL.say
camelia star-m 2016.10: OUTPUT«a => (Mu)␤»
IOninja Well.. it's not like it worked in the past :}
AlexDaniel c: all my $p = :a($::p); $p.perl.EVAL.say
who knows? :)
committable6 AlexDaniel, gist.github.com/acc9544ae2d355809c...e8530d85a8 20:49
AlexDaniel wait what…
20:49 Actualeyes left
AlexDaniel ah, right! 20:49
20:50 cpage__ joined
IOninja relocates 20:50
20:52 cpage left, cpage__ is now known as cpage 20:53 eliasr joined, Rogbro joined 20:54 Actualeyes joined
Rogbro p6: say "ok" if " (" ~~ rx{'(´ <!after \s>} 20:57
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in single quotes; couldn't find final "'" ␤at <tmp>:1␤------> 3say "ok" if " (" ~~ rx{'(´ <!after \s>}7⏏5<EOL>␤ expecting any of:␤ single quotes␤»
[Coke] Rogbro: can't mix those types of single quotes. 20:58
AlexDaniel u: `
unicodable6 AlexDaniel, U+0060 GRAVE ACCENT [Sk] (`)
AlexDaniel well, that's not quite a quote… 20:59
Rogbro p6: say "ok" if " (" ~~ rx{"(" <!after \s>} 21:00
camelia rakudo-moar 67aeef: OUTPUT«ok␤»
21:00 jraglin joined
Rogbro p6: say "ok" if " (" ~~ rx{<!after \s> "("} 21:06
camelia ( no output )
21:07 cdg joined, lukiramu is now known as lukaramu
IOninja p6: say "ok" if " (" ~~ rx{<![\s]> "("} 21:11
camelia rakudo-moar 67aeef: OUTPUT«ok␤»
IOninja :(
21:11 Rogbro left 21:12 sufrostico joined
IOninja Ah, that's for look ahead o.ly 21:13
p6: say "ok" if " (" ~~ rx{<![\s]> . "("} 21:14
camelia ( no output )
IOninja \o/
21:15 cdg_ joined 21:17 jjido joined, bjz left 21:19 cdg left 21:20 mr-foobar left 21:24 mr_ron left, llfourn joined 21:26 mr-foobar joined
cale2 If a "help wanted" section gets added to perl6weekly, I was going to mention Exercism.io and Perl6Koans. Both would be great for exposure and education 21:27
21:29 llfourn left
perlpilot cale2: you know what's a great way to get that section added? Start doing perl6weekly ;) 21:37
21:39 Tonik left
gfldex cale2: blog about it and lizmat will link to it 21:41
21:41 wamba left 21:43 bjz joined 21:46 jraglin left 21:49 jraglin joined 21:53 bjz left 21:56 cdg joined 21:57 kurahaupo__ joined 21:58 skids left 21:59 cdg_ left 22:00 kurahaupo left 22:05 leah2 left 22:06 andrzejku_ left 22:10 RabidGravy left
cale2 Blogging is a scary thing... never tried it before. What's the best way to do it without building a whole website? 22:10
perlpilot: I could probably help with that, but I'm very out of the loop on actual development work. 22:11
gfldex cale2: I write it in markdown then convert it to html and paste it on WP
IOninja One of available ways is to write it in markdown and submit a PR: github.com/zoffixznet/perl6.party/...IBUTING.md
If you want to post it on perl6.party. Though I imagine it's trivial to setup your own WP blog 22:12
22:12 pyrimidine joined, kjk left
IOninja And WP's prolly preferable: no PRs, edit all you want, no one mistakenly thinks I wrote the post, and I don't have to implement the multi-author bits :P 22:14
22:25 llfourn joined
samcv good * perl* 22:28
NeuralAnomaly, status 22:29
NeuralAnomaly samcv, [✘] Next release will be in 1 day and 7 hours. Since last release, there are 45 new still-open tickets (0 unreviewed and 0 blockers) and 10 unreviewed commits. See perl6.fail/release/stats for details
samcv tell me about Perl6Koans cale2 22:30
22:30 llfourn left
IOninja \o 22:30
cale2 samcv: github.com/WildYorkies/Perl6Koans I found the PerlKoans repo and it works great. It uses Test::More which is super easy to translate to Perl6. The main thing I need help with is how to translate the Perl5 packaging and command line stuff to Perl6 22:31
I know next to nothing about Perl5, you see 22:32
IOninja It's pretty easy. Ignore all the line noise and look up the remaining bits via `perldoc -f function-name` and `perldoc -v '$^X'` for weird variables 22:33
...and read perldoc perlreftut and perldoc perlretut
cale2 step one is to get the PerlKoans thing to simply run with rakudo. The next step is writing content that is specifically for Perl6 language (which I can do if no one wants to help with that portion)
IOninja: github.com/WildYorkies/Perl6Koans/...ns.pm6#L33 here to line 51 is an example of stuff I don't understand 22:35
22:35 kurahaupo__ left
IOninja cale2: same as in Perl6; that loads a module 22:35
go to metacpan.org/pod/MODULE-NAME to view its docs
AlexDaniel I hate when you want to revert something but there are conflicts :S 22:37
cale2 but the import is the same? what about those ! operators? $CLASS == $PACKAGE, $tb->level(2) etc etc
IOninja -> is a method call, foo->bar is foo.bar in Perl 6 22:38
Oh, and also dereferencing op
cale2: which ! operators? which line?
m: $*DISTRO.is-win.say 22:39
camelia rakudo-moar 67aeef: OUTPUT«False␤»
IOninja ^ that's replacement for this line github.com/WildYorkies/Perl6Koans/...ns.pm6#L50
github.com/WildYorkies/Perl6Koans/...ns.pm6#L34 this? A while guess would be that's asking to import everything BUT those routines, but check the module's docs 22:40
22:42 aindilis` left
IOninja $# thing is the last index of the array 22:42
22:42 aindilis` joined 22:43 cdg_ joined
IOninja kinda sad GitHub fails to highlight those correctly.. 22:43
22:44 cpage_ left
IOninja cale2: this entire thing is useless: github.com/WildYorkies/Perl6Koans/...6#L52-L102 22:45
%*ENV<PERL6_TEST_DIE_ON_FAIL> = 1; will have the same effect
cale2 IOninja: but the bail sub also displays the zen messages :)
22:46 cdg left
IOninja Oh right. 22:46
Now I remember what Koans are... 22:47
cale2 I don't get what `our $CLASS = __PACKAGE__;` or `$tb` do
samcv what is a Koan 22:48
IOninja cale2: __PACKAGE__ is current package but I don't see $CLASS used anywhere
22:49 pyrimidine left
IOninja Well, other than this line that's commented out and $tb is declared in it? github.com/WildYorkies/Perl6Koans/...ns.pm6#L38 22:49
22:50 pyrimidine joined
IOninja You can ignore it, I'd think. It's to do with Test::Builder::Module stuff 22:50
cale2 samcv: try this -> elixirkoans.io/
prob the most baller koans I've done
samcv oh so it's like testing things 22:51
IOninja Koan is Zen stuff en.wikipedia.org/wiki/K%C5%8Dan
samcv a paradoxical anecdote or riddle, used in Zen Buddhism to demonstrate the inadequacy of logical reasoning and to provoke enlightenmen
hmm
22:51 telex left
cale2 samcv: it's a popular way for learning a language. Make the tests pass. ruby made it popular with koans and katas, naturally 22:52
samcv m: use Test; is True, True;
camelia rakudo-moar 67aeef: OUTPUT«ok 1 - ␤»
samcv test passed \o/
22:52 telex joined
samcv that sounds fun though cale2 22:52
22:52 pmurias left
cale2 IOninja: github.com/WildYorkies/Perl6Koans/...ns.pm6#L37 this line. Is the Perl6 version something like `unit Class` 22:52
IOninja cale2: looking at that file, I'd start Perl 6 version from scratch and just use a few datapoints from that file. Like bail sayings and progress max length stuff and the lightbulb
samcv what is this =pod6 tag 22:53
and perl 6 doesn't have cut
IOninja cale2: no. the P6 version would be my $foo = $?CLASS; $foo.some-method
samcv i am confused now
cale2 guys, I don't know Perl5. I'm purely guessing haha
timotimo well, =pod6 is just an acceptable tag name, just like =bananas
samcv i guess
but 22:54
IOninja cale2: stop guessing and write in Perl 6 from scratch :)
samcv it doesn't compile
22:54 pyrimidine left
IOninja samcv: it's Perl 5 code. 22:54
cale2 m: use Test; is (1,2,3,4,5), (1,2,3).push: (4,5);
camelia rakudo-moar 67aeef: OUTPUT«Cannot call 'push' on an immutable 'List'␤ in block <unit> at <tmp> line 1␤␤»
cale2 m: use Test; is [1,2,3,4,5], [1,2,3].push: (4,5); 22:55
camelia rakudo-moar 67aeef: OUTPUT«ok 1 - ␤»
cale2 m: use Test; is [1,2,3,4,5], [1,2,3].push: |(4,5);
camelia rakudo-moar 67aeef: OUTPUT«ok 1 - ␤»
samcv i save all my perl 5 files with .pm6 too :P
IOninja m: use Test; &is.wrap: -> | { callsame() or say "you suck at koans, bruh" }; is 42, 5, "waaat" 22:56
camelia rakudo-moar 67aeef: OUTPUT«not ok 1 - waaat␤␤# Failed test 'waaat'␤# at gen/moar/Metamodel.nqp line 3907␤# expected: '5'␤# got: '42'␤you suck at koans, bruh␤»
IOninja That's something like what I'd do
.... the at...Metamodel.nqp sucks
samcv lol
cale2 is there a native test harness for perl6? instead of prove 22:57
IOninja m: use Test; &is.wrap: -> | { 'callsame()'.EVAL(:context(::OUTER) or say "you suck at koans, bruh" }; is 42, 5, "waaat"
camelia rakudo-moar 67aeef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3 | { 'callsame()'.EVAL(:context(::OUTER)7⏏5 or say "you suck at koans, bruh" }; is ␤ expecting any of:…»
IOninja bah
I think :context is internal anyway, so nevermind
cale2: up, it's a bit buggy tho
And there aren't any docs 22:58
cale2 up? I thought I read about one that you can use with zef test
AlexDaniel 1;
:)
IOninja cale2: I mean yup :)
m: use TAP::Harness
camelia rakudo-moar 67aeef: OUTPUT«===SORRY!===␤Could not find TAP::Harness at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ CompUnit::…»
IOninja umm
AlexDaniel star: use TAP::Harness
camelia star-m 2016.10: OUTPUT«===SORRY!===␤Could not find TAP::Harness at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/star-2016.10/share/perl6/site␤ /home/camelia/star-2016.10/share/perl6/vendor␤ /home/camelia/star-2016.10/share/perl6␤ CompUnit::Repository::A…»
IOninja m: use TAP; say TAP::Harness
camelia rakudo-moar 67aeef: OUTPUT«(Harness)␤»
AlexDaniel :o
IOninja cale2: though we haven't yet agreed that it should be shipped with Perl 6 :) 22:59
with Rakudo I mean
(but I'm sure we can stuff it into Star)
cale2 IOninja: I think it's fine if you don't ship it, but that'll be good to add to state of the ecosystem, etc
IOninja cale2: you can look (or copy?) this prove6 file: github.com/Leont/tap-harness6/blob...bin/prove6 23:00
cale2 what is TAP::Harness exactly? An alternative to prove/yup?
IOninja Yes
23:00 llfourn joined
IOninja It captures output from tests and interprets TAP and gives you all the info from it 23:01
cale2 this is getting mirky. All of them use the TAP style of testing. So there are 3 options you can use, though.
IOninja Which three options?
All of them who?
cale2 prove6, yup, TAP::Harness
IOninja Never heard of yup 23:02
cale2 oh, I thought that was the name of a harness xD lmao
IOninja Or did you misinterpret my "yup" above? I meant "yup" as in "yes"
cale2 hahaha
IOninja :)
cale2 Yup would be a great name for one though
IOninja heh
cale2 So with TAP::Harness, you would download that module via zef. Then you could configure zef to always run your tests through that harness 23:04
IOninja IIRC zef defaults to that module
cale2 with a simple `zef test mymodule` 23:05
ah
IOninja And currently it unofficially ships with Rakudo, but likely won't in the future (but will instead ship with Rakudo Star, so as far as proper end users are concerned the difference shouldn't matter).
23:06 girafe left
IOninja Oh yeah, you don't need prove6. You can just use zef test whatever 23:06
IOninja is done for the day 23:07
\o
23:07 cpage_ joined 23:08 cdg joined, erdic joined 23:11 cdg_ left 23:12 cdg left 23:15 skids joined 23:16 jjido left
samcv wait i thought we didn't have prove6 23:20
i asked about this before >:(
cale2 samcv: If I understand correctly, if you use prove on a perl6 .t file, you're using a modified version of the Perl5 prove. If you use `zef test`, you're using prove6 23:24
23:24 jjido joined
samcv no i know that! 23:24
23:24 mr_ron joined
samcv well you can do `prove -e perl6` and it'll use perl6 to run the files but 23:25
i want actual prove6
23:32 lep_ joined 23:33 LeCamarade left 23:35 leah2 joined, lep-delete left 23:39 espadrine left
cale2 samcv: You could have prove6 if you just use TAP::Harness as it's own executable separate from zef 23:39
samcv yes i would like that
cale2 samcv: github.com/Leont/tap-harness6/blob...bin/prove6 23:40
23:44 cale2 left 23:51 lukaramu left