»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
irced hi when I launch a process via Proc::Async.new and start it, the process appears to be killed when my script exits, even after I call start. Maybe it is not starting before the script exits? or maybe it is actually killing the process upon exit? how can I ensure that a process is fired and forgotten upon exit? 00:05
tellable6 2019-08-26T22:03:34Z #perl6 <guifa> irced: Take a look at the name token. Two things:
irced guifa: thanks for your feedback on subparse on august 26 00:08
got that tellable6? 00:09
AlexDaniel irced: no, because guifa is here :) 00:10
AlexDaniel but you can use .tell to force it to pass the message 00:10
irced rubs his eyes.
AlexDaniel: thanks!
.tell guifa: thanks for your feedback on subparse on august 26 00:11
tellable6 irced, I'll pass your message to guifa
AlexDaniel irced: it's not a perl6 issue, I'm pretty sure you'll see the same behavior everywhere else
irced basically, with Proc::Async (or any process launcher) I want a script that launches the process and exits immediately.
i have a bash script that with & proceeds even after exit 00:12
AlexDaniel it doesn't, try closing your terminal
irced AlexDaniel: well basically i want to reproduce what I can do when calling my bash script from an open terminal session but use perl6 not the bash script. 00:13
AlexDaniel: that is call the perl6 script instead of the bash script and get the same behavior that & after the command results in 00:14
AlexBaniel: from my bash shell, while the terminal is still open.
so I have a command, which specifically is the sox play command that in a bash script I can do play whatever.wav & 00:15
or actually it's play.whatever.wav 2>/dev/null &
anyway, the bash script will start playing as expected and in the meantime exit and return me to my bash prompt
can a perl script also exit to my bash prompt and still allow the process to start-finish ? 00:16
perl6
irced maybe should be looking at exec
AlexDaniel irced: no you should be looking for a way to detach the child process 00:17
irced AlexDaniel: sounds about right.
irced starts thinking.
AlexDaniel see this for some info: unix.stackexchange.com/a/148698/221501 00:18
irced starts reading.
AlexDaniel but that's not it 00:20
irced i dunno, could be something there
there's disown for one 00:21
disown [-h] [-ar] [jobspec ... | pid ...]
irced eyes the pid.
then there's nohup 00:22
disown is a builtin, that might be an obstacle .. .. ..
AlexDaniel no, cuz you don't need disown…
irced decides to roll a nohup. 00:23
irced starts editing.
AlexDaniel I guess it would've been easier if we had `fork`, but we don't 00:24
maybe nativecall and popen? I'm not sure, really…
irced AlexDaniel: yes, that is certainly an avenue to consider! 00:25
AlexDaniel: an asynchronous native call could be just the thing.
irced has not lost faith in nohup / disown as of yet. 00:26
irced moves on to disown utilizing pid 00:28
AlexDaniel no-no, hold on 00:29
you have to understand what's going on there exactly
but have you tried something like this? perl6 -e 'start { run <nohup play -n synth 3 triangle 800-500> }; sleep 0.1' 00:30
should also work with Proc::Async 00:31
`sleep` is there to make sure it doesn't exit before the process is started, with Proc::Async you can handle it better
irced eyes the sleep command. 00:32
AlexDaniel the sound lasts much longer than 0.1s
irced i was thinking about that
lessee
irced smiles.
AlexDaniel honestly, I myself don't quite get it. So the parent exits, and nohup prevents SIGHUP from terminating the process, and that's it? 00:37
I thought it required a bit more than just letting the process become an orphan 00:38
anyway, someone probably knows much more about this stuff and will likely scream at my once they read these messages :)
irced AlexDaniel: interesting, i have confirmed it works with a short sound sample but not with Proc::Async (that is it won't work with Proc::Async).trying now with a longer sound 00:39
wow, it is working with a longer sound sample 00:43
irced smiles.
irced starts making some adjustments. 00:44
AlexDaniel: thanks for your creative input on this!
I'll see if I can speak to the nohup part of it after I try without.
so, nohup is just another way of suppressing the standard outputs it appears 00:45
irced continues to tweak. 00:46
but without nohup run bombs if the :err adverb .. hmm 00:47
even with nohup. so this worked but nohup (without any arguments anyway) outputs some bleeps which means it is only satisfying part of my objective of reproducing play whateversound.wav 2>/dev/null & 00:50
irced reconsiders async and grabbing the pid and operating on it with the builtin disown
note that the process seems to run if I don't try to redirect err 00:53
ok, for some reason things are behaving as expected even with super short sound samples (whereas before it wasn't but i wasn't doing much differently). anyway, i settled on the following: 00:59
my $proc = Proc::Async.new('play', $cmd-arg, :err); my $h = '/dev/null'.IO.open(:w); $proc.bind-stderr($h); $proc.start;
now another can of worms is i have to type stty sane afterwards doh! 01:01
solved it, added :out adverb (which apparently is used by SoX to make thing sane ?? 😃)
so fingers crossed looks like with your help discussing it i arrived at a solution. thanks again AlexDaniel. 01:02
irced added $proc.bind-stdout($h) 01:07
i think i just pulled a nohup 😃 01:08
hythm hello, Where can I find a list of all modules available in json format? ecosystem-api.p6c.org/projects.json this doesn't seem to have all available modules 02:01
vrurg hythm: try modules.perl6.org 02:13
modules.perl6.org/search/?q=json
hythm vrurg: sorry about the confusion, this lists all modules have tagged with "json", I did not mean all json modules, I meant to get list of all the modules, similar to this ecosystem-api.p6c.org/projects.json (this does not have every available modules in module.perl6.org) 02:17
vrurg hythm: Oh, I see. I confused myself. I'm afraid, ecosystem is the fullest list you could get. 02:20
AlexDaniel hythm: what about ecosystem-api.p6c.org/projects.json and raw.githubusercontent.com/ugexe/Pe.../cpan.json
hythm: ah, now I see you linked projects.json :) I think cpan.json is the one you are missing 02:21
hythm: if both these files together are not full please let me know as that's exactly what I use in Blin github.com/perl6/Blin/blob/30d894c...p6#L35-L38 02:22
hythm Thanks AlexDaniel, checking...
proc What's the correct way to use a variable within a character class? I've been trying to do something similar to the following which isn't working: "my $aa = 'abc'; my $bb = 'yabba'; say so $bb ~~ /<[$aa]>/;" 04:39
an error get printed that says: "Repeated character (a) unexpectedly found in character class" 04:40
Grinnz =~ is the match binder not ~~
anyway that looks right to me 04:41
proc when attempting to replace the ~~ with a =~ I get "Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~" 04:42
There's a thread on the perl6-users mailing list w/ this very question. There have been lots of guesses, but no one actually knows how to do it. I just figured I ask here. 04:45
hythm how to write an array content to file without stratifying it first? the below code outputs "a 1", instead of "{a => 1}" 04:55
m: my %h = :1a; my @a = %h; 'test'.IO.spurt: @a; say slurp 'test';
evalable6 (exit code 1) Failed to open file /home/bisectable/git/whateverable/test: Read-only file system
in block <unit> at /tmp/Ie09BxRR_B line 1
04:56
hythm stringifying*
Grinnz whoops, didn't see the channel name :) 04:57
proc s'ok 04:58
discord6 <Aearnus> hythm: try .perl 05:07
<Aearnus> m: my %h = :1a; %h.perl.say 05:08
evalable6 {:a(1)}
discord6 <Aearnus> Oh. Huh.
<Aearnus> Thought that did what you wanted
hythm Aearnus: Thanks anyway, yeah it did not work, the array contains JSON and .perl makes from-json not able to parse it 05:10
I think looping through the array and :append to the files works 05:11
file*
may be not
Xliff irced++: You might want to consider adding that to the docs! 05:21
aearnus[m] codegolf.stackexchange.com/a/191104 how does this work? 05:59
i've never seen the `~m/<regex>/` syntax before 06:00
also... where is the argument there?
moritz m/.../ matches against $_ 06:04
aearnus[m] ahh 06:05
antoniogamiz o( 06:25
aearnus[m] o/
jmerelo hi! 06:26
antoniogamiz: checking out [Coke]'s report? 06:27
antoniogamiz yep
jmerelo antoniogamiz: just seen that. Let's wait for the answer. Although we can test 0.3.3 right now, and check if it's OK (maybe it's not)
Leaving for $dayjob
antoniogamiz ok 06:28
Xliff Where is [Coke]'s report? 06:32
antoniogamiz github.com/finanalyst/pod-cached/issues/25
Xliff Ah. 06:34
tobs proc: chances are interpolation into a character class "literal" is not supported, but I don't know for sure either. The regex interpolation mechanism sits further outside: 06:49
m: my @aa = 'a' .. 'f'; say "0123def" ~~ /^ <{ "<[0..9 @aa.join() ]>" }>+ $/ # based on stackoverflow.com/a/47265426 06:50
evalable6 「0123def」
tobs m: my @aa = flat '0' .. '9', 'a' .. 'f'; "0123def" ~~ /^ @aa+ $/ # proc: or if you have the entire character class in an array anyway, you can use that in matching 06:52
evalable6
tobs m: my @aa = flat '0' .. '9', 'a' .. 'f'; say "0123def" ~~ /^ @aa+ $/
evalable6 「0123def」
Xliff \o tobs 07:02
tobs Xliff: o/ 07:12
El_Che last commenter on the renaming thread is trolling, right? 08:31
pmurias El_Che: hard to distinguish weird and trolling 08:59
El_Che good point
tadzik I don't think the comments in that thread have value anymore :) 09:06
El_Che I wouldn't mind the weird, but it's clear that some commenters haven't read the thread or even the title of the issue 09:07
cpan-p6 New module released to CPAN! LibXML (0.0.1) by 03WARRINGD 09:17
Geth doc: 9065702106 | (JJ Merelo)++ | 2 files
Removes tests that are now in Documentable, refs #2996
09:45
doc: 21546ff149 | (JJ Merelo)++ | META6.json
Eliminates from META6
doc: 1e1b878fc3 | (JJ Merelo)++ | util/travis-test.sh
Eliminates htmlify.p6 from test refs #2996
09:47
pmurias vrurg: ping 09:56
vrurg: if we want to get rid of the code gen step for the js makefile, what would be a good plan to do it? 09:57
vrurg: I guess I should fix the build after the revision changes first 09:58
pmurias vrurg: and then just replacing the script with it's output and cleaning it up? 09:58
El_Che www.heise.de/developer/meldung/Per...10571.html 11:47
for those that read German
(or know of Google Translate)
daxim github.com/perl6/problem-solving/i...-526596745 # the uncharitable interpretation is that strika is trying to fool us. what is the charitable interpretation for that post? 11:49
El_Che according google translate, the servian word is Рак 11:52
Raku is probably phonetically similar to the word in cyrilic 11:53
it has the sound of the first 3 letters (long a), but no u 11:54
jast I believe that refers to the animal, not to the medical thing? just from looking at the list of translations on translate
El_Che both
jast oh yeah, I can't read, never mind :}
El_Che as in several languages 11:55
and the constallation
Xliff m: class A { method a { $*CLASS.^name.say } }; A.a
evalable6 Failure
El_Che because it looks like the animal
El_Che (with some imagination like all constillations :) ) 11:55
jast yeah, I just try to avoid making assumptions about one language from another
El_Che good principle
Xliff m: class A { method a { ::?CLASS.^name.say } }; A.a
evalable6 A
jast anyway, I guess the charitable interpretation is that the response was a little too literal? it's not *exactly* raku 11:56
daxim -u is the masculine dative ending, so raku would mean e.g. (with) cancer 11:57
jast also I suspect it will be quite hard to find a combination of syllables none of which has a negative association in *some* language ;)
daxim certainly
jast I see
El_Che in estonian is tranlating as "cell" 11:58
that would be pretty cool
OO to the next level
jast cells, the true microservices 11:59
moritz now we can have powerpoints with cell microscopy instead of container ships. I'm all for it :D 12:00
El_Che A fork could be called "mitosis" 12:04
Xliff m: "Hello".substr(0, 1).say 12:13
evalable6 H
Xliff m: "Hello".substr(0).say
evalable6 Hello
Xliff m: "Hello".comb[0].say 12:14
evalable6 H
Xliff Which is faster? .comb or .substr? 12:15
El_Che write a for loop and time it?
I would bet on substr
Xliff k 12:16
sena_kun benchable6, help
benchable6 sena_kun, Like this: benchable6: f583f22,HEAD my $a = ‘a’ x 2¹⁶; for ^1000 {my $b = $a.chop($_)} # See wiki for more examples: github.com/perl6/whateverable/wiki/Benchable
Xliff m: "Hello".comb[0] ^10000; say now - INIT now
evalable6 WARNINGS for /tmp/aAoEKZoCrG:
0.00396207
Useless use of "^" in expression "[0] ^10000" in sink context (line 1)
Xliff m: "Hello".comb[0] for ^10000; say now - INIT now
evalable6 0.0454392
Xliff m: "Hello".substr(0, 1) for ^10000; say now - INIT now
evalable6 0.0135736
timotimo i would also bet on substr
Xliff And substr is da winnah
.comb is less typing, tho. :( 12:17
timotimo m: say "foo".chop
evalable6 fo
timotimo not quite
El_Che (that's the one jnthn used on his performance talk when comparing to p5 regex :P )
sena_kun benchable6, compare HEAD "Hello".comb[0] for ^1000 ||| "Hello".substr(0, 1) for ^1000
benchable6 sena_kun, starting to benchmark the 1 given commit
sena_kun, gist.github.com/3639712f3d2464b2ac...000b72604c
sena_kun Xliff, ^
timotimo 1000 is really not enough by far 12:19
benchable6, compare HEAD "Hello".comb[0] for ^100_000 ||| "Hello".substr(0, 1) for ^100_000
benchable6 timotimo, starting to benchmark the 1 given commit
timotimo, gist.github.com/01ca063d4c79fccca1...b71d5512ca
timotimo there the difference is a lot more, about 10x 12:20
sena_kun timotimo, it still was correct with who is faster in general. :P
timotimo well, yeah
benchable6, compare HEAD "Hello".comb[0] for ^1_000_000 ||| "Hello".substr(0, 1) for ^1_000_000 12:21
benchable6 timotimo, starting to benchmark the 1 given commit
timotimo, ¦HEAD: «Benchmark: ␤«timed out after 10 seconds»»
timotimo wow, only 10 seconds?
benchable6, compare HEAD "Hello".comb[0] for ^300_000 ||| "Hello".substr(0, 1) for ^300_000
benchable6 timotimo, starting to benchmark the 1 given commit
timotimo, gist.github.com/740e1275a59a4fd9ad...8e843fa30b
timotimo wow, that is very wobbly 12:22
Xliff Which one is 0 and which one is 1?
timotimo the first is 0, the second is 1 12:23
Xliff It's kinda hard to tell from the output.
timotimo agreed
scimon So I'm thinking the longer the string the worse comb with get (as unless the compiler is smart it's going to make an array of all the characters). 12:30
s/with/will/
Wierdly... not as bad as I'd thought 12:33
m: p6 '( "a" x 4294967295 ).substr(0,1).say;say now - BEGIN now'
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/jqjCHPDJ1x
Undeclared routine:
p6 used at line 1
scimon m: ( "a" x 4294967295 ).substr(0,1).say;say now - BEGIN now
evalable6 a
0.0123537
scimon m: ( "a" x 4294967295 ).comb[0].say;say now - BEGIN now
evalable6 a
0.0114297
jnthn I think comb works lazily
scimon (p6 is my alias for perl6 -e and 4294967295 is apparently the longest string length) 12:34
jnthn: Looks like it! Awesome.
I did love this error message "Repeat count (100000000000) cannot be greater than max allowed number of graphemes 4294967295"
(But... if you want the 10 millionth character? Yeah... use substr) 12:37
m: ( "a" x 4294967295 ).substr(9_999_999,1).say;say now - BEGIN now
evalable6 a
0.01058806
scimon m: ( "a" x 4294967295 ).comb[10_000_000].say;say now - BEGIN now
evalable6 (signal SIGHUP) «timed out after 10 seconds»
scimon (Takes 20 seconds on my laptop. The other takes 0.009.) 12:43
timotimo ha 12:44
perhaps the comb iterator can be taught to skip, or maybe you need to .skip manually to make it fast 12:45
m: ( "a" x 4294967295 ).skip(9_999_999).head(1).say;say now - BEGIN now
evalable6 ()
0.0110685
timotimo oh look
it can skip very quickly
d'oh
m: ( "a" x 4294967295 ).comb.skip(9_999_999).head(1).say;say now - BEGIN now
evalable6 (a)
3.6842543
timotimo that's still not terribly slow, but pretty slow none the less 12:46
scimon Really depends on what you want to do I think (but yeah that's a LOT better than it was). 12:53
SmokeMachine m: ( "a" x 4294967295 ).comb.last.say; say now - BEGIN now 13:25
evalable6 (exit code 1) No such method 'last' for invocant of type 'Seq'. Did you mean any of these?
Hash
List
Rat
flat

in block <unit> at /tmp/f0UexesTI2 line 1
SmokeMachine m: ( "a" x 4294967295 ).comb.tail.say; say now - BEGIN now
evalable6 (signal SIGHUP) «timed out after 10 seconds» 13:26
SmokeMachine m: ( "a" x 4294967295 ).comb.skip(*-1).say; say now - BEGIN now
evalable6 (signal SIGHUP) «timed out after 10 seconds»
SmokeMachine m: ( "a" x 4294967295 ).comb.skip(*-1).head.say; say now - BEGIN now 13:27
evalable6 (signal SIGHUP) «timed out after 10 seconds»
KotH stupid question: is there an equivalent of the camel book for perl6? 13:34
Xliff m: use NativeCall; my Str $s = 'Hello'; my $sp = nativecast(Pointer, $s); say $sp; 13:39
evalable6 (exit code 1) Native call cast expected return type with CPointer, CStruct, CArray, or VMA…
Xliff, Full output: gist.github.com/634c6c9e7d5d61410f...7b7b97f4fd
Xliff m: use NativeCall; my str $s = 'Hello'; my $sp = nativecast(Pointer, $s); say $sp;
evalable6 (exit code 1) Native call cast expected return type with CPointer, CStruct, CArray, or VMA…
Xliff, Full output: gist.github.com/039d7b5b2963a245ef...19087521fd 13:40
Kaiepi so in a chat bot i'm writing, i'm doing a huge refactor and now it deadlocks when i try to use a command. i have a feeling it's because it's trying to lock a lock while it's already locked, but it's not very easy to tell where that's actually happening
is there a way to debug this?
Xliff jnthn: If you have a CArray[Str] that's pulling data from C, do you have to worry about freeing the contents?
Xliff m: $*STDIN.fd.say 13:48
evalable6 (exit code 1) Dynamic variable $*STDIN not found
in block <unit> at /tmp/LlGNk0_Ymq line 1
Xliff m: $*IN.fd.say
evalable6 (exit code 1) No such method 'fd' for invocant of type 'IO::Handle'
in block <unit> at /tmp/3cxLq0TPnV line 1
Xliff m: $*IN.native-descriptor
evalable6
Xliff m: $*IN.native-descriptor.say
evalable6 0
Xliff m: $*ERR.native-descriptor.say 13:49
evalable6 2
Xliff m: $*OUT.native-descriptor.say
evalable6 1
scimon KotH: Probably Perl6 Deep Dive at the moment.
jnthn Kaiepi: Run under debugger, pause execution, look at the call stacks, if it's a real lock 13:50
Kaiepi perl6-debug-m jnthn? 13:51
jnthn No, that doesn't understand threads 13:52
The MoarVM remote debugger; I use it with Comma but timotimo++ wrote a command line client too and I guess it can also do what you want
Also, gist.github.com/jnthn/25349dee44f2...dbe504c39e may help you too
Xliff: Not immediately sure, sorry. 13:53
timotimo that's outstanding 13:55
KotH scimon: thanks! 14:00
antoniogamiz it looks like comma does not recognize routines declared in others modules 14:13
it should detect 'lives-ok' and 'ok' from Test module, shouldn't it?
jnthn antoniogamiz: If you `use Test` then yes; check in File > Project Structure that a valid Perl 6 interpreter is selected though, that's the usual problem. 14:15
cheese16 moritz: GPW is a great idea! Will be there. Currently working on a p5 script to talk about maybe. Marketing team is considering a booth (probably not gonna happen, but I appreciate that they are considering it). just so you know. BTW some stuff on the website is still labeled "GPW 2019" and the 2019 archive is not so easy to open, because the drop 14:18
down does not have a 2020 entry (at least when i last looked) and it is only loaded onchange IIRC. looking forward to the schedule / submission deadlines etc. until then I will probably be passively following here as always ;) best regards to all
tellable6 2019-08-29T18:06:42Z #perl6 <moritz> cheese16 come to the German Perl Workshop 2020, I'll be there (and I'm one of the organizers) :D
proc What's the proper way to use variables within a character class? I.E.: my $aa = 'abc'; my $bb = 'yabba'; say so $bb ~~ /<[$aa]>/; 14:19
antoniogamiz jnthn: oh, you're right, thanks :) 14:20
sena_kun m: my $aa = '<[abc]>'; my $bb = 'aaa'; say $bb ~~ /<$aa>+/; 14:34
evalable6 「aaa」
sena_kun m: my $aa = 'abc'; my $bb = 'aaa'; say $bb ~~ /<$_>/ given "<[$aa]>"; say $aa; 14:36
evalable6 「aaa」
abc
sena_kun proc, ^ 14:36
proc thanks sena_kun. How would you handle the case if you had multiple character classes that were defined in variables? 14:40
sena_kun proc, e.g. `my $a = 'abc'; my @b = 'def'`? 14:41
sena_kun m: my $aa = 'abc'; my $cc = 'def'; my $bb = 'aaaeee'; say $bb ~~ /<$_>/ given "<[{join $aa, $cc}]>"; 14:42
evalable6 「aaaeee」
sena_kun though in reality I'd use a separate variable to do joining
sena_kun because doing it on every match (?) is a very, very bad idea 14:43
proc like: my $aa = 'abc'; my $bb = 'def'; my $cc = 'yabda'; say so $bb ~~ /<[$aa]><[$bb]>/;
err
like: my $aa = 'abc'; my $bb = 'def'; my $cc = 'yabda'; say so $cc ~~ /<[$aa]><[$bb]>/;
something like that
sena_kun m: my $aa = 'abc'; my $cc = 'def'; my $bb = 'aaaeee'; say $bb ~~ /<$_>/ given "<[$aa]>+<[$bb]>+"; 14:44
evalable6 「aaaeee」
proc in perl5, you could simply enbed the variables directory within the character class. Trying to wrap my head around how to do it in perl6.
ah ok
sena_kun well, you can always just construct regex by hands and interpolate it
proc cool. Thanks. 14:46
sena_kun m: my @foo := <a b c>; say 'aeee' ~~ /@foo/; 14:47
evalable6 「a」
sena_kun proc, ^ this one should feel more natural. :)
and is probably to be cheaper
sena_kun m: my @foo = <a b c>; say 'abbbbccceee' ~~ /@foo+/; 14:48
evalable6 「abbbbccc」
sena_kun docs.perl6.org/language/regexes#Re...erpolation helps a lot
antoniogamiz can someone try to execute 'zef install Pod::To::Cached' please? 14:50
proc Thanks for the information. This question was posted on the #perl6-users mailing list and no one truly knows the answer. I just figured I'd pop in here and ask the horses mouth as it were.
Thanks for the info. Also, I read that page and it clearly states "$variableInterpolates stringified contents of variable literally." ..... which I took to mean <[$variable]> would work as expected.
vrurg antoniogamiz: installed ok 14:51
antoniogamiz ok, thanks! can you tell me your perl6 version?
vrurg antoniogamiz: the HEAD
antoniogamiz mm ok, thanks a lot for your help :)
sena_kun proc, well, interpolating @foo is the suitable answer, I hope. :) as for why `<[$foo]>` does not work - it treats `$` and the rest as literals, so no interpolation, but interpolating a @ does roughtly the same thing for this case
*roughly 14:52
antoniogamiz, installs on 07
proc sena_kun yeah cool. Thanks.
antoniogamiz sena_kun: installs on 07? 14:53
sena_kun antoniogamiz, Pod::To::Cached installs fine on 2019.07. 14:53
antoniogamiz ah ok, thanks for testing it out 14:54
proc sena_kun - I wonder if it's worth updating the documentation to make the mention that character classes interpret their contents literally with an example showing how to circumvent it using `given`. 15:04
only because, this specific thing had quite a few people stumped. Myself included. 15:05
sena_kun proc, I would not do that. The reason is that `given` thing is a hack I quickly put up because I did not remember exactly how @ interpolation works, was too lazy to look up the docs, and made it work "by force" using a more generic approach (which is usually bad). @ is documented and that's the way I'd prefer like 100% of time. 15:06
sena_kun The real question here is how to make "Interpolating variables" section more prominent to people. 15:07
proc I'd agree. People coming from other languages like perl5 for example, would expect [$var] to work, so it needs to be clear. As of right now, @var doesn't really come to mind. 15:10
and even the documentation mentions $var would get interpreted....yet doesn't in this specific case.....that's gotta count for something. 15:11
sena_kun I am not sure how many other languages other than perl5 allow to do it so easily with programmers being aware about it, but probably due to my lack of knowledge.
jnthn Might be worth a mention in character classes noting that they don't interpolate anything, and with a link to the docs on how to do that
sena_kun but there is 5 to 6 guide - docs.perl6.org/language/5to6-nutshell <- maybe it wants some tweaks, imho. 15:12
proc When people look up regex documentation they aren't hitting that page. They are hitting the regex page. Should really be there IMHO. 15:13
sena_kun proc, can't really object that. A ticket for github.com/perl6/doc/ or a patch will be welcome. :) 15:14
proc alright. ;) 15:15
jmerelo squashable6: next 15:27
squashable6 jmerelo, ⚠🍕 Next SQUASHathon in 3 days and ≈12 hours (2019-09-07 UTC-12⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
jmerelo Everyone's ready for the squashathon?
uzl[m] I thought the Github renaming issue was locked to the members who will make the final decision. It seems the issue is getting some trolling comments that adds nothing to the discussion. And furthermore almost everything that had to be said about it had been said already 😅�. 16:40
Grinnz it was locked for a week or two, then reopened
Grinnz there will always be trolling comments, the more common problem seems to be comments from people who can't read the first post :/ 16:42
uzl[m] Oh, I see. It seems they had a kneejerk reaction and didn't even bothered going through the previous comments. 16:44
Grinnz well, i don't blame people for not catching up on the massive amount of comments 16:45
but at least understand the opening premise :)
tadzik amazing how there's suddenly all these people interested in Perl 6's future :P 16:51
Xliff Is there a way to fire a method in a role when it is composed to an object? 17:04
m: role A { }; my $a = 1 but A;
evalable6
Xliff I want a method to fire off when $a is assigned. Is that possible? 17:05
Xliff m: class A { method a { say callframe(1).perl }; }; class B { method a { A.a } }; B.a 17:21
evalable6 CallFrame.new(annotations => {:file("/tmp/dH86KGRNcl"), :line("1")}, my => {"\$!" => Nil, …
Xliff, Full output: gist.github.com/82ac6a78b63800cbab...c8cb91fc57
Xliff m: class A { method a { callframe(1) }; }; class B { method a { A.a.code.^name.say } }; B.a
evalable6 Method
Xliff m: class A { method a { callframe(1) }; }; class B { method a { A.a.code.name.say } }; B.a
evalable6 a
Xliff m: class A { method a { callframe(1) }; }; class B { method a { A.a.code.name.package.say } }; B.a
evalable6 (exit code 1) No such method 'package' for invocant of type 'Str'
in method a at /tmp/6eR8xruaab line 1
in block <unit> at /tmp/6eR8xruaab line 1
Xliff m: class A { method a { callframe(1) }; }; class B { method a { A.a.code.package.say } }; B.a 17:22
evalable6 (B)
Xliff m: class X::My::Type::Ω::NotListening is Exception { }; throw X::My::Type::Ω::NotListening (message => 'Lalalalala'); 17:30
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/LBoahEjCzC
Two ter…
Xliff, Full output: gist.github.com/df621bfd9202ba5c56...082e910ffa
Xliff m: class X::My::Type::Ω::NotListening is Exception { }; throw X::My::Type::Ω::NotListening(message => 'Lalalalala');
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/cOXqd6uUaj
Undeclared routine:
throw used at line 1. Did you mean 'THROW'?
Xliff m: class X::My::Type::Ω::NotListening is Exception { }; X::My::Type::Ω::NotListening(message => 'Lalalalala').throw;
evalable6 (exit code 1) Cannot coerce to X::My::Type::Ω::NotListening with named arguments
in block <unit> at /tmp/ydQ7yhzikh line 1
Xliff m: class X::My::Type::Ω::NotListening is Exception { }; X::My::Type::Ω::NotListening.new(message => 'Lalalalala').throw; 17:31
evalable6 (exit code 1) Died with X::My::Type::Ω::NotListening
in block <unit> at /tmp/oLY0RNpuU5 line 1
Xliff m: class A { method a { * }; }; A.new; 17:40
evalable6
Xliff m: class A { method a { * }; }; A.new.a
evalable6
Xliff m: class A { method a { * }; }; A.new.a.say
evalable6 *
Xliff m: class A { method a { }; }; A.new.a.say
evalable6 Nil
rindolf Hi all! 18:55
eval: my @nums = (1, 20, 333, 40, 55); my @sums=(0); for @nums -> $n { @sums.push(@sums[*-1]+$n}; @sums 18:57
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/Hj8xQxRpjT
Unable …
rindolf, Full output: gist.github.com/0c0fb1e733744e421d...3dd3cd4aa6
rindolf eval: my @nums = (1, 20, 333, 40, 55); my @sums=(0); for @nums -> $n { @sums.push(@sums[*-1]+$n);}; @sums
evalable6 WARNINGS for /tmp/aLip2M8f4F:
Useless use of @sums in sink context (line 1)
rindolf eval: my @nums = (1, 20, 333, 40, 55); my @sums=(0); for @nums -> $n { @sums.push(@sums[*-1]+$n);}; say @sums 18:58
evalable6 [0 1 21 354 394 449]
rindolf is there a more idiomatic way to write it? tried ddg 18:58
sena_kun m: my @nums = (1, 20, 333, 40, 55); gather { my $sum = 0; for @nums -> $n { take $sum += $n } }[4].say; 19:02
evalable6 449
sena_kun m: my @nums = (1, 20, 333, 40, 55); my $seq = gather { my $sum = 0; for @nums -> $n { take $sum += $n } }; .say for $seq; # can work with $seq Seq lazily...
evalable6 (1 21 354 394 449)
sena_kun rindolf, ^ 19:03
rindolf sena_kun: ah 19:04
sena_kun imho, this one is cleaner, though has some penalty for laziness, to avoid that just a loop with $sum variable will be a bit easier to grasp than @sums.push(@sums[*-1]+$n)
rindolf sena_kun: ok 19:05
nine m: my @nums = (1, 20, 333, 40, 55); @nums.map($ += *).say 19:06
evalable6 (1 21 354 394 449)
nine rindolf: ^^^
rindolf nine: thanks ! 19:07
cpan-p6 New module released to CPAN! BDD::Behave (0.0.1) by 03GDONALD 19:09
CIAvash m: my @nums = (1, 20, 333, 40, 55); say [\+] @nums 19:19
evalable6 (1 21 354 394 449)
cpan-p6 New module released to CPAN! Channel::Pauseable (1.0.0) by 03THINCH 19:55
Kaiepi argh, i really don't like how IO::Socket::INET handles URIs, but i didn't think to include anything remotely related to that in my grant, so i'll be stuck waiting until i'm finished before i can really do anything about it 20:25
Xliff Anyone else know how to get a role method to automatically call a method when it is composed into a class? 21:00
discord6 <Aearnus> Xliff: maybe TWEAK on the role? 21:04
<Aearnus> don't the roles have to get instantiated when they're composed
Xliff will try TWEAK 21:05
m: role A { submethod TWEAK { say 'BOO!' }; }; my $a = 1 but A; 21:06
evalable6 BOO!
Xliff \o/
Aearnus++
discord6 <Aearnus> :D 21:07
abc3354 Hi 21:30
Just here to test the bridge
discord6 <abc3354> Sorry for the spam
discord6 <RaycatWhoDat> Running into a bit of a problem. 21:45
<RaycatWhoDat> I'm trying to pass a list of integers as a single parameter. 21:46
discord6 <RaycatWhoDat> But I want the subroutine to treat it as a list. 21:46
<RaycatWhoDat> What step am I missing? 21:47
<RaycatWhoDat> gist.github.com/RayMPerry/e38337cc...5642871a19 21:48
tobs m: (1..25).tail.say 21:54
evalable6 25
tobs RaycatWhoDat: tail only returns the very last element by default. You probably expected it to return a list of everything except the head? 21:55
and that int does not pass as an array of int
discord6 <abc3354> It seems to be be the problem for me too @RaycatWhoDat ? 21:56
tobs but if you pass a parameter "how much tail?", it will give you something sufficiently positional 21:57
tbrowder .tell jjmerelo doc v2 is looking good structurally, but i wish i could launch it local 21:58
tellable6 tbrowder, I'll pass your message to jmerelo
tobs m: sub f (@numbers) { say @numbers.head; f @numbers.tail(*-1) #`(everything but the head) if @numbers }; f 1..10
evalable6 1
2
3
4
5
6
7
8
9
10
Nil
discord6 <RaycatWhoDat> Ahh, gotcha. 22:11
<RaycatWhoDat> Thanks!
<RaycatWhoDat> Now, to reduce the lines... 22:17
Geth ecosystem: pheix++ created pull request #466:
Add LZW::Revolunet to ecosystem
22:28
cpan-p6 New module released to CPAN! Net::BGP (0.1.3) by 03JMASLAK 23:44