»ö« 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:09 captain-adequate left 00:14 cpage_ joined 00:20 troys is now known as troys_ 00:26 Xliff left 00:30 lookatme joined
lookatme morning \o. 00:30
Herby_ o/ 00:31
00:35 skids joined 00:37 [2300mAh] left 00:40 lookatme left, lookatme joined 00:44 lookatme left, lookatme joined
Juerd ♥ given $input { when any(@stack) { note "Already selected!" } ... } 00:44
00:48 lookatme left, lookatme joined 00:51 kurahaupo joined 00:53 Cabanossi left 00:54 astj joined 00:55 Cabanossi joined 01:00 lookatme left 01:02 astj left, astj joined 01:03 astj left 01:04 lookatme joined 01:08 lookatme left, baest left, lookatme joined, baest joined 01:09 astj joined 01:13 Zoffix joined
Zoffix Any idea why when I run this program it always prints "Killing" three times, but frequently it doesn't end, suggesting the murder did not succeed? gist.github.com/zoffixznet/79543ee...p6-L37-L41 01:14
As you can see, I even tried sending three different kill signals, to no avail
And indeed `ps ax` shows the procs unkilled, still running 01:16
01:17 cyphase left
kurahaupo Zoffix: do you own the processes in question? 01:18
Zoffix kurahaupo: they're started by that very script
lookatme Use SIGKILL ?
kurahaupo check for error returns?
lookatme check $! ? 01:19
Zoffix Error returns from where?
lookatme: at which point?
And yeah, I'm already sending SIGKILL
MasterDuke if you add signal handlers to the code you're running in the Proc, do they fire?
kurahaupo error returns from the kills 01:20
Zoffix kurahaupo: it just returns the signal number
MasterDuke run under strace and see what that shows happening?
01:21 cyphase joined
Zoffix adding `signal(SIGINT).tap: {say "got a signal"};` to the spawned procs and then sending $proc.kill: SIGINT don't print that message :/ 01:23
I don't know how to use strace.
kurahaupo strace -o newtracefile program args ... 01:24
MasterDuke you'll want -f also
Juerd github.com/Juerd/shalog/blob/master/tracking.p6 # Beginning of something usable
kurahaupo but for this you'll want -f or -ff
MasterDuke: snap
01:25 astj_ joined
Zoffix Hm. The code's `say "Killing!"; say $proc.kill: SIGSEGV;` and it always prints 3 killing but only 1-3 "11"s 01:25
Juerd At some point I want to spread my code over several files. Are there any best practices regarding putting multiple classes in a single file? 01:26
Zoffix Juerd: no
Juerd Great, at least I can stop looking for them then :)
kurahaupo Zoffix: if you just want something to stop normally, SIGTERM should be your first choice. SIGHUP is typically caught by daemons and used to trigger reloading 01:27
not that you've made the relevant arrangements, but that's the convention
01:27 astj left
MasterDuke you could add an `fprintf(stderr, "Kilroy was here")` to src/io/procops.c:1073 and see if the moarvm op is getting called 3 times 01:28
kurahaupo for interactive processes SIGHUP indicates that its terminal has disconnected -- the "hup" or "hangup" refers to a phone line with a dial-up modem 01:30
Zoffix Here's the strace. What am I looking for gist.githubusercontent.com/zoffixz...tfile1.txt ? 01:31
here's the program that I used to generate it: gist.github.com/zoffixznet/c737b79...75d9b5339f
01:37 BenGoldberg joined
Zoffix Golfed down a bit: await ^2 .map: {start { with Proc::Async.new: $*EXECUTABLE, "-e", "sleep" -> $p { Promise.in(2).then: {say "Killing"; $p.kill: SIGTERM}; await $p.start } }} 01:38
What's weird is it doesn't appear to happen if that `^2` is a `^1`
Zoffix files in hopes jnthn++ would know a fix 01:39
01:40 lookatme left
Zoffix .ask jnthn any idea what may be causing a Proc::Async.kill to fail killing when there's more than one Proc::Async involved? This is sort of blocking my ecosystem toaster script :( would be sweet if it could be fixed: rt.perl.org/Ticket/Display.html?id=131479 01:43
yoleaux Zoffix: I'll pass your message to jnthn.
Zoffix Man, need to learn C so I could fix stuff like this on my own :*
pilne c is dark and full of terrors... but at least is isn't c++ (: 01:45
01:46 ilbot3 left
pilne one bad thing about perl6 is that after dipping my toes in it... trying to learn anything else for a change of career (i don't do anything programming related at the moment), feels pooptastic 01:46
MasterDuke i added a print to that moar function. i see two "Killing"s, but only one print from moar
01:48 ilbot3 joined, ChanServ sets mode: +v ilbot3 01:50 cpage_ left 01:52 lookatme joined 01:53 Cabanossi left 01:55 Cabanossi joined, kurahaupo_ joined 01:56 aborazmeh joined, aborazmeh left, aborazmeh joined 01:57 kurahaupo left 02:00 cpage_ joined
Zoffix pilne: yeah, that's why we say Perl 6 is the last language you'll ever learn :) 02:00
Zoffix goes into hybernation mode
I see I first suspected .kill was busted last September: github.com/perl6/roast/issues/158 02:01
lookatme I send SIGTERM can killed one of **Promise** which tag with "bar" 02:02
Zoffix & 02:03
lookatme @_@
02:04 kurahaupo_ left
pilne i just have to keep hoping i'll be in the right place at the right time to jump on something looking to try "anything" as a coding backend >.< but there is a lot of buzzword hype and shenanigans locally. 02:05
but just barely getting to know perl6, it feels fantastic for "big data" and even machine learning/AI stuff. 02:06
02:11 jcallen_ is now known as jcallen 02:13 Herby_ left
curt_ performance isn't quite there yet, but NativeCall is my best friend. I love how trivial it is to drop into C. 02:16
Juerd "The following packages were stubbed but not defined:", but if I remove the "..." it says about the definition later in the file: "Redeclaration of symbol 'Nowhere'" 02:18
Any ideas?
(Nowhere is the name of the class)
lookatme Is machine learning/AI need performance ?
Juerd, can you paste code to somewhere 02:19
Juerd lookatme: gist.github.com/Juerd/27947ac0e756...abf69011fd 02:20
02:20 zhongjin616 joined
Juerd It worked when I didn't have it in a .pm file 02:20
curt_ I'm not doing machine learning/AI, my 'big data' is just volume.
lookatme Juerd, I comment on the gist 02:27
pilne for research purposes, technically, machine learning and AI don't need speed, they need "flexibility", but speed is always nice in that area (: 02:28
02:29 raschipi joined
TEttinger pilne: there's also bearlibterminal if you don't need some of the stuff libtcod provides. it's probably much easier to call from a not-C language 02:29
lookatme The document about that forward declared not very clear
TEttinger (libtcod defines their own kinds of list and such) 02:30
foo.wyrd.name/en:bearlibterminal
pilne ahhhh, TEttinger, i was mainly interested in libtcod for it's terminal stuffs, tyvm
TEttinger BLT's terminal is definitely better in a lot of ways
pilne and it reminds me of a good meal
so it's like... doubleplusgood 02:31
TEttinger it allows movement of each char outside its position, plus layers
and works with TTF fonts
pilne project tcodperl: killed before germination
TEttinger BLT only does terminal output, since most games want their own map gen anyway 02:32
pilne this will allow me to just write all the "roguelike" stuff (ai, etc.) in perl6, and use that for terminal.
TEttinger yep
roguebasin has good resources
pilne tyvm, no need to lug around the horse trailer full of horses i ain't using
yeah, it's where i get most of my stuff, not sure how i missed that
TEttinger I don't know if BLT has much presence there. libtcod had a monopoly on full-color terminal-likes for many years 02:33
but it stopped mac support and various other oddities before finally picking up some pieces
www.roguebasin.com/index.php?title=Dijkstra
pilne yeah, and it was kinda "more" than i wanted from a library, even when using it in a tutorial for python a longtime ago.
TEttinger (useful but easy to miss AI technique) 02:34
pilne i actually read a comparison of fill, dijkstra, and a* recently
02:34 xiaoyafeng joined
TEttinger I work on a very "more" library for roguelikes but it's in Java 02:34
02:34 aborazmeh left
TEttinger yeah, it's crazy the differences 02:34
xiaoyafeng hello, I have a question. 02:35
pilne i just have a hard time feeling comfy as a one-man-dev in javaland, everything just feels so "big"
TEttinger currently in my benchmarks, I have A* beating everything hand-down for short simple paths, but surprisingly a breadth-first search with no heuristic can beat A* on long and moderately convoluted paths 02:36
xiaoyafeng what's different between ".".io.dir.grep: {d} and ".".io.dir.grep({d});
please help
pilne TEttinger: a* "thinks too much" on the long and convoluted paths i've noticed.
TEttinger hi xiaoyafeng. there's some experts around recently, but I am not one of them 02:37
pilne likewise, my perl-fu is weak like cooked spaghetti
xiaoyafeng :(....
02:37 Cabanossi left
TEttinger (I'm rather sure Zoffix is an expert, since I've seen a lot of commits tied to the name) 02:38
pilne m: ".".io.dir.grep: {d}
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
d used at line 1
lookatme xiaoyafeng, no different. 02:39
curt_ xiaoyafeng: subroutine(...) and subroutine: ... are just two ways of calling the sub
pilne it might just be alternate syntax, have you examined them?
TEttinger also you might not have access to current dir in the bot
xiaoyafeng ".".io.dir.grep: {.d}
sorry
raschipi m: ".".io.dir.grep: {.d}
camelia No such method 'io' for invocant of type 'Str'
in block <unit> at <tmp> line 1
lookatme m: say ".".IO.dir.grep:{.d};
camelia (".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".cpan".IO "rakudo-m-1".IO "rakudo-m-2".IO "rakudo-j-inst-1".IO "rakudo-j-1".IO "rakudo-j…
xiaoyafeng IO
lookatme m: say ".".IO.dir.grep({.d}); 02:40
camelia (".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".cpan".IO "rakudo-m-1".IO "rakudo-m-2".IO "rakudo-j-inst-1".IO "rakudo-j-1".IO "rakudo-j…
raschipi It's just two ways of saying the same thing.
02:40 Cabanossi joined
TEttinger oh, one was {.d} and one was {d} 02:40
pilne god i love this bot
TEttinger it's a pretty great bot
lookatme It just two ways of function/sub call, you can chose your prefer style
xiaoyafeng so : and () is identical
raschipi What is different yould be ".".IO.dir.grep ({.d}); The space makes a difference. 02:41
m: ".".IO.dir.grep ({.d}); 02:42
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3".".IO.dir.grep7⏏5 ({.d});
expecting any of:
infix
infix stopper
statement end
statement modifier
st…
lookatme m: say ".".IO.dir.grep : {.d};
camelia Cannot resolve caller grep(Seq: ); none of these signatures match:
($: Bool:D $t, *%_)
($: Mu $t, *%_)
in block <unit> at <tmp> line 1
raschipi m: say ".".IO.dir.grep\ ({.d});
camelia (".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".cpan".IO "rakudo-m-1".IO "rakudo-m-2".IO "rakudo-j-inst-1".IO "rakudo-j-1".IO "rakudo-j…
xiaoyafeng well it's not allowed space. between sub and args 02:43
raschipi m: say ".".IO.dir.grep\ ␤ ({.d});
camelia (".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".cpan".IO "rakudo-m-1".IO "rakudo-m-2".IO "rakudo-j-inst-1".IO "rakudo-j-1".IO "rakudo-j…
raschipi You can even split into multiple lines, as long as you put a \ there. Otherwise it means something else. 02:44
xiaoyafeng but why ".".IO.dir.grep: ({.d}) is allowed too?
02:44 curt_ left
raschipi That is an alternative format. 02:45
xiaoyafeng ok, now it's 3 ways to call a sub
raschipi Gotta have at least three ways of doing something in Perl6.
xiaoyafeng TIMTTWTDI 02:47
;)
lookatme m: say ".".IO.dir.grep {.d};
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected block in infix position (missing statement control word before the expression?)
at <tmp>:1
------> 3say ".".IO.dir.grep7⏏5 {.d};
expecting any of:
infix
infix…
02:48
lookatme m: say grep {.d}, ".".IO.dir;
camelia (".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".cpan".IO "rakudo-m-1".IO "rakudo-m-2".IO "rakudo-j-inst-1".IO "rakudo-j-1".IO "rakudo-j…
02:49 noganex joined
lookatme m: say ({.d}).WHAT 02:51
camelia (Block)
lookatme xiaoyafeng, ({.d}) also a callable Block
02:51 noganex_ left
lookatme like {.d} does 02:52
xiaoyafeng yeah, it makes sense
02:56 aborazmeh joined, aborazmeh left, aborazmeh joined
raschipi m: lc('Y','N'); lc 'Y','N' 03:02
camelia 5===SORRY!5===
Calling lc(Str, Str) will never work with declared signature (Cool $s)
at <tmp>:1
------> 3<BOL>7⏏5lc('Y','N'); lc 'Y','N'
Calling lc(Str, Str) will never work with declared signature (Cool $s)
at <tmp>:1
------> 3lc…
raschipi m: lc ('Y','N'); lc 'Y','N'
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling lc(Str, Str) will never work with declared signature (Cool $s)
at <tmp>:1
------> 3lc ('Y','N'); 7⏏5lc 'Y','N'
lookatme m: say lc('Y', 'N'); 03:03
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling lc(Str, Str) will never work with declared signature (Cool $s)
at <tmp>:1
------> 3say 7⏏5lc('Y', 'N');
lookatme m: say lc('Y');
camelia y
raschipi bisectable6: say lc ('Y','N'); 03:04
bisectable6 raschipi, On both starting points (old=2015.12 new=b667e81) the exit code is 0 and the output is identical as well
raschipi, Output on both points: «y n»
lookatme m: say lc ('Y', 'N');
camelia y n
lookatme m: say &lc.WHAT;
camelia (Sub)
lookatme m: say &lc('Y', 'N'); 03:05
camelia Too many positionals passed; expected 1 argument but got 2
in block <unit> at <tmp> line 1
raschipi I see, in the second, it was the version without parens that it didn't like.
03:06 Cabanossi left
lookatme m: say &lc.signature.perl; 03:06
camelia :(Cool $s)
lookatme m: say &lc(('Y', 'N')); 03:07
camelia y n
lookatme m: say ('Y', 'N') ~~ Cool; 03:08
camelia True
lookatme Oh.. @_@
03:08 Cabanossi joined 03:11 simonm left
raschipi m: say lc( ('Y','N') ); 03:12
camelia y n
lookatme m: say &lc(('Y', 'N')).WHAT; 03:13
camelia (Str)
03:14 khw left 03:28 aborazmeh left 03:41 simonm joined 03:49 Xliff joined
Xliff \o 03:49
Is there a way to make a class that is only available to a specific scope?
m: class A { my class B { method bb { say "bb"; } }; method new( B.bb; }; }; A.new; 03:51
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed parameter
at <tmp>:1
------> 3method bb { say "bb"; } }; method new( B7⏏5.bb; }; }; A.new;
expecting any of:
constraint
formal parameter
Xliff m: class A { my class B { method bb { say "bb"; } }; method new( B.new.bb; }; }; A.new;
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed parameter
at <tmp>:1
------> 3method bb { say "bb"; } }; method new( B7⏏5.new.bb; }; }; A.new;
expecting any of:
constraint
formal parameter
Xliff m: class A { my class B { method bb { say "bb"; } }; method new{ B.bb; }; }; A.new;
camelia bb
Xliff m: class A { my class B { method bb { say "bb"; } }; method new{ B.bb; }; }; A.new; A::B.new.bb;
camelia bb
Could not find symbol '&B'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
Xliff Hmm... that should work.
03:52 Cabanossi left 03:53 Cabanossi joined
raschipi m: class A { our class B { method bb { say "bb"; } }; method new{ B.bb; }; }; A.new; A::B.new.bb; 03:54
camelia bb
bb
raschipi Xliff: ^^ 03:55
m: class A { our class B { method bb { say "bb"; } }; method new{ B.bb; }; }; A.new; B.new.bb; 04:02
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
B used at line 1
raschipi m: class A { our class B { method bb { say "bb"; } }; method new{ B.bb; }; }; A.new; my B.new.bb; 04:03
camelia 5===SORRY!5===
Type 'B' is not declared
at <tmp>:1
------> 3} }; method new{ B.bb; }; }; A.new; my B7⏏5.new.bb;
Malformed my
at <tmp>:1
------> 3; } }; method new{ B.bb; }; }; A.new; my7⏏5 B.new.bb;

»
Xliff raschipi: Why "our" instead of "my"? 04:07
raschipi They say where the symbol will be visible. 'my' means it's visible only inside the block, 'our' means it will be visible outside. 04:08
Xliff But if I only want B visible to methods in A, isn't that the same? 04:09
raschipi If you want B visible only inside, use my. If you want it visible outside, use our. 04:10
Xliff m: class A { my class B { method bb { say "bb"; } }; method new{ B.bb; }; method aa { say "aa" B.bb; }; A.new; A::B.new.bb; 04:11
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3ethod new{ B.bb; }; method aa { say "aa"7⏏5 B.bb; }; A.new; A::B.new.bb;
expecting any of:
infix
infix stopper
postfix…
Xliff m: class A { my class B { method bb { say "bb"; } }; method new{ B.bb; }; method aa { say "aa"; B.bb; }; A.new; A::B.new.bb;
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3{ say "aa"; B.bb; }; A.new; A::B.new.bb;7⏏5<EOL>
Xliff m: class A { my class B { method bb { say "bb"; } }; method new { B.bb; }; method aa { say "aa"; B.bb; }; }; A.new; A::B.new.bb;
camelia bb
Could not find symbol '&B'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
raschipi m: class A { my class B { method bb { say "bb"; } }; method new { B.bb; }; method aa { say "aa"; B.bb; }; }; A.new; A.new.aa; 04:12
camelia bb
bb
No such method 'aa' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
raschipi m: class A { my class B { method bb { say "bb"; } }; method new { B.bb; }; method aa { say "aa"; B.bb; }; }; A.new; A.aa;
camelia bb
aa
bb
Xliff m: class A { my class B { method bb { say "bb"; } }; method new { B.bb; }; method aa { say "aa"; B.bb; }; }; A.new.aa;
camelia bb
No such method 'aa' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
Xliff m: class A { my class B { method bb { say "bb"; } }; method new { B.bb; }; }; method aa { say "aa"; B.bb; }; A.new.aa;
camelia 5===SORRY!5===
Undeclared name:
B used at line 1

Other potential difficulties:
Useless declaration of a has-scoped method in mainline (did you mean 'my method aa'?)
at <tmp>:1
------> 3b"; } }; method new { B.bb; }; };…
Xliff m: class A { my class B { method bb { say "bb"; } }; method new { B.bb; }; }; method aa { say "aa"; B.bb; }; }; A.new.aa; 04:13
camelia 5===SORRY!5===
Unexpected closing bracket
at <tmp>:1
------> 3b; }; }; method aa { say "aa"; B.bb; }; 7⏏5}; A.new.aa;
Other potential difficulties:
Useless declaration of a has-scoped method in mainline (did you mean 'my method aa…
Xliff OK, this needs an editor.
04:14 geekosaur left 04:15 geekosaur joined
Xliff m: class A { 04:16
my class B {
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3class A {7⏏5<EOL>
Xliff method new { B.bb; };
method bb { say "bb"; };
};
method aa { say "aa"; B.bb; };
};
A.new.aa;
Feck.
class A { my class B { method new { B.bb; }; method bb { say "bb"; }; }; method aa { say "aa"; B.bb; }; }; A.new.aa; 04:17
raschipi Use a pastie
Xliff m: class A { my class B { method new { B.bb; }; method bb { say "bb"; }; }; method aa { say "aa"; B.bb; }; }; A.new.aa;
camelia aa
bb
Xliff That would have been my next step if that hadn't worked.
m: class A { my class B { method new { B.bb; }; method bb { say "bb"; }; }; method aa { say "aa"; B.bb; }; }; A.new.aa; A.B.new;
camelia aa
bb
No such method 'B' for invocant of type 'A'
in block <unit> at <tmp> line 1
Xliff m: class A { my class B { method new { B.bb; }; method bb { say "bb"; }; }; method aa { say "aa"; B.bb; }; }; A.new.aa; A::B.new;
camelia aa
bb
Could not find symbol '&B'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
raschipi do a /msg camelia 04:18
Xliff OK, so I don't really see a noticible difference between using "my" and "our"
04:19 xtreak_ joined
raschipi m: class A { our class B { method bb { say "bb"; } }; method new{ B.bb; }; }; A.new; A::B.new.bb; 04:19
camelia bb
bb
raschipi m: class A { my class B { method bb { say "bb"; } }; method new{ B.bb; }; }; A.new; A::B.new.bb;
camelia bb
Could not find symbol '&B'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
raschipi The second one doesn't work because B doesn't exist outside of A 04:20
Xliff Heh.
Which is exactly what I want.
I don't want B to work outside of A
raschipi So use it. What's the problem?
Xliff No problem. I just wanted to know if I was doing it the right way. 04:21
You suggested "our" and I was confused if I had missed something.
No worries.
Thanks for the input, though. 04:22
raschipi I see. Yeah, using 'my' is the way to go. If you want something else, there are other options. 04:23
04:23 Actualeyes left
Xliff 'k 04:26
04:28 pilne left 04:36 Cabanossi left 04:39 Cabanossi joined 04:40 xtreak_ left, xtreak joined 04:41 fatguy joined 04:43 raschipi left 04:45 aborazmeh joined, aborazmeh left, aborazmeh joined 04:47 aindilis joined
Xliff m: class A { my class B { method new { B.bb; }; method bb { say "bb"; A.aa;}; }; method aa { say "aa"; B.bb; }; }; 04:56
camelia ( no output )
04:56 xtreak left
Xliff m: class A { my class B { method new { B.bb; }; method bb { say "bb"; A.aa;}; }; method aa { say "aa"; B.bb; }; }; A.new.aa 04:56
camelia (timeout)aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
bb
aa
Xliff m: class A { my class B { method new { B.bb; }; method bb { say "bb"; A.aa}; }; method aa { B.bb }; }; A.new.aa 04:57
camelia (timeout)bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
bb
Xliff m: class A { my class B { method bb { say "bb"; A.aa }; }; method a { say B.bb }; method aa { say "aa" }; }; A.new.a 04:59
camelia bb
aa
True
Xliff m: class A { my class B { method bb { say "bb"; A.aa }; }; method a { B.bb }; method aa { say "aa" }; }; A.new.a
camelia bb
aa
Xliff Rawk. 05:00
05:00 finanalyst joined 05:04 astj_ left 05:07 astj joined, Cabanossi left 05:08 Cabanossi joined 05:10 pegop left
finanalyst can someone tell me what had happened to perl6-debug? I have just rerun 'rakudobrew build moar', then 'perl6-debug' and got 'perl6-debug: command not found' 05:10
05:11 astj left 05:14 troys_ is now known as troys 05:19 BenGoldberg left 05:25 aborazmeh left 05:30 ufobat joined 05:33 domidumont joined 05:36 domidumont left
zengargoyle finanalyst: i think it's broken or going away or being changed or something. you probably have a `perl6-debug-m` for the moar build but that gives some other error. 05:52
finanalyst zengargoyle: if it's going away, it would be nice to know. 05:53
05:53 MasterDuke left
zengargoyle quotable6: perl6-debug 05:53
quotable6 zengargoyle, gist.github.com/3ef7cdc97a78f145bf...78c134949d
finanalyst If being changed, when will it be back?
05:53 ufobat left
finanalyst perl6-debug-m does not work at all - gives an error for all input 05:54
zengargoyle gues that doesn't do what i thought. :) too many bots to keep track of. i remember seeing a bit of discussion about perl6-debug in the past few days here in IRC.
05:55 Mithaldu left, Mithaldu joined
finanalyst how to find discussion? 05:55
zengargoyle if you search the IRC logs you'll probably find the answer. it was just a few days or so ago.
irclog.perlgeek.de/perl6/2017-06-02 05:57
zengargoyle thinks theres a bot that can search the logs but i don't know which one or how it works. :/
05:58 cpage_ left
zengargoyle irclog.perlgeek.de/perl6/search/?n...erl6-debug 05:58
05:59 zhongjin616 left
Xliff Does FALLBACK take positional args? 06:00
Oh, nevermind. 06:02
It can.
zengargoyle finanalyst: i think perl6-debug vs perl6-debug-m is a little implementation detail of rakudobrew vs rakudo-star or whatever. not sure if the brokeness is terminal or just a bit of "it hasn't caught up yet". :) but you're not alone, it doesn't work. 06:03
06:04 troys left
finanalyst zengargoyle: just looking through the last few logs 06:04
basically debug & Grammar:: Debug stopped working at the last update 06:05
06:05 domidumont joined 06:06 astj joined
zengargoyle finanalyst: cool. BTW i'm probably going to steal your Task::Popular as a template to make my own little set of favorite modules because i'm too lazy to track down the old Task::Star. :P 06:08
finanalyst zengargoyle: :)
06:09 stmuk_ joined
finanalyst zengargoyle: By the way, I created a local directory on my computer, put a META6.json file in it with some modules I like to have, and then used zef on the directory URL 06:09
It nicely installed all the modules 06:10
list the required modules in the depends list
zengargoyle but i wonder if having an actual Task::Popular module that has nothing but a bare actual module with a version so it can somehow be tested against is more cromulent than just a Null install with dependencies....
like the p5 'perl -MTask::Whatever\ 99999' quick check of is it installed or not??? 06:11
06:12 stmuk left
finanalyst zengargoyle: not sure what you mean about "testing against" a distribution 06:13
zengargoyle package manager satisfying dependencies is a bit different than being able to 'use Task::Whatever' and then check Task::Whatever's version inside the code. 06:14
it's sortof a meta thing that's probably not too important anyways... :) 06:15
06:16 nadim_ joined
lookatme perl6 -MTask::Whatever ? 06:16
zengargoyle `perl -MGetopt::Long\ 9999 -e1` -> Getopt::Long version 9999 required--this is only version 2.48 at /usr/share/perl/5.24/Getopt/Long.pm line 1530. 06:18
if Task::Popular (or Task::Whatever) doesn't actuall install a module named Task::Popular with a version, then as far as perl6 is concerned it doesn't exist. 06:19
only the package manager can tell by checking wheter all dependencies are installes. 06:20
if there's an actual Task::Poplular module that does nothing but is installed then the check is quick and easy. require Task::Popular. or query the version installed. 06:21
06:22 wamba joined
zengargoyle lookatme: doing the -MSome::Module\ 9999999 is just a really quick and easy way to see if a module is installed and which version is actually installed. you ask perl to load a reallly high version and it fails and tells you which version it actually has or that there's no such module installed. 06:25
lookatme zengargoyle, I see. I dont' know much about module version control. 06:27
zengargoyle IMHO, it's best practice for every module/package/bundle/whatever to have an actual module that gets installed (even if it doesn't do anything) just so you can tell that it's there and what version it is.
but i may be alone in this thinking :) 06:29
lookatme Is there a way use specify version module in command `perl6 -M..` or in Perl 6 script..
zengargoyle i'm not really sure about p6. but that's pretty much exactly what's going on in p5. in a script 'use Foo 4;' is the command line 'perl "-MFoo 4" (because spaces). 06:32
06:33 darutoko joined 06:35 kyan left 06:36 lowbro joined
zengargoyle but the point is can you tell that Task::Whatever is installed or not? if Task::Whatever actually installs a Task::Whatever module then you can tell. if Task::Whatever is just a list of dependencies and doesn't install an actual Task::Whatever module, then you can't check that it has been installed except by checking all of the dependencies. 06:36
06:36 lowbro left, lowbro joined
zengargoyle one way is easy, one is a PITA. :P 06:38
lookatme zengargoyle, There are something about module version in document. Such as `module mymodule:ver<0.0.1> { }`, but I dont' think it's exactly way manager module version. 06:39
I gotta do a test about that. 06:41
docs.perl6.org/language/modules#Ex..._Importing
zengargoyle i don't think i've seen many command line (or scripts) that actually use the version information.... github.com/dnmfarrell/Perl6-One-Liners this page has a few uses of -M but not that many. 06:42
lookatme Use that module would be like that `perl6 -MSOme::Module::ver<0.0.1>` 06:43
I think they add the `-M` option recently 06:44
The command **perl6** not have that option before
zengargoyle i don't think i've ever used a version in a -M other than checking whether module was installed or not.... 06:46
one-liner's are usually using what you know work. :) 06:47
fatguy anyone using IO-Notification-Recursive ? i need to catch file/dir event (create/modify/delete), how can i do that ? 06:50
06:50 parv joined
zengargoyle `perl6 '-MTask::Popular' -e ''` --> No output 06:58
`perl6 '-MTask::Popular' -e ''` --> ===SORRY!=== Could not find Task::Popular at line 1 in: ...... 06:59
gah, `perl6 '-MPSGI' -e ''` --> No output. 07:00
07:02 cpage_ joined 07:04 astj left
parv zengargoyle, what is the difference in commands with Task::Popular so that you get the output only on the second time? 07:08
lookatme Zef can install specify version module like this `zef install Foo:ver<1.0.0>` 07:09
And I found it's work when I use `use Foo:ver<1.0.0>` in script file, but not in `-M` option. 07:12
zengargoyle lookatme: the first time was a cut-n-paste error.... -MPSGI shows nothing -MTask::Popular returns error (even though Task::Popular is installed) because Task::Popular doen't actually install a modules named Task::Popular, it just has a list of dependencies that must be met (which `zef install Task::Popular` will happily do. 07:13
Voldenet fatguy: start with IO::Notification class, it has .watch-path command and a good example on consuming the supply :)
zengargoyle lookatme: me too. i haven't been able to make -MFoo:ver<x.y>' work after trying many variants.... 07:14
Voldenet watch-recursive pretty much does the same, except it sets up watches for the tree and merges the supplies 07:15
fatguy Voldenet: where can i find the example and types of event doc ? 07:17
zengargoyle parv: oops, that cut-n-paste error reply was to your question... 07:18
Voldenet hm, docs.perl6.org/type/IO::Notification 07:19
parv zengargoyle, don't worry; i read that.
zengargoyle :)
fatguy Voldenet: i don't understand what is FileRenamed event classification
i did look at p6doc 07:20
07:20 wamba left
Voldenet Hmm, It's not very well-documented 07:20
github.com/rakudo/rakudo/blob/c194...ication.pm
but at least the underlying enums and classes are short ;)
07:21 nadim_ left
Voldenet apparently "event" is FileRenamed or FileChanged, no idea why inotify events like IN_CREATE are not described 07:22
07:26 skids left
fatguy Voldenet: thanks ! i will use p5 inotify2 for my case 07:27
07:33 lookatme left, Sgeo_ joined, lookatme joined 07:35 Sgeo left 07:36 Cabanossi left 07:38 rindolf joined, Cabanossi joined 07:47 dct joined 07:48 astj joined 07:49 astj_ joined, astj left 07:50 astj_ left, finanalyst left, astj joined 07:51 geekosaur left 07:52 xtreak joined, geekosaur joined
fatguy how can i print current line number and namespaces ? 07:52
07:53 astj_ joined 07:56 astj left, xtreak left
lookatme Do you mean $?LINE and $?PACKAGE 07:57
07:57 salv0 joined
lookatme fatguy, it's package, there no namespace. 07:58
08:02 Sgeo__ joined
fatguy lookatme: yes, how about printing the method ? the $?PACKAGE print the class name, i need to print module name then class , then method for debugging msg purpose 08:03
08:03 xtreak joined 08:04 Sgeo_ left, dwarring left 08:05 zapwai left
lookatme fatguy, there are many compile-time variable about that: docs.perl6.org/language/variables#..._variables 08:07
The method is &?BLOCK 08:08
m: class A { method f-print-name( ){ say &?BLOCK; } }; A.new.f-print-name;
camelia f-print-name
fatguy lookatme: thanks! 08:14
08:14 wamba joined
lookatme :) 08:15
08:15 xtreak left, AlexDaniel joined 08:16 xtreak joined 08:18 nadim_ joined
AlexDaniel quotable6: ‘perl6-debug’ 08:24
quotable6 AlexDaniel, gist.github.com/f23c1cb3afddef7ac0...d8142244ce 08:25
08:29 xiaoyafeng left 08:32 zakharyas joined 08:35 Cabanossi left 08:38 Cabanossi joined 08:40 Ven joined, Ven is now known as Guest35264 08:44 zakharyas left 08:45 zakharyas joined 08:47 parv left 08:55 AlexDaniel left 09:01 xtreak_ joined 09:02 xtreak left
rightfold m: (my $foo) = (); 09:04
camelia ( no output )
09:04 Guest35264 left, sivoais left 09:05 vimal2012 joined, sivoais joined 09:06 xtreak_ left 09:07 xtreak joined 09:09 xtreak left 09:10 xtreak joined
vimal2012 <:Lt> does not match anything, but <:Lu> matches 'T', 'V', 'M'. Aren't the letters 'T', 'V', 'M' titlecase letters in the following string? 09:10
p6: "Trump Visits Mexico" ~~ m:g/<:Lt>/
camelia ( no output )
vimal2012 p6: "Trump Visits Mexico" ~~ m:g/<:Lu>/
camelia ( no output )
vimal2012 p6: say "Trump Visits Mexico" ~~ m:g/<:Lu>/
camelia (「T」 「V」 「M」)
09:10 Ven joined
vimal2012 p6: say "Trump Visits Mexico" ~~ m:g/<:Lt>/ 09:11
camelia ()
09:11 Ven is now known as Guest39608
vimal2012 None of the 26 Uppercase letters in English match <:Lt>. It looks like English doesn't have titlecase letters? Then what other languages have titlecase letters? 09:15
moritz vimal2012: there's a greek title case latter, iirc 09:16
lookatme m: say "Trump Visits Mexico" ~~ m:g/<:Lt>/; 09:18
camelia ()