»ö« 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:11 andrzejku left, andrzejku joined 00:26 wamba left 00:41 mcmillhj joined 00:42 |oLa| left 00:46 mcmillhj left 00:54 |oLa| joined, mcmillhj joined 00:56 Cabanossi left 00:57 cpage_ left
Zoffix nadim: that file ain't opening. js fiddle is best for sharing web stuff... The blue border.. I'm guessing that's outline. use `outline: 0` in your CSS 00:57
00:58 Cabanossi joined 00:59 mcmillhj left 01:01 cpage_ joined 01:02 nadim left 01:11 lookatme joined
lookatme morning 01:11
01:13 mcmillhj joined 01:18 mcmillhj left 01:25 mcmillhj joined 01:29 mcmillhj left 01:30 astj_ joined, astj left 01:36 AlexDaniel left 01:37 AlexDaniel joined
timotimo uh oh 01:37
m: sub test { say "yo"; return 1; LEAVE say "this took " ~ (now - ENTER now) ~ " seconds" }; test() 01:38
camelia ===SORRY!===
Cannot reference undeclared local 'enter_result__1'
timotimo bisect: sub test { say "yo"; return 1; LEAVE say "this took " ~ (now - ENTER now) ~ " seconds" }; test()
bisectable6 timotimo, On both starting points (old=2015.12 new=1d94164) the exit code is 1 and the output is identical as well
timotimo, Output on both points: «===SORRY!===␤Cannot reference undeclared local 'enter_result__1'»
timotimo fascinating! it has been broken for a real long time?
geekosaur how often have people tried to use an ENTER phaser from a LEAVE phaser?
01:40 Cabanossi left
timotimo found it when doing this: www.reddit.com/r/perl/comments/6oj...s_clojure/ 01:41
i edited my answer to grab the starttime explicitly with a lexical variable 01:42
apparently they never have, but i think it's a useful thing to be able to do
and it's definitely a too-internalsy error that appears there :)
01:43 Cabanossi joined 01:46 ilbot3 left 01:47 Geth_ left, dudz left 01:48 ilbot3 joined, ChanServ sets mode: +v ilbot3 01:50 cdg joined 01:54 mcmillhj joined
timotimo anyway, too tired to hunt it down now 01:54
i'll go to bed
have a good one!
01:58 mcmillhj left, BenGoldberg left
MasterDuke .tell mr_ron i've found heaptrack (github.com/KDE/heaptrack) very useful for collecting and visualizing memory metrics 02:02
yoleaux MasterDuke: I'll pass your message to mr_ron.
02:07 noganex_ joined 02:09 mcmillhj joined 02:11 noganex left
AlexDaniel m: role A { submethod TWEAK { say ‘a tweak’ } }; class B does A { submethod TWEAK { say ‘b tweak’; nextsame } }; say B.new 02:12
camelia b tweak
B.new
AlexDaniel I don't have any real code where I would need this, but I'm still wondering, shouldn't it call TWEAK in A also?
02:14 mcmillhj left
lookatme submethod can not inherits, IDK 02:14
m: role A { submethod TWEAK { say ‘a tweak’ } }; class B does A { submethod TWEAK { say ‘b tweak’; self.A::TWEAK(); } }; say B.new 02:15
camelia b tweak
Cannot invoke this object (REPR: P6opaque; NQPMu)
in submethod TWEAK at <tmp> line 1
in block <unit> at <tmp> line 1
ugexe seems like it, since 02:22
m: role A { submethod BUILD { say ‘a build’ } }; class B does A { submethod BUILD { say ‘b build’; nextsame } }; say B.new
camelia b build
B.new
ugexe maybe not 02:23
02:25 mcmillhj joined 02:30 mcmillhj left 02:33 BenGoldberg joined 02:41 Cabanossi left, mcmillhj joined
Geth ecosystem: 29178ded8a | (Fernando Correa de Oliveira)++ (committed using GitHub Web editor) | META.list
Adding 6pm to the ecosystem

  github.com/FCO/6pm
02:42
02:43 Cabanossi joined 02:46 mcmillhj left 02:51 mcmillhj joined, cdg left 02:56 mcmillhj left
Geth ecosystem/add_object_container: ff6e8d4c95 | moznion++ | META.list
Add Object::Container
02:58
ecosystem: moznion++ created pull request #353:
Add Object::Container
02:59
03:04 gdonald left 03:07 mcmillhj joined 03:11 mcmillhj left
AlexDaniel m: role A { method BUILD { say ‘a build’ } }; class B does A { method BUILD { say ‘b build’; nextsame } }; say B.new 03:13
camelia b build
B.new
AlexDaniel anyway, I guess no way to make sure that TWEAK is called in A?
well, not make sure, but call at least 03:14
zengargoyle hrm, what is the best 'polymult' to to with 'polymod'? 03:16
03:16 gdonald joined 03:17 g41j1n left
ugexe m: role A { submethod TWEAK { say ‘a tweak’ } }; class B { submethod TWEAK { self does A; say ‘b tweak’; nextsame } }; say B.new 03:19
camelia a tweak
b tweak
B+{A}.new
03:23 mcmillhj joined
lookatme m: role A { submethod TWEAK { say ‘a tweak’ } }; class B { submethod TWEAK { self does A; say ‘b tweak’; } }; say B.new 03:24
camelia a tweak
b tweak
B+{A}.new
lookatme As I thought, the **nextsame** is not working 03:25
m: role A { submethod TWEAK { say ‘a tweak’ } }; class B does A { submethod TWEAK { nextwith(); say ‘b tweak’; } }; say B.new 03:26
camelia B.new
lookatme m: role A { submethod TWEAK { say ‘a tweak’ } }; class B does A { submethod TWEAK { callwith(); say ‘b tweak’; } }; say B.new 03:27
camelia b tweak
B.new
lookatme m: role A { submethod TWEAK { say ‘a tweak’ } }; class B does A { }; say B.new
camelia a tweak
B.new
ugexe looks like its working to me
zengargoyle m: say (1*24*60*60 + 13*60*60 + 11*60 + 1).polymod(60,60,24).reverse.reduce({state @r = 24, 60, 60, 1; $^a * @r.shift() + $^b}) 03:28
camelia 133861
03:28 mcmillhj left
zengargoyle m: say (1*24*60*60 + 13*60*60 + 11*60 + 1) 03:29
camelia 133861
03:30 pilne left 03:32 mcmillhj joined 03:37 mcmillhj left 03:41 Cabanossi left 03:42 Cabanossi joined 03:48 mcmillhj joined 03:49 MasterDuke left 03:56 mcmillhj left 03:58 BenGoldberg left 04:02 astj_ left, astj joined 04:07 astj left 04:21 xtreak joined 04:35 cpage_ left 04:49 skids left 04:54 Cabanossi left 04:56 itaipu left 04:57 Cabanossi joined, mr-foobar left 05:02 astj joined 05:03 andrzejk_ joined 05:09 Todd__ joined, khw left
Todd__ anyone home? 05:09
I am wonder if someone would help me with my `run` command. My return string only return the first line or the command. Would if help if I vpasted the test code? 05:12
zengargoyle a paste would probably help. but i haven't played with run at all.... somebody will eventually show up. :) 05:14
Todd__ vpaste.net/61qdd
tony-o most likely to help with a paste
05:15 b2gills left
zengargoyle $proc.out.slurp-rest 05:15
.get is a single 'readline' like thing. it seems you are wanting the entire output. 05:16
Todd__ slurp (which always cracks me up) did the trick. Thank you! 05:17
zengargoyle yeah, i think they've sorta switched between .slurp-rest and .slurp while i wasn't looking :)
Todd__ Just out of curiousity, if I kept issuing .get's, whould I have read the rest of the lines one at a time? 05:18
zengargoyle i would think so.
Todd__ Thank you! Now to turn it into a module. That at least I know how to do!
zengargoyle .out should be an opened IO thing of some sort. 05:19
05:19 ChoHag joined
zengargoyle but i think the .slurp might auto .close the file when it's done.... with .get you have to notice somehow that you've run out of input and maybe .close the .out yourself... i'm not really sure. 05:20
05:20 Kaffe joined
zengargoyle (run might auto .close it's files...) 05:22
05:33 cpage_ joined
Todd__ What is this error code: my $x; my $y; $x, $y = RunNoShell( 'grep "Fedora release" /etc/redhat-release' ); 05:40
WARNINGS for /home/linuxutil/./RunNoShell.pl6: Useless use of $x in sink context (line 35)
05:41 Cabanossi left
Todd__ if I do the "my" on the call line, I don't get the error 05:41
05:41 Cabanossi joined
geekosaur you need parentheses or you need something that recognizes them as part of the same expression (like my) 05:43
otherwise that reads as ($x), ($y = RunNoShell...)
Todd__ my $x, my $y = RunNoShell 05:44
works, which is the confusion
will try ()
geekosaur I suspect that should be a warning tbh
because the second my is 'nested' inside the first
Todd__ ( $x, $y ) = RunNoShell
worked Thank you! 05:45
Now what am I doing wrong. Quoted command gives bad result and a return code of 256. vpaste.net/ybQLb 05:47
05:47 lookatme left 05:48 lookatme joined
Geth ecosystem: ff6e8d4c95 | moznion++ | META.list
Add Object::Container
05:51
ecosystem: 5b1af706da | (Martin Barth)++ (committed using GitHub Web editor) | META.list
Merge pull request #353 from perl6/add_object_container

Add Object::Container
05:51 andrzejk_ left
geekosaur for one, you split on the quotes but you don't remove them 05:56
so grep is being asked to look for "Fedora release" *including* the quotes
Todd__ I tried removing the quotes from $RunArray[1] manually and it made no difference. 05:57
geekosaur btw the "use strict" is not needed, it's strict by default
Todd__ The command does work with quotes from the command line 05:58
geekosaur yes shells remove them
Todd__ should I leave it there to remind me?
geekosaur you are explicitly avoiding the shell, so you have to emulate yourself any shell features like quoting or redirection
or ~ expansion
06:00 ufobat joined 06:01 nidum joined 06:03 nidum left
Todd__ Whatever test I did removing the quotes must have been flawed because 06:04
@RunArray.kv -> $index, $value { say "\$RunArray[$index] = <$value>"; };
fixed it
wrong line, sorry
for @RunArray.kv -> $index, $value { @RunArray[$index] ~~ s:g/\"//; };
Thank you! 06:05
geekosaur sorry, I just got done finding an appropriate alternative for a debian-based system and verifying removing the quotes worked 06:07
tony-o Zoffix: use soft; didn't yield much but i have been able to reproduce the .wrap issue if the subs are in separate files
06:09 Morfent joined, nadim joined 06:11 Cabanossi left
tony-o gist.github.com/tony-o/99ea3ddec23...42e666576e 06:11
06:11 Cabanossi joined
tony-o ^ shows the Cannot invoke this object (REPR: Null; VMNull) issue 06:12
06:14 lizmat left
llfourn tony-o: RT #125634 06:16
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125634
06:16 domidumont joined 06:21 lizmat joined 06:22 domidumont left 06:23 lowbro joined, lowbro left, lowbro joined, domidumont joined 06:25 lowbro left, lowbro joined, lowbro left, lowbro joined 06:30 lizmat left, |oLa| left
Todd__ where would the best place be to go for perl 5 help? Perl Monks? 06:31
06:34 parv joined
lookatme #perl ? 06:35
Todd__ I don't under stand
AlexDaniel Todd__: there is #perl channel
Geth: hello? 06:36
Todd__ that I did not know. Do you know its url?
oh. It is jsut webchat.freenode.net/?channels=#perl 06:37
AlexDaniel Todd__: you're currently on #perl6 channel on freenode. You need #perl on freenode
yes
Todd__ Thank you!
lookatme I wonder is `/join #perl` working on the web client 06:38
06:38 TimToady left
AlexDaniel .tell Zoffix hm, github just said “We couldn’t deliver this payload: Service Timeout” for Geth hooks 06:39
yoleaux AlexDaniel: I'll pass your message to Zoffix.
06:40 TimToady joined 06:42 mr-foobar joined 06:52 lizmat joined 06:59 lizmat left, mr-foobar left
parv lookatme, yup that works. also, one can specify comma-separated multiple channels on the initial screen (with captcha) 07:00
lookatme parv, oh thanks 07:01
parv hth
parv .oO( wait, both "happy to help" and "hope that helps" reduce to "hth" ) 07:02
07:03 mr-foobar joined, lizmat joined
AlexDaniel .tell moritz it seems that perl6-all-modules (github.com/moritz/perl6-all-module...ts/master) is no longer being update. Can you fix that? I'm using it for greppable6 07:07
yoleaux AlexDaniel: I'll pass your message to moritz.
AlexDaniel updateD dammit
07:07 wamba joined
AlexDaniel oh wait 07:10
is it yet another brain fart of mine?
no, it's not, ok 07:11
07:13 Todd__ left, mr-foobar left 07:14 abraxxa joined 07:15 lizmat left
moritz ===SORRY!=== 07:15
Could not find JSON::Tiny at line 2 in:
yoleaux 07:07Z <AlexDaniel> moritz: it seems that perl6-all-modules (github.com/moritz/perl6-all-module...ts/master) is no longer being update. Can you fix that? I'm using it for greppable6
moritz that's why it doesn't update
sounds fixable :-) 07:16
07:22 Manifest0 left 07:23 mr-foobar joined 07:26 darutoko joined 07:28 Manifest0 joined 07:29 pecastro left 07:31 pecastro joined 07:33 lizmat joined 07:44 lizmat left 07:45 xtreak left, mr-foobar left 07:46 Morfent left 07:48 xtreak joined 07:49 mr-foobar joined 07:55 Cabanossi left 07:56 Cabanossi joined
AlexDaniel .seen tadzik 07:58
yoleaux I saw tadzik 10 Jul 2017 12:05Z in #perl6-dev: <tadzik> ah, I guess systemd does that too :)
AlexDaniel .tell tadzic plz github.com/tadzik/perl6-Config-INI/pull/14
yoleaux AlexDaniel: I'll pass your message to tadzic.
07:58 domidumont left
AlexDaniel .tell tadzik plz github.com/tadzik/perl6-Config-INI/pull/14 07:58
yoleaux AlexDaniel: I'll pass your message to tadzik.
07:59 domidumont joined 08:00 rindolf joined 08:12 zakharyas joined 08:15 mr-foobar left 08:18 zakharyas left 08:20 lizmat joined, mr-foobar joined 08:21 parvx joined 08:23 zakharyas joined, parv left
nadim .tell Zoffix outline did the trick, thanks 08:23
yoleaux nadim: I'll pass your message to Zoffix.
Zoffix . 08:26
yoleaux 06:39Z <AlexDaniel> Zoffix: hm, github just said “We couldn’t deliver this payload: Service Timeout” for Geth hooks
nadim timotimo: I tink you were the one who wanted to be able to show a data structure on the terminal/curses while running other code, right?
yoleaux 08:23Z <nadim> Zoffix: outline did the trick, thanks
Zoffix AlexDaniel: which geth? 08:27
AlexDaniel Zoffix: oh…
Geth whateverable: 56480841fb | (Aleks-Daniel Jakimenko-Aleksejev)++ | Greppable.p6
Give versioned results instead assuming of master

Resolves issue #173
08:28
whateverable: 5c87b7ae5d | (Aleks-Daniel Jakimenko-Aleksejev)++ | Whateverable.pm6
Do not upload untracked files

I don't think it matters much, but better safe than sorry.
08:28 Geth_ joined, ChanServ sets mode: +v Geth_
AlexDaniel Zoffix: honestly, I have no idea 08:30
AlexDaniel just fixed the message incorrectly…
Geth whateverable: 8070b7f922 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Greppable.p6
Give versioned results instead of assuming master

Resolves issue #173
08:31
whateverable: f371c765b9 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Whateverable.pm6
Do not upload untracked files

I don't think it matters much, but better safe than sorry.
Zoffix huggable: geth 08:32
huggable Zoffix, Set geth report URL (select application/json and send me everything): geth.niner.name:8888/?chan=#perl6-dev
Zoffix AlexDaniel: ^ that's what it should be. The other geth is just here for anything that didn't change the URL yet 08:33
AlexDaniel oh, ok 08:35
08:44 mr-foobar left 08:46 mr-foobar joined 08:55 Cabanossi left 08:57 Cabanossi joined 09:12 eyck left, parvx left, mcmillhj joined 09:15 mr-foobar left 09:16 mr-foobar joined 09:17 mcmillhj left
Juerd I'd like to do a colored prompt with tab completion. Linenoise borks with ansi escapes in the prompt, Readline can do those but I can't find any documentation or examples for tab completion. Any suggestions? 09:18
lookatme lib Readline has official document. 09:19
Juerd Tab completion is undocumented at github.com/drforr/perl6-readline/b...eadline.pm 09:20
geekosaur I expect you need to refer to the C readline docs 09:22
09:22 melezhik left
lookatme yeah, that what I mean 09:23
s/that/that's/
Juerd Sure, but I have no idea how to translate what I read in the C readline docs to Perl 6
09:25 cuonglm joined
geekosaur github.com/drforr/perl6-readline/b...ne.pm#L616 09:26
Juerd .readline is a blocking method
I have to install a callback, somehow. I don't know how. 09:27
I've used readline in C and Perl 5
09:29 mcmillhj joined
Juerd I've tried to subclass, I've tried to look for compentry or completion_entry, I've looked for alternative modules (there are none) 09:30
It seems I'm stuck with a choice between colored prompts and tab completion
09:33 xtreak left, xtreak joined, mcmillhj left
lookatme Maybe you can ask his author for some help 09:35
s/his/its/
Juerd lookatme: Good idea
DrForr_: Are you around? I can't figure out how to use Readline with completions
09:38 xtreak left 09:45 mr-foobar left 09:46 lookatme left, mr-foobar joined 09:50 jameslenz left 09:57 mr-foobar left, xtreak joined 10:01 parv joined, mcmillhj joined 10:09 Cabanossi left 10:10 mcmillhj left, [ptc] joined 10:12 Cabanossi joined 10:13 cuonglm left 10:20 bpmedley left 10:29 mr-foobar joined 10:33 pecastro left 10:42 eliasr joined 10:54 Cabanossi left 10:57 Cabanossi joined 11:12 parvx joined 11:14 parv left 11:20 kurahaupo left, kurahaupo joined
Juerd So I thought to implement tab completion myself 11:29
Have a working key binding in Readline, can get the current text buffer
timotimo rakudo also doesn't support tab completion in readline
Juerd But I can't get the cursor. It's in a readline variable called rl_point
timotimo but if you add tab completion to readline, rakudo could probably also use it
Juerd I tried cglobal('readline', 'rl_point', int32), but it couldn't find libreadline.so 11:30
So I changed that to libreadline.so.5, and then it stopped complaining, but rl_point is 0
If I use cglobal('libreadline.so.5', 'rl_line_buffer', Str), that's undefined
While I'm quite sure that these variables should be filled 11:31
Any hints?
I'm stuck and desperate. Might even try the Perl 5 library :(
timotimo hm, cglobal doesn't support having a version literal to identify which so file to use?
that's unfortunate 11:32
Juerd Well, it didn't die saying it couldn't find the symbol 11:33
11:33 mr-fooba_ joined
Juerd So apparently specifying the version in the libname works 11:33
timotimo a dumb question maybe but is that the same so file the rest of readline uses?
Juerd I don't know how to find out. Readline uses 'readline' as the library name for "is native" 11:34
11:34 itaipu joined
Juerd I don't understand why that works, while the same string doesn't work with cglobal 11:34
11:34 parvx left
Juerd Found out using strace 11:35
timotimo it should have version literals somewhere
Juerd timotimo: You were right, the rest was using 6
And now it works 11:36
11:36 mr-foobar left
Juerd It's so unfortunate that libreadline's interface for setting a callback for tab completion is a global variable you have to write to, and writing to cglobals is NYI 11:36
timotimo weird.
i don't know why it works in Readline but not in your code 11:37
differences between cglobal and "is native"?
readline itself also has a cglobal in it which also doesn't give a version
11:43 kurahaupo_ joined 11:44 xtreak left 11:46 lizmat left, kurahaupo left 11:48 lizmat joined 11:49 xinming joined 11:50 wamba left, itaipu left 11:52 AlexDaniel left, lizmat_ joined 11:53 lizmat left, cschwenz joined, wamba joined 11:55 TEttinger left 11:57 pecastro joined, itaipu joined
Juerd Woohoo, it seems to work. 12:02
Poor man's tab completion
gist.github.com/anonymous/c90d80f5...3a111846f5 # Definitely my ugliest Perl 6 code to date :) 12:03
12:12 abraxxa left, gdonald left 12:14 nadim left 12:16 itaipu left 12:20 vimal2012 joined 12:22 nadim joined, astj left 12:23 astj joined 12:24 gdonald joined 12:25 vimal2012 left 12:27 astj left 12:28 jameslenz joined 12:38 mcmillhj joined 12:41 cgfbee left 12:42 nadim left 12:44 nadim joined 12:45 lizmat joined 12:47 lizmat_ left 12:50 Franciman joined
Franciman Hi 12:50
what's the largest class of grammars I can parse with the build in parser generator?
jnthn You can embed Perl 6 code inside of the grammar (either as zero-width assertions or to decide dynamically what to match at a certain location). 12:54
Which means if you need it, you can have a turing complete parser, and so parse all the classes :) 12:55
Franciman wow!
thanks
12:55 Cabanossi left 12:56 Cabanossi joined 12:57 lizmat left
moritz Franciman: you might be interested in leanpub.com/perl6regex 12:57
Franciman thank you 12:59
moritz (disclaimer: I'm writing that book right now; mostly covers regexes right now, slowly getting into grammars) 13:01
13:01 lizmat joined 13:03 lizmat_ joined 13:05 lucasb joined 13:07 lizmat left 13:17 nadim left, nadim joined 13:20 yqt joined 13:21 eliasr left 13:25 dolmen joined
SmokeMachine Hi there! Does anyone have a idea why is this happening? is it because the distilled name starts with a number? www.irccloud.com/pastebin/Qa7M7NEP/ 13:36
Zoffix 6pm isn't a valid module name (unsure about being a valid distro name) 13:42
SmokeMachine: did you do `zef update`? 13:43
SmokeMachine the module is called App::six-pm::SixPM... 13:44
Zoffix: I did...
Zoffix SmokeMachine: you ain't got a source url in your META file 13:45
SmokeMachine hum!
Zoffix SmokeMachine: github.com/FCO/6pm/pull/1 13:46
SmokeMachine: bump the version number after that too and in X hours it'll probably work
See also: 13:48
buggable: eco test::meta
buggable Zoffix, Test::META 'Test a distributions META file': github.com/jonathanstowe/Test-META
Zoffix &
SmokeMachine Zoffix: thank you very much! 13:49
I have to make the "6pm init" add this test... 13:50
13:52 araujo joined 14:07 bwisti left 14:11 Khisanth left 14:13 araraloren joined, astj joined 14:17 nadim left 14:18 nadim joined 14:19 setty1 joined 14:20 AlexDaniel joined, sufrostico joined 14:24 Khisanth joined 14:38 lucasb left 14:41 sufrosti1o joined 14:43 sufrostico left 14:49 rubio_terra left
hythm hello perl6, thanks for help yesterday to write my log parsing script. The script works fine now, but it take long time when parsing large files, because reading the file line by line and grammar parse each line in a loop. 14:50
basically I'm looking for a better idea to avoid reading all lines. and read only the needed ones. luckily the logs file is sorted by time stamps 14:51
14:54 Cabanossi left 14:57 Cabanossi joined
Zoffix Would be helpful to see the code, for those who haven't seen it yesterday. 14:59
As well as the input file that needs to be parsed. 15:01
hythm here is the code along with the sample input file gist.github.com/hythm7/f80b2d291df...437b72fcef 15:02
Zoffix hythm: "script purpose is to collect http status between start and end time" 15:10
hythm: is that the only purpose for the script?
'cause there's no need to parse anything, if yes
15:11 emeric joined, skids joined
hythm zoffix, the goal is to return the number of HTTP 5xx errors, broken down by domain, for a given timeframe. 15:12
tony-o llfourn++
15:14 dolmen left
Zoffix huggable: 6.d 15:14
huggable Zoffix, Proposals for 6.d language: github.com/perl6/6.d-prep/blob/mas...EATURES.md
stmuk_ roughly how far away is 6.d? 15:15
Zoffix hythm: FWIW, 6.d will have $*ARGFILES use $*IN inside MAIN
m: say "{Date.new("October-10-19") - Date.today} days, stmuk_"
camelia Invalid Date string 'October-10-19'; use yyyy-mm-dd instead
in block <unit> at <tmp> line 1
Zoffix m: say "{Date.new("2017-10-19") - Date.today} days, stmuk_" 15:16
camelia 90 days, stmuk_
hythm Zoffix, noted.
stmuk_ time based then? :)
15:16 alexi5 joined
alexi5 hello 15:16
Zoffix \o 15:17
15:18 lowbro left
alexi5 I am on vacation looking for something to do and decide to look up on perl6 and was pleasnatbly suprise to see how fr it has come since its release 15:18
Zoffix Thanks :) 15:19
alexi5 does it have its own repository, CPAN ? 15:20
15:20 andrzejku left
Zoffix alexi5: you can upload to CPAN with App::Mi6 and zef looks on CPAN by default. Soon modules.perl6.org will be updated to display modules from CPAN too. 15:20
alexi5 where is a good place to start learning perl 6 ? 15:21
Zoffix alexi5: do you know how to program already, in some other language?
alexi5 yes 15:22
familiar with perl 5, c++ and c#
Zoffix hythm: is ability to work on multiple files a mandatory requirement? It's just you can't seek CatHandles between files... 15:23
perlpilot alexi5: hopefully that won't be an impediment to you learning Perl 6 ;-)
15:23 wamba left
Zoffix alexi5: learnxinyminutes.com/docs/perl6/ 15:24
alexi5 mostly interested in the gotchas, those little quirks that when developing
Zoffix alexi5: in that case see docs.perl6.org/language/traps
perlpilot alexi5: the gotchas might mostly be "things don't work like in Perl 5"
alexi5 ok
hythm Zoffix, it is, but if using one file at a time will significantly improve performance then it's better to parse one file at a time 15:25
perlpilot alexi5: a small one that I sometimes trip over is that `map {...}, @stuff` will require that comma in P6. Though not so much anymore as I tend to do @stuff.map 15:26
eater is there an overcoupling Type for async streams?
file streams, network streams etc. 15:27
alexi5 ok
Zoffix hythm: looks like your parser got a bug in it. When I run it, it says xyz.com got 0% errors, but I see some 500 errors up in the data file 15:30
jnthn eater: overcoupling?
eater jnthn: like an interface 15:31
jnthn Oh
Supply
eater hmmm
jnthn As used in basically all async networking in Perl 6 :)
And output streams of async procs, and so forth
eater iirc they dont implement an Supply, but I should accept an Supply as argument? 15:32
or should I cast them to a Supply?
Zoffix m: say 1.425/0.749
camelia 1.902537
jnthn What are "they"?
Zoffix hythm: well, this version is 2x faster: gist.github.com/zoffixznet/380351b...8cc8c63d3f 15:33
jnthn IO::Socket::Async.listen('localhost', 8080) returns a Supply of incoming connections, each one has a Supply of incoming packets, for example
For Proc::Async then .stdout and .stderr return Supply
eater aah
hythm Zoffix, will check the parser again tto identify the bug
eater so I need to accept Supply as argument :)
thanks jnthn
jnthn Sounds like
I did a presentation recently on supply stuff (and other Perl 6 async) fwiw 15:34
timotimo hythm: tbh, i'd use a simple string split instead of an actual grammar for this
jnthn Might be a useful look through the slides (or video, if you prefer those)
hythm Zoffix, thanks for help, Will check the new version and test it
eater jnthn: link?
hythm timotimo, will use split and compare the speed 15:35
timotimo actually, the new version zoffix made doe suse split
jnthn eater: jnthn.net/papers/2017-perl6-concurrency-pcp.pdf www.youtube.com/watch?v=VqhLWgvIbz0
hythm I just like Grammar, so I try to do any parsing with it :D
eater jnthn: thanks :)
timotimo you could put a code assertion into the grammar to reject lines with the wrong time early
hythm timotimo, I thinkk I did that here gist.github.com/hythm7/f80b2d291df...rse-p6-L29 or you mean something different? 15:38
timotimo no, the actions method runs when the parse is complete
hythm hmm
timotimo and returning from an action method won't prevent any further parsing from being done (though of course the TOP action method gets run at the very end anyway, so there's nothing after that to prevent) 15:39
hythm but again I need to parse the line first to get the timestamp,, so I can assert against it, no?
Zoffix hythm: as for the "read only X" approach, you could just .read() a chunk large enough to contain a few lines and check for timestamps, and then .seek() around for for start and end and then just .read() the chunk between those points. With CatHandle, it's more elaborate, but not impossible. .seek() seeks the current file and doesn't switch to next handle, though .read() does switch, but you can use .on-switch
callback to keep around last files or something
15:40 domidumont left, lizmat_ left
Zoffix hythm: if my version gives right results, I wouldn't even bother with a grammar. It'd definitely be slower and has way more code than a simple split() 15:40
Zoffix &
15:40 AlexDaniel left 15:41 lizmat joined 15:42 AlexDaniel joined
hythm Zoffix, I'm getting error "Could not find symbol '&CatHandle'",, I assume I need to install a missing module? 15:46
timotimo no, it's built-in, but somewhat new
what's a fair perl5 startup line to compare timings between rakudo and perl5? -MMoose is a given, but there'd also have to be a signature-providing module, right? maybe one for grammars?
Zoffix hythm: or, if input is always gonna be comming from files, just make a CatHandle (my version does that) then .seek() in chunks through the entire cathandle, taking sample .read()s and looking whether the time stamp of the sample is in range. Save the offsets from before the chunk became in range and after it went outta range. Then make another CatHandle and just .seek it to first offset, and .read() in chunks
until you read enough bytes to reach the other chunkj. And that way you can cheeply skip huge files
hythm: your rakudo is ancient. Time for an upgrade.
c: 2017.04 IO::CatHandle.say 15:47
committable6 Zoffix, ¦2017.04: «Could not find symbol '&CatHandle'␤ in block <unit> at /tmp/fmEtYtpYg3 line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/fmEtYtpYg3 line 1␤ «exit code = 1»»
Zoffix Ah.
ugexe Function::Parameters, or the built-in signatures of later perls
timotimo that'd be rakudo star, then?
Zoffix hythm: well, it's not in a Rakudo Star yet. There's a release coming up soon. It'll be in there.
timotimo so it'd be unfair to put a signature-providing library in there?
Zoffix hythm: you can probably copy this file into a file named IO/CatHandle.pm6 and try it as a module: github.com/rakudo/rakudo/blob/nom/...tHandle.pm 15:48
I think that'll work
ugexe the built-in signatures don't have many features, so it depends
hythm will try that
Zoffix hythm: and put `use nqp;` at the start of the file to load nqp 15:49
timotimo anyway, -MFunction::Parameters adds basically nothing to the start-up time, so it doesn't even matter :)
ugexe you could just do -MMoops, that should include alot of the bells and whistles
then again maybe you have to explicitly use its signatures thing (Kavorka), etc 15:50
timotimo does that stand for "Moo + Perl Six"?
Zoffix Load all of Damian's modules? :)
15:50 khw joined
ugexe github.com/ugexe/Perl5-App--p6brew...rew.pm#L62 actually I guess it does load a method signature module 15:54
15:55 cschwenz left
Zoffix hythm: oh and remove `my` from `my class IO::CatHandle..` or it won't get exported. And in your script you need to load this module. So if you put it in IO/CatHandle.pm6, then add `use lib <.>; use IO::CatHandle` 15:56
15:57 epony left, cdg joined
Franciman has haskell influenced perl6? 15:57
15:57 zakharyas left
Zoffix Franciman: yes 15:57
ugexe one (the?) first compiler was written in haskell
Franciman how much? 15:58
I mean
what things?
Zoffix shrugs
Having been around at that time :) TimToady probably knows
15:59 cdg_ joined, mcmillhj left 16:00 astj left 16:01 astj joined 16:02 astj left, astj joined, cdg left 16:03 astj left, astj joined 16:07 astj left 16:09 Cabanossi left 16:11 mcmillhj joined 16:12 Cabanossi joined
robertle is it this? github.com/perl6/Pugs.hs 16:15
perlpilot Franciman: pervasive laziness. But I'm not sure that Haskell specifically influenced that as much as function languages in general.
16:15 mcmillhj left
Zoffix robertle: yeah 16:16
perlpilot robertle: yeah, that's the haskell Perl 6 compiler
16:16 pmurias joined
pmurias hi 16:16
perlpilot pmurias: greetings
Zoffix \o 16:17
Franciman perlpilot, gotcha 16:18
timotimo i wouldn't call perl6 to have "pervasive lazyness" 16:20
we only have lazy lists, we don't have lazy evaluation 16:21
perlpilot well, it's more prominent in P6 than it ever was in P5.
timotimo well, yeah
but it's nowhere near as prominent as in haskell
perlpilot true
timotimo if you say "perl6 took pervasive lazyness from haskell" people will be comparing vs haskell, not vs perl5
Zoffix m: my $imploded-universe = 0/0; say ";)" 16:23
camelia ;)
perlpilot Franciman: yeah, it's best to ask TimToady if/how/where Haskell influenced Perl 6 :-)
16:24 astj joined
perlpilot I don't think I ever heard the idea of multi methods/subs until after Pugs/Audrey came into the picture. But I dunno. 16:25
(heard of it as applied to P6)
timotimo okay, lazy exceptions is definitely a thing
except lazyness of exceptions in haskell is a curse :) 16:26
16:27 mcmillhj joined, astj left
perlpilot I wish Perl 6 had somehow garnered type inferencing from Haskell 16:27
16:28 astj joined
perlpilot (optionally, obviously) 16:28
16:32 mcmillhj left
Zoffix Oh, right exceptions. 16:32
16:33 astj left
timotimo the problem in haskell is that you don't know when your piece of code is actually going to be run 16:33
16:33 astj joined
timotimo so an exception caused in a piece of code can be long past any dynamic context you'd expect it to be 16:33
16:34 rubio_terra joined
hythm Zoffix, noted that, Appreciate your help guys. 16:36
Franciman thank you all, for all the hints 16:40
16:45 fatguy joined
fatguy is there FindBin eqv in perl6 ? 16:45
moritz m: say $*EXECUTABLE 16:46
camelia "./rakudo-m-inst/bin/perl6-m".IO
moritz hm, no
m: say $?FILE
camelia <tmp>
moritz that's it
m: say $?FILE.^name
camelia Str
16:47 gdonald left
pmurias timotimo: exceptions in haskell aren't exactly encourages 16:49
ugexe m: say $*PROGRAM 16:50
camelia "<tmp>".IO
16:52 yqt left
timotimo yeah 16:53
nadim anyone seen or talke to azawawi lately? 16:57
17:00 gdonald joined 17:03 rindolf left 17:05 mcmillhj joined 17:10 Cabanossi left 17:12 Cabanossi joined
fatguy m: say $?FILE.IO.dirname ~ '../lib' 17:12
camelia /tmp../lib
Zoffix huggable: FindBin 17:16
huggable Zoffix, nothing found
Zoffix huggable: FindBin
huggable Zoffix, use lib $*PROGRAM.add: "../lib"; # finds lib/ for scripts in bin/ or t/
Zoffix fatguy: if you have paths, deal with paths, not strings :)
fatguy zoffix: thanks for the tips 17:17
Zoffix Hm, actually that don't work :) 17:19
17:19 suman joined
suman Hi everyone 17:19
I have prepared this github.com/sumandoc/Getting-Starte...6_Regex.md
Zoffix Hi
zengargoyle hythm: a long shot, my Search::Dict module is a binary search over dictionary files. it could maybe be hacked to do a quick binary search on a log file if the dates are at the start of the line and in order. then you could maybe quickly find the line (seek offset) in the file where you want to start reading from. 17:21
Zoffix fatguy: the old factoid was `use lib $*PROGRAM.parent.parent.child("lib").Str;` `use lib` now supports IO::Path... Hm, lemme play with it for a sec to figure out what the modern equivalent would be
17:23 yqt joined
Zoffix $*PROGRAM.add("../../lib").resolve works. eww at that .resolve tho 17:23
17:24 fatguy left
Zoffix haw 17:24
huggable: FindBin :is: use lib $*PROGRAM.sibling: '../lib'; # finds lib/ for scripts in bin/ or t/
huggable Zoffix, Added FindBin as use lib $*PROGRAM.sibling: '../lib'; # finds lib/ for scripts in bin/ or t/
Zoffix .tell fatguy Not sure if you caught it before you left, but the first FindBin equivalent I gave you was wrong. It should be `use lib $*PROGRAM.sibling: '../lib';` 17:25
yoleaux Zoffix: I'll pass your message to fatguy.
tony-o lol 17:28
Zoffix ?
tony-o i like that username 17:29
Zoffix Damn. .add() has a somewhat of a design failure. "dir/filename".IO.add("../bar") produces a path that needs to be .resolve()d before it can be used by, say, .dir() call :/
tony-o ingy: finally got around to packaging the p6 libyaml wrapper/parser yesterday
Zoffix And .sibling() works better for such a use, but its name sucks then 17:30
Geth doc: 22792e1a1a | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/IO/Path.pod6
Fix up .sibling docs
17:31
Zoffix I guess better quesion is why "dir/file/../other-dir".IO.dir doesn't dir :} 17:32
s: ".".IO, "dir", \()
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/e2ca...th.pm#L541
hythm zengargoyle thanks for the hint, that sounds perfect for what I need, checking that out 17:34
Zoffix Doesn't .open either. 17:35
17:36 suman left
Geth doc: cdae1edc51 | (Vynce Montgomery)++ (committed by Zoffix Znet) | doc/Type/Cool.pod6
Explicitly note coercion to string for .contains (#1413)

  * Explicitly note coercion to string for .contains
as per #992
  * make link to traps more specific.
... (9 more lines)
17:38
17:38 AlexDaniel left
17:38 AlexDaniel joined 17:40 rindolf joined, Cabanossi left
Geth doc: 4c73ea7e7e | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/IO/Path.pod6
Mention .add('../') to file-pointing paths doesn't quite work
17:42
17:42 Cabanossi joined
Zoffix I guess when we end up with performance we can waste, .open, .dir and the rest of the ilk can be made to .resolve 17:42
17:43 atta joined 17:44 araujo left 17:50 alexi5_ joined 17:51 atta left 17:53 alexi5 left
Zoffix Or .add should resolve 17:53
17:55 atta joined 18:02 espadrine joined
ugexe seems reasonable, since low level stuff related to those things are easy enough to do in nqp ops 18:03
Zoffix m: say "foo/bar/../meow" 18:06
camelia foo/bar/../meow
Zoffix m: say "foo/bar/../meow".IO.resolve
camelia "/home/camelia/foo/bar/../meow".IO
Zoffix m: say "foo/bar/../../../camelia".IO.resolve.dir
camelia Failed to get the directory contents of '/home/camelia/foo/bar/../../../camelia': Failed to open dir: 2
in block <unit> at <tmp> line 1
Zoffix m: say "foo/bar/../../../../../../../home/camelia".IO.resolve.dir 18:07
camelia Failed to get the directory contents of '/home/camelia/foo/bar/../../../../../../../home/camelia': Failed to open dir: 2
in block <unit> at <tmp> line 1
Zoffix Right. I guess even with .resolve in the mix, it won't do The Right Thing 100% of the time. Oh well.
Zoffix &
18:17 dolmen joined, dolmen is now known as Guest90987 18:36 alexi5_ left
rubio_terra m: say $*CWD; 18:45
camelia "/home/camelia".IO
rubio_terra m: say "../../etc/../home/camelia".IO.resolve; 18:46
camelia "/home/camelia".IO
rubio_terra With real paths "resolve" works. 18:47
Voldenet well foo and bar could be symlinks 18:48
so there's no real way to know
m: say "foo/../".IO.resolve
camelia "/home/camelia/foo/..".IO
Voldenet m: say "foo/../".IO.resolve 18:49
camelia "/home/camelia/foo/..".IO
18:51 itaipu joined
Zoffix Yeah, it goes out to look if it can resolve the '../' and it does it if it can and if not, it switches to "not-accessing-the-filesystem" mode for the rest of it and just cleans up what it can 18:55
(or dies if :completely arg is passed)
m: say "foo/bar/../meow".IO.resolve: :completely 18:56
camelia Failed to completely resolve IO::Path.new("foo/bar/../meow", :SPEC(IO::Spec::Unix), :CWD("/home/camelia"))
in block <unit> at <tmp> line 1
Zoffix well, fail()s, not die()s
Voldenet die is so perl5 anyway 18:57
Zoffix :)
18:58 wamba joined
Voldenet I wonder how secure is .resolve method, probably not really secure ;> 19:02
Zoffix Voldenet: what's not secure about it?
buggable: eco secure
buggable Zoffix, IO::Path::ChildSecure 'Secure version of IO::Path.child': github.com/zoffixznet/perl6-IO-Path-ChildSecure
Zoffix Voldenet: wondering if that ^ has any flaws in it; and it does use .resolve: :completely 19:03
Voldenet Well, when you replace a folder etc with a symlink to /etc during the "resolve" method... you might break things ;) 19:04
19:05 itaipu left
Voldenet "let me upload to /tmp/etc/shadow" 100 times per second ;) 19:05
Zoffix doesn't see how that would break 19:06
Voldenet well, when you can modify stuff in /tmp, you can actually make /tmp/etc a symlink after /tmp/etc is validated 19:07
Zoffix Ah, right.
19:09 Cabanossi left 19:11 darutoko left
Zoffix Is there a way to prevent that at all? 19:11
Voldenet open the file first and then use readlink syscall on it ;)
Zoffix Ah
Noted.
19:12 Cabanossi joined 19:17 itaipu joined 19:26 lizmat left 19:32 itaipu left 19:35 Skarsnik joined
Franciman see you, thanks again for your help 19:35
19:35 Franciman left 19:36 devmikey joined 19:39 itaipu joined, Cabanossi left 19:41 lizmat joined 19:42 Cabanossi joined 19:44 cpage_ left 19:53 mr-fooba_ left 19:54 mr-foobar joined 20:09 Cabanossi left, mr-foobar left 20:10 cpage_ joined 20:11 lizmat left, mr-foobar joined 20:12 Cabanossi joined
hythm hello, what is the name of the variable that start with "$^" like $^var ? need to check that on docs 20:18
20:19 lizmat joined
geekosaur positional placeholder variables docs.perl6.org/language/variables#The_^_Twigil 20:22
hythm Thanks!
20:22 rubio_terra left 20:23 raiph left 20:24 raiph joined, dwarring joined
Geth doc: ab3e5329cd | (David Warring)++ | doc/Language/performance.pod6
adjust profile SQL example for latest Rakudo

  'callee' table has been renamed to 'call'. Also added a 'limit' clause.
20:25
20:30 devmikey left 20:31 emeric left, devmikey joined 20:32 devmikey left 20:40 itaipu left 20:44 TEttinger joined 21:05 skids left 21:11 alexi5_ joined 21:18 yqt left 21:20 gdonald left
hythm zengargoyle I used your module Search::Dict for lookup and seek in log-file gist.github.com/hythm7/f80b2d291df...437b72fcef 21:21
I still will test it on large files, buit it worked great on sample file 21:22
Thanks #perl6 21:23
21:23 mcmillhj left 21:26 pmurias left
zengargoyle hythm: woot! 21:29
21:32 gdonald joined, kurahaupo_ left 21:37 cpage_ left 21:39 cognominal left
hythm zengargoyle I went through the module and I see it's reading 128 kb as block size from the file, if you care to elaborate, does that mean it's using 128 kb in memory to parse the file or I understood that wrong? 21:39
21:40 cpage_ joined 21:41 alimon left
Zoffix It takes about 4 times as much data in memory after you read stuff in 21:41
hythm and that doesn't depend on the actual file size? 21:42
Zoffix And you can see peak memory use with /usr/bin/time
21:43 MasterDuke joined
Zoffix hythm: no, just on how much you read at a time. Same as with your previous line-by-line version, it only reads in chunks of 0x100000 bytes IIRC 21:43
21:44 setty1 left
MasterDuke positive Perl 6 mention on HN news.ycombinator.com/item?id=14819307 21:44
21:44 spider-mario left
hythm makes sense Zoffix. is it the case for CPU as well, I read that binary search use (log N) as I assume N number of lines. Does that apply for the module as well? 21:46
Zoffix no idea about the module 21:47
MasterDuke: it it from one of the devs or regulars?
:)
21:47 spider-mario joined 21:48 dwarring left
hythm I dont know, but here is the code github.com/zengargoyle/p6-Search-Dict 21:48
MasterDuke Zoffix: no idea, none of the usernames in the conversation look familiar
hythm oops, sorry, I thought message was directed to me. 21:49
22:10 Cabanossi left 22:12 Cabanossi joined 22:21 ufobat left 22:34 nadim left
Zoffix FWIW that positive Rakudo mention also has mention of "EDIT: Ok, so I installed perl6 (rakudo) just to test this out, and it apparently doesn't work out of the box. Pity." 22:36
probably some 2011 release :P like on my LTS buntu box :P
22:43 raschipi joined
AlexDaniel similarly we will see people using rakudo 2016.12 (debian stable) after v6.d is released 22:43
unless we *really* take our time to do v6.d :)
22:46 Skarsnik left
MasterDuke oO(create a severe enough CVE for their 2016.12 package they're forced to upgrade...) 22:47
AlexDaniel no, it will be patched in 2016.12 directly 22:48
22:56 rubio_terra joined
raschipi Debian would either patch it or remove it. They won't upgrade. 23:05
23:05 dj_goku left
raschipi One way to alleviate that problem is to make sure Moar, Nqp and Rakudo build with the toolchain from the stable distros, because then the maintainer will upload new versions to the backports repository. 23:08
And you can tell people to use the version from backports. 23:09
23:17 rindolf left 23:19 cdg joined 23:22 cdg_ left 23:23 cdg left 23:24 cdg joined 23:28 cdg left 23:38 mcmillhj joined 23:42 mcmillhj left
Geth doc: 5f6619cfdc | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/IO/Handle.pod6
Fix broken wording
23:44
23:52 Guest90987 left 23:54 mcmillhj joined 23:58 mcmillhj left