»ö« 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:07 athenot joined 00:12 espadrine left 00:24 fascinum left
ZeonPeon Hi, I'm experiencing a bit of a problem. When using the perl6 repl with Linenoise and trying to tab-complete after a @ sigil the repl segfaults 00:36
I'm guessing the source of the problem is Linenoise as the repl does not segfault when it is not installed 00:37
What would be the best method of collecting information to submit a bug? 00:38
00:40 athenot left
timotimo ZeonPeon: have you used gdb before? 00:52
ZeonPeon not really... at all 00:53
timotimo OK, that's not too bad 00:54
we install a shortcut for you called perl6-gdb-m which launches the script (or REPL) in gdb
oh, huh, that's fun
ah, no, it should work 00:55
ZeonPeon So would I lanch the repl and replicate the process?
timotimo yup, when it segfaults, it should drop you into gdb's own shell
ZeonPeon Is it just plain jane gdb? 00:56
timotimo should be 00:57
ZeonPeon Alright, I'll go and look at some gdb guides then
00:57 markong left
timotimo well, all you'll really need to do to get some info to get started is: 00:57
"up" a few times, until the function names look like they are from moarvm (they usually start with MVM)
"call MVM_dump_backtrace(tc)" to get a stack trace to figure out how we got where we are 00:58
MasterDuke if you start with "bt" that'll give you a MoarVM level backtrace, with that you can see how many times (if any) you need to "up" 01:00
timotimo i'd personally call that a "C-level backtrace"
because since it's probably crashing inside of Linenoise, you'll also have linenoise-related frames in there
MasterDuke heh, that's what i wrote first, but then i changed it 01:01
ZeonPeon So I'm getting:
MasterDuke oh good point, i should have left it
timotimo oh, hold on
ZeonPeon 0x00007ffff7817d5f in MVM_dump_backtrace () from //usr/lib/moar/libmoar.so
timotimo please upload text to some pasting service, rather than putting it directly into IRC
ZeonPeon Sorry, one moment
timotimo thank you
irc is terrible for multi-line text 01:02
ZeonPeon pastebin.com/cqBwMFvH 01:04
timotimo hm, i wonder why dump_backtrace also crashed 01:05
does "print tc" give something vaguely sensible, or something vaguely error-like?
ZeonPeon it prints one line: 01:06
$1 = 1.46163213
do you want the output of 'bt'? 01:07
timotimo hm, it's not entirely unlikely that it's just barfing there because it lacks debug symbols 01:08
did you compile your rakudo yourself?
ZeonPeon no, out of the apt repo of kubuntu 17.10 01:09
timotimo oh, what version does it give you?
ZeonPeon One moment 01:10
pastebin.com/pVridP0i 01:11
MasterDuke huggable: debs
huggable MasterDuke, CentOS, Debian, Fedora and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg/releases
timotimo i can imagine you're running into a bug that has already been fixed
yes, what MasterDuke linked to ought to help you out 01:12
ZeonPeon I've been looking for closed issues relating to it
I'm guessing I'll either have to update my distro or compile myself
timotimo it's also possible that a change to Linenoise has made old versions run into the bug, but nobody has tested older rakudo with up-to-date linenoise and so it wasn't found?
you don't have to, did you see the link huggable sent? 01:13
ZeonPeon Man... software b'y
Oh, awesome, thanks MasterDuke
MasterDuke El_Che++, he's done the actual work 01:14
ZeonPeon What does the apk cover? should I uninstall just rakudo or anything perl6? 01:17
timotimo i didn't check, but i believe it also contains nqp and moarvm, if those are separate packages
and it can install zef for you, too, right?
github.com/nxadm/rakudo-pkg - the readme has a lot of text 01:18
ZeonPeon Yup, so the docs say
timotimo oh, right, there's also an apt repository
ZeonPeon I'll just flatten anything perl6 related and then go from there
Thank you very much for the help, I appreciate it 01:19
timotimo the perl6 ircers are happy to help :)
ZeonPeon it seems odd that the rakudo-pkg installs to opt, I'm guessing the maintainer uses mac 01:24
timotimo according to the readme, it's built so it doesn't interfere with distro packages 01:25
BBL 01:28
01:28 fascinum joined 01:30 comborico1611 left
ZeonPeon Awesome, got it installing 01:31
Almost broke my install tho
accidently put "export PATH=$(PATH):/opt/rakudo-pkg/bin" in my bashrc
oops 01:32
It seems that Linenoise has run into a different problem now 01:35
c'est la vie 01:38
01:47 ilbot3 left 01:52 molaf left 01:54 Sgeo joined 01:55 Sgeo_ left 01:56 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:04 zachk left, haxmeister joined 02:05 molaf joined
haxmeister since when does perl6 sleep on the weekend? 02:06
wake up you fine folks!
timotimo hello haxmeister 02:23
ZeonPeon What is the perl 6 terminology for a lambda (if it exists)? 02:28
haxmeister anonymous sub? 02:29
timotimo we have pointy blocks which are probably the closest to lambda
right, anonymous subs also exist. WhateverCode is another thing
ZeonPeon Thanks 02:32
02:38 eliasr left, athenot joined 03:03 Sgeo_ joined 03:04 Sgeo left 03:11 athenot left
ktown m: $,=" ";say 1,2 03:33
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of $, variable; in Perl 6 please use $*OUT.output_field_separator()
at <tmp>:1
------> 3$,7⏏5=" ";say 1,2
ktown how do I do that? 03:35
MasterDuke bisect: $*OUT.output_field_separator() 03:39
bisectable6 MasterDuke, Bisecting by output (old=2015.12 new=776ff35) because on both starting points the exit code is 1
MasterDuke, bisect log: gist.github.com/bed5d0a2ae7ecbf65b...0df4c3abbd
MasterDuke, (2016-09-27) github.com/rakudo/rakudo/commit/22...0f14b9c05c
MasterDuke bisect: old=222d16b0b94911fdedb06ee6ad817d0f14b9c05c $*OUT.output_field_separator() 03:40
bisectable6 MasterDuke, On both starting points (old=222d16b new=776ff35) the exit code is 1 and the output is identical as well
MasterDuke, Output on both points: «No such method 'output_field_separator' for invocant of type 'IO::Handle'␤ in block <unit> at /tmp/E3t652d9h0 line 1␤␤»
MasterDuke committable6: all $*OUT.output_field_separator()
committable6 MasterDuke, gist.github.com/d843e88ff53d606322...f4b844e195 03:41
AlexDani` MasterDuke: hm… the system looks fine 03:42
03:42 AlexDani` is now known as AlexDaniel
AlexDaniel (re: “the bots seem slower than usual”) 03:43
MasterDuke ktown: well, apparently not with $*OUT.output_field_separator() anytime recently
AlexDaniel nothing in swap, cpu not busy
MasterDuke: maybe it's because we have so many releases now? :)
MasterDuke maybe i was just imagining it
03:43 rindolf joined
AlexDaniel no the bot was definitely much faster two years ago… :) 03:44
MasterDuke: also, it's probably time to parallelize it
MasterDuke that message was introduced 5 years ago and hasn't been changed since. github.com/rakudo/rakudo/commit/bd...6f069c4e01 03:45
ktown MasterDuke: i googled, so $, is not implemented? 03:46
AlexDaniel m: say join '--', 1,2 03:47
camelia 1--2
AlexDaniel m: sub kebab(*@a) { put join '--', @a }; kebab 1,2,3 03:48
camelia 1--2--3
AlexDaniel ktown: correct, not implemented and given how easy it is to do something like this it probably won't be implemented any time soon 03:49
ktown: but line separators are there, if that matters 03:51
m: $*OUT.nl-out = ‘--’; say 42; say 50
camelia 42--50--
MasterDuke anyway, it's really time to go to bed. later... 03:52
AlexDaniel MasterDuke: perhaps that's another good point for github.com/rakudo/rakudo/issues/1356 :)
MasterDuke at the very least that bunch of messages should be validated 03:53
AlexDaniel I'll probably do that tomorrow if nobody beats me to it 03:57
04:01 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 04:05 AlexDaniel left 04:16 pilne left 04:19 fascinum left 04:21 xinming_ left 04:22 xinming joined 04:24 parv left 04:25 wamba joined 04:30 ZeonPeon left 04:45 kaare_ joined 04:55 BenGoldberg left 05:03 wamba left 05:15 psychoslave joined 05:16 athenot joined 05:21 khw left 05:40 espadrine joined 05:47 ufobat___ joined 05:49 athenot left 05:55 entonian joined 05:57 entonian left 06:05 fascinum joined 06:13 Herby_ left 06:24 jmerelo joined 06:38 troys joined 06:44 troys left 06:52 speedChicken_ joined, raynold joined, raynold left 06:53 raynold joined 06:57 fascinum left
Geth doc: JJ self-assigned Make example match output in Proc::Async github.com/perl6/doc/issues/2024
ba17e5973c | (JJ Merelo)++ | doc/Type/Proc/Async.pod6
07:04
synopsebot Link: doc.perl6.org/type/Proc::Async
doc: 006fbf34b0 | (JJ Merelo)++ | doc/Language/concurrency.pod6
Eliminates accidental markdown refs #2022
07:09
synopsebot Link: doc.perl6.org/language/concurrency
doc: 1bb3d100eb | (JJ Merelo)++ | doc/Language/concurrency.pod6
Adds more precise definition of concurrency closes #1427
07:17 lizmat left 07:23 fascinum joined 07:26 darutoko joined 07:30 fascinum left
jmerelo Another question in SO aimed at improving the documentation stackoverflow.com/questions/503137...-procasync 07:31
07:55 speedChi- joined 07:59 fascinum joined 08:02 athenot joined 08:06 fascinum left 08:15 psychoslave left 08:18 speedChi- left, speedChicken_ left 08:19 speedChicken_ joined 08:20 speedChi- joined, ufobat___ left 08:24 ufobat___ joined, ufobat___ is now known as ufobat
ufobat good morning :) 08:24
08:35 fascinum joined, athenot left 08:44 HaraldJoerg joined
jmerelo hi! 08:48
09:01 fascinum left, wamba joined 09:19 molaf left 09:20 kurahaupo_ joined 09:22 kurahaupo left 09:24 Xliff joined
jmerelo greppable6: «=» 09:29
greppable6 jmerelo, 4 lines, 1 modules: gist.github.com/359aeedcd2ec1e76f8...280c6563ef
Xliff \o 09:30
jmerelo p6: my @flat = 1, 2, (3, 4), 5; say @flat 09:33
camelia [1 2 (3 4) 5]
jmerelo p6: my @flat = 1, 2, (3, 4), 5; my @another = @flat; say @another
camelia [1 2 (3 4) 5]
09:34 athenot joined
jmerelo m: my ($a, $b, $c); (($a, $b), $c) »=« ((1, 2), 3); say $a, $c; (($a, $b), $c) = ((1, 2), 3); say $a, $c 09:35
camelia 13
(1 2)(Any)
09:35 molaf joined
jmerelo m: my ($a, $b, $c); (($a, $b), $c) «=» ((1, 2), 3); say $a, $c; (($a, $b), $c) = ((1, 2), 3); say $a, $c 09:37
camelia 13
(1 2)(Any)
Xliff p6: my @flat = 1, 2, (3, 4), 5; say |@flat
camelia 12(3 4)5
Xliff p6: my @flat = 1, 2, (3, 4), 5; say @flat.flat() 09:38
camelia (1 2 (3 4) 5)
Xliff :/
p6: my @flat = 1, 2, (3, 4), 5; say @flat.flat
camelia (1 2 (3 4) 5)
Xliff p6: my @flat = 1, 2, (3, 4), 5; say @flat.map(|*) 09:39
camelia (1 2 3 4 5)
Xliff Although both the "|" prefix op and .flat should do the same thing... Hmm.....
p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap(*) 09:41
camelia Cannot resolve caller flatmap(Array: Whatever); none of these signatures match:
($: &block, :$label, *%_)
in block <unit> at <tmp> line 1
Xliff ^^ That's what I get for reading a 2 year old post. 09:42
Geth doc: 5564d256b2 | (JJ Merelo)++ | doc/Language/concurrency.pod6
Minor changes
09:43
synopsebot Link: doc.perl6.org/language/concurrency
doc: 4b9853279e | (JJ Merelo)++ | doc/Language/operators.pod6
Adds example with «=»

Also adds it to the index, along with its alternate form. It's simply the *hyper* version of the assignment operator. Closes #2010.
synopsebot Link: doc.perl6.org/language/operators
jmerelo Xliff: which one? Can it be corrected?
Is this documentation OK? docs.perl6.org/routine/flatmap 09:45
m: my @list = ('first1', ('second2', ('third3', 'third4'), 'second5'), 'first6'); say @list.flatmap({.reverse}).perl;
camelia ("first1", "second5", "third3", "third4", "second2", "first6").Seq
jmerelo p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap( {*} ) 09:46
camelia 5===SORRY!5=== Error while compiling <tmp>
{*} may only appear in proto
at <tmp>:1
------> 3 1, 2, (3, 4), 5; say @flat.flatmap( {*}7⏏5 )
expecting any of:
argument list
horizontal whitespace
term
jmerelo p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap( { $^þ } )
camelia (1 2 (3 4) 5)
jmerelo p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap: * 09:47
camelia Cannot resolve caller flatmap(Array: Whatever); none of these signatures match:
($: &block, :$label, *%_)
in block <unit> at <tmp> line 1
09:47 tomaw left
jmerelo p6: my @flat = (1, 2, (3, 4), 5); say @flat.flatmap( {.reverse} ).perl 09:48
camelia (1, 2, 4, 3, 5).Seq
jmerelo p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap( {.reverse} ).perl
camelia (1, 2, 4, 3, 5).Seq
jmerelo p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap( {.Str} ).perl 09:49
camelia ("1", "2", "3 4", "5").Seq
09:54 ufobat left
El_Che timotimo: would the readme better be split? 09:55
09:55 domidumont joined 09:57 kurahaupo_ left
jmerelo m: my $a = 2; say $a, ++$a; 10:00
camelia 33
jmerelo m: my $a = 2; say "$a, {++$a}";
camelia 2, 3
10:02 athenot left
jmerelo m: my @arr; my ($a, $b) = (1,1); for ^5 { ($a,$b) = ($b, $a+$b); @arr.push: ($a, $b); say @arr }; 10:07
camelia [(1 2)]
[(2 3) (2 3)]
[(3 5) (3 5) (3 5)]
[(5 8) (5 8) (5 8) (5 8)]
[(8 13) (8 13) (8 13) (8 13) (8 13)]
10:11 robertle left 10:12 robertle joined 10:13 domidumont left 10:14 domidumont joined
jmerelo m: my @arr; my ($a, $b) = (1,1); for ^5 { ($a,$b) = ($b, $a+$b); @arr.push: ($a.item, $b.item); say @arr }; 10:18
camelia [(1 2)]
[(2 3) (2 3)]
[(3 5) (3 5) (3 5)]
[(5 8) (5 8) (5 8) (5 8)]
[(8 13) (8 13) (8 13) (8 13) (8 13)]
Geth doc: 5ffcfc1c99 | (JJ Merelo)++ | doc/Language/traps.pod6
Less accidental MD, refs #2022
10:21
synopsebot Link: doc.perl6.org/language/traps
doc: b33402c5cb | (JJ Merelo)++ | doc/Language/traps.pod6
Expands "containers vs values" trap

With reference to the example in the IRC conversation. Avoids referencing decontainerization because it's not documented, created issue #2025. Closes #1216.
El_Che jmerelo: answered in SO instead of here because that's what you like :)
El_Che I am pretty sure that people like jnthn and lizmat will come with something cooler :)
jmerelo El_Che: it's good enough. Thanks! 10:23
10:27 Khisanth left 10:28 domidumont left
El_Che good enough 10:29
Is that something you write when reviewing papers? :)
jmerelo El_Che: Never. I'm all for "Revise grammar and spelling" and "make fonts in chart 1 smaller and fonts in chart 2 larger" 10:30
El_Che hehe
10:39 Khisanth joined 10:44 rindolf left
Geth doc: e0f8edcbec | (JJ Merelo)++ | doc/Language/concurrency.pod6
Rephrases for good, thanks @nxadm, closes #1427
10:48
synopsebot Link: doc.perl6.org/language/concurrency
10:55 ExtraCrispy joined 11:03 rindolf joined, psychoslave joined 11:09 vivus-ignis joined 11:16 pilne joined 11:24 jmerelo left 11:30 psychoslave left, vivus-ignis is now known as ignis__away 11:33 markong joined 11:40 ignis__away is now known as vivus-ignis
Xliff p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap( {.self} ).perl 11:43
camelia (1, 2, 3, 4, 5).Seq
Xliff p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap.perl
camelia Cannot resolve caller flatmap(Array: ); none of these signatures match:
($: &block, :$label, *%_)
in block <unit> at <tmp> line 1
Xliff p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap().perl
camelia Cannot resolve caller flatmap(Array: ); none of these signatures match:
($: &block, :$label, *%_)
in block <unit> at <tmp> line 1
Xliff Ideally, @flat.flatmap should default to @flat.flatmap({.self}) 11:44
AND @flat.flatmap(*) should functionally be the same as ^^
Ideally, @flat.flatmap should default to @flat.flatmap({.reverse})
OOPS ^^ Scratch that. Was me being lazy 11:45
The first comment still stands.
Ideally, @flat.flatmap should default to @flat.flatmap({.reverse})
?!?
p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap(*.reverse).perl
camelia (1, 2, 4, 3, 5).Seq
Xliff p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap(*).perl
camelia Cannot resolve caller flatmap(Array: Whatever); none of these signatures match:
($: &block, :$label, *%_)
in block <unit> at <tmp> line 1
Xliff p6: my @flat = 1, 2, (3, 4), 5; say @flat.flatmap(*.self).perl
camelia (1, 2, 3, 4, 5).Seq
Xliff So.... I'm tired. I am going to take a nap, now' 11:46
11:53 Zoffix joined
Zoffix .tell Xliff flatmap is slated for removal in 6.e, with deprecation in 6.d, so what it should do is moot. But with other routines, we generally don't add a Whatever or argless candidate unless the default is very clear. We aren't Perl 5. 11:55
yoleaux Zoffix: I'll pass your message to Xliff.
Geth doc/car-grant-midrat: ca141dd73a | (Zoffix Znet)++ | doc/Type/MidRat.pod6
[CaR Grant] Document MidRat.Numeric

  - It collapses the MidRat into its Rat component, potentially
   degrading it to a Num
11:57
Zoffix Wondering if that ^ is going slightly too far with collapsing a MidRat and .Numeric should just return self (i.e. MidRat)
But then you have `0 + $mr` => Num; `+$mr` => MidRat 11:58
And with RatStr `prefix:<+>` does collapse to Numeric component, but with MidRat we got two of them....
`with < 1/22222222222222222222> { .^name.say; .Numeric.^name.say; .Numeric.^name.say }` OUTPUT: «MidRatStr␤MidRat␤Num» 12:01
`with < 1/11111111111111111111> { .^name.say; .Numeric.^name.say; .Numeric.^name.say }` OUTPUT: «MidRatStr␤MidRat␤Rat»
err… s:2nd/'.Numeric.^name.say'/.Numeric.Numeric.^name.say/ 12:02
12:03 vivus-ignis is now known as ignis__away 12:08 thaarv joined 12:10 athenot joined 12:12 psychoslave joined 12:13 mcmillhj joined 12:22 mcmillhj left 12:24 ZeonPeon joined
timotimo El_Che: i'm not sure; you mean into "users of the packages" and "users of the repository to make their own packages"? 12:26
Geth doc/car-grant-midrat: 0b6301d4b6 | (Zoffix Znet)++ | doc/Type/MidRat.pod6
[CaR Grant] Document MidRat.Real

Same degradation behaviour as .Numeric
12:29
doc/car-grant-midrat: feaca486ec | (Zoffix Znet)++ | doc/Type/MidRat.pod6
Break up overly long lines
12:30 tomaw joined 12:32 psychoslave left 12:33 psychoslave joined 12:34 thaarv left
El_Che timotimo: yes, keep the readme very basic and have other linked file for more specific uses 12:38
12:41 lasse_ joined
Zoffix .tell Xliff P.S.: the no-op map would be `{$_}`, not `*.self`, as the latter will blow up any unhandled Failures. 12:41
yoleaux Zoffix: I'll pass your message to Xliff.
12:42 athenot left 12:45 zakharyas joined
lasse_ Zoffix: I tried to install star on opensuse 42.3 no success either with source or precompiled 12:46
Zoffix lasse_: what were the problems?
lasse_ source looped as on tumbleweed. 12:48
Zoffix lasse_: and prebuilt packages?
El_Che lasse_: my 42.3 pkg is installerd on 42.3 before it's released
lasse_ for the precompiled an error occured while initializing the sotware repository 12:49
El_Che I don't know if those packages work on tumbleweed
ah the repo?
lasse_ i was using 42.3
Zoffix lasse_: do you have git installed?
12:50 ZeonPeon left
lasse_ if not I can install its a basic opensuse 12:50
El_Che lasse_: let me spin an opensuse container
docker hub is slow today :( 12:51
Zoffix lasse_: see of El_Che can fix the problem. If not, I'd suggest removing everything you installed so far, including any paths or env vars you set up. Then just run these commands (you'll need git): gist.github.com/zoffixznet/57178a9...e40859b1ab That will install the compiler and module manager (zef) and set up `update-perl6` bash alias that you can run later to update to latest release of 12:52
the compiler. And then you'd just install any modules you need with zef.
thundergnat Zoffix If you have a moment, I would appreciate you taking a look at my pull request github.com/rakudo/rakudo/pull/1822. I think it is worthwhile, but I don't know if it will interfere with you CaR grant work. 12:56
El_Che lasse_: zypper ar -f dl.bintray.com/nxadm/rakudo-pkg-rp...2.3/x86_64 rakudo-pkg
lasse_: rust the key
lasse_: zypper install rakudo-pkg
Zoffix lasse_: in fact, maybe the precompiled packages are failing because you set something up for rakudo star? Like paths or env vars or something? Or you ran something with root and it got bad perms on it now. Could run this to nuke any of the previous dirs rm -fr ~/.zef ~/.perl6
El_Che lasse_: /opt/rakudo-pkg/bin/perl6 -v : This is Rakudo version 2018.04.1 built on MoarVM version 2018.04.1\nimplementing Perl 6.c.
I'll update the opensuse instructions 12:57
Zoffix \o/
El_Che I wrongly assumed the yum instrcutions would work as is, but they also have a native way
lasse_ I rebooted and now it worked 12:59
This is Rakudo version 2018.04.1 built on MoarVM version 2018.04.1
Zoffix yey
lasse_ I probably screwed up. I often do. 13:00
13:11 speedChi- left, speedChicken_ left 13:13 zakharyas left 13:16 ignis__away is now known as vivus-ignis
Zoffix .tell thundergnat I thought someone was already reviewing your original PR. Have them merge. It won't interfere with my grant work. 13:19
yoleaux Zoffix: I'll pass your message to thundergnat.
thundergnat .tell Zoffix MasterDuke++ and tbrowder++ reviewed and critiqued, but they don't have commit bits. 13:26
yoleaux thundergnat: I'll pass your message to Zoffix.
13:19Z <Zoffix> thundergnat: I thought someone was already reviewing your original PR. Have them merge. It won't interfere with my grant work.
Zoffix thundergnat: tbrowder_ does 13:27
yoleaux 13:26Z <thundergnat> Zoffix: MasterDuke++ and tbrowder++ reviewed and critiqued, but they don't have commit bits.
Zoffix And MasterDuke should've signed a CLA ages ago :)
thundergnat Zoffix Ah. Nevermind then. I'll bother someone else. Cheers. 13:28
13:31 sacomo joined, bartolin_ left
El_Che lasse_: updated the instructions, just for you (jk): github.com/nxadm/rakudo-pkg#opensuse 13:33
MasterDuke i keep forgetting to print that CLA out... 13:35
Zoffix huggable: cla
huggable Zoffix, nothing found
Zoffix huggable: CLA
huggable Zoffix, www.perlfoundation.org/contributor_..._agreement print it out, sign it, scan it in (resize your scan to 250KB or less). Email to trademark -at- perlfoundation.org (please scan and email if you can, it's so much more efficient)
Zoffix MasterDuke: do it now. 13:36
13:39 domidumont joined 13:41 athenot joined 13:44 aborazmeh joined, aborazmeh left, aborazmeh joined
Zoffix my FatRat \a := <1/22222222222222222222>; my FatRat \b := <3/22222222222222222222>; say (a + b).^name; # => 'Num' 13:46
13:46 domidumont left 13:47 domidumont joined
Zoffix Damn. Maybe an operation with two MidRats should produce a MidRat, not degrade into a Rat 13:47
13:47 bartolin joined
Zoffix Well, actually the above code would be a Rat, because after reduction result's denominator fits, but it's still not a FatRat and would still be a Num if denom. cannot be reduced. 13:47
And maybe a MidRat should not be a FatRat. 13:48
Actually, just the latter. Don't make it an allomorph of the two, but just a subclass of Rat. 13:49
Zoffix achieves higher level of clarity 13:51
13:52 kurahaupo joined
Zoffix MidRat = just a Rat that supports arbitrary denominators. 13:52
And I haven't wrote a single line of actual code :) 13:53
13:53 wamba left
MasterDuke Zoffix: what do you mean by arbitrary? how is that different from a FatRat 13:53
timotimo it's not infectious
i.e. combine a rat with it and you'll get a rat again, not a FatRat 13:54
MasterDuke ah
timotimo Zoffix: if you call .Rat on a MidRat, will you get a Rat or just "self"?
Zoffix + degradation to Num, just like a Rat. `<0/1> + <1/22222222222222222222>` => Num; `<0/1> + FatRat.new(1, 22222222222222222222)` => FatRat
timotimo: a Rat 13:55
timotimo i mean if MidRat ~~ Rat, then returning MidRat from a MidRat's .Rat should be fine?
Zoffix So far I plan to make even .Numeric/.Real return a Rat (or degrade to a Num), but don't know if that's going a bit far. 13:56
13:56 lucasb joined, eliasr joined
Zoffix timotimo: then it's inconsistent with, say, <42>.Int returning an Int and not an IntStr. 13:56
timotimo that's fair 13:58
Zoffix The goal behind a MidRat is to hold on to higher precision given when we don't know whether we're going to be using high-precision math, but as soon as it's used in some context that lets us know, it goes away. So if I write a Rational literal `my \mr := <1/22222222222222222222>` it's not known whether I'm gonna do high-precision math, but as soon as I write `42 +_mr` we know we aren't dealing with FatRat-type 13:59
operations, so we degrade it to a Rat/Num
Well, we do a infix:<+>(Int, Rational) and then reduce, and if the result fits into a Rat, then the answer is a Rat, otherwise, it's a Num.
Geth doc/car-grant-midrat: c0d35c14a8 | (Zoffix Znet)++ | 2 files
[CaR Grant] MidRat no longer inherits from FatRat

Reasoning: irclog.perlgeek.de/perl6/2018-05-13#i_16160055
14:02
14:10 aborazmeh left 14:14 athenot left
lucasb $ perl6 <<< get 14:15
Failed to stat file descriptor: Bad file descriptor
Tried this code with perl5, python3 and ruby, and they all successfully return an eof value 14:16
Zoffix What does '<<<' mean?
lucasb echo get | perl6 -
Zoffix ah
$ echo get | perl6 -
MVMArray: Index out of bounds
lucasb lol, I didn't tried that myself :) 14:17
was expecting both shell idioms to evaluate to the same behaviour
"<<<" is bash syntax (and maybe other shells)
Zoffix Well, I see the bug. The file descriptor is -1 14:18
and it's trying to bind it into forget close array at that index
Zoffix hackety hacks 14:19
By which I mean not trying to do the auto-close magic if file descriptor is -1. That sounds sane, right? 14:20
lucasb Dunno :)
I was more intrigued by the fact that "<<<" and "echo | ..." differs 14:21
Voldenet but does it really? 14:23
Zoffix lucasb: how did you measure that perl5/python3/ruby returned an eof value?
lucasb 3 lines pasting, sorry: 14:24
perl <<< 'print "undef\n" if !defined <STDIN>'
python3 <<< 'import sys; print(repr(sys.stdin.readline()))'
ruby <<< 'p gets'
Voldenet in perl you could probably do "if eof STDIN" instead 14:25
Zoffix $ echo 'print fileno STDIN' | perl - 14:26
0
Looks like the real bug is that our native descriptor is -1 in this case.
lucasb Voldenet: right, that's shorter. thanks
Voldenet huh, now I wonder why 14:33
printf '' | perl -le 'print eof STDIN' -> 1
printf '' | perl6 -e '$*IN.eof.say' -> False
Zoffix Voldenet: docs.perl6.org/routine/eof "On non-seekable handles and handles opened to zero-size files (including special files in /proc/), EOF won't be set until a read operation fails to read any bytes." 14:34
Voldenet Ah, it works differently.
14:36 vivus-ignis left 14:43 AlexDaniel joined
Voldenet btw, it's interesting how 'echo "get" | perl6 -' fails 14:43
but 'echo "get" | perl6 /dev/stdin' works 14:44
Zoffix lucasb: yo, submit a fix for that bug. 14:45
lucasb: need to stick ` unless $filename eq '-'` for this .close line: github.com/perl6/nqp/blob/master/s...r.nqp#L415 14:46
lucasb Voldenet: indeed, well noticed 14:52
AlexDaniel MasterDuke: (do it now)++
lucasb Zoffix: just that, really? ok, I can test and PR that later, if nobody gets to it first. Thanks! 14:53
Zoffix Filed as R#1824
synopsebot R#1824 [open]: github.com/rakudo/rakudo/issues/1824 [IO][LHF] non-interactive REPL mode breaks STDIN
15:01 comborico1611 joined 15:05 ufobat joined 15:13 athenot joined 15:28 psychoslave left 15:34 khw joined 15:41 espadrine left 15:45 skids joined, athenot left 15:48 jmerelo joined 15:54 HaraldJoerg left
Geth doc: 16e9d9d9df | (JJ Merelo)++ | doc/Type/Proc/Async.pod6
Clarifies methods closes #1901 again
15:59
synopsebot Link: doc.perl6.org/type/Proc::Async
jmerelo m: say "[ hey ]" ~~ /<-[ \] \s ]>+/ 16:06
camelia 「[」
jmerelo m: say "[ hey ]" ~~ /<-[ \] \[ \- \s ]>+/
camelia 「hey」
jmerelo m: say "[- hey -]" ~~ /<-[ \- \] \[ \- \s ]>+/ 16:07
camelia 「hey」
jmerelo m: say "[- hey -]" ~~ /<-[ \- \] \[ - \s ]>+/ 16:09
camelia 「hey」
jmerelo m: say "[- hey -]" ~~ /<-[ \] \[ - \s ]>+/
camelia 「hey」
jmerelo m: say "[- hey -]" ~~ /<-[ \] [ - \s ]>+/ 16:10
camelia 「hey」
jmerelo m: say "[- hey -]" ~~ /<-[ ] [ - \s ]>+/
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing + or - between character class elements
at <tmp>:1
------> 3say "[- hey -]" ~~ /<-[ ]7⏏5 [ - \s ]>+/
Zoffix FWIW camelia also takes a /msg
jmerelo Zoffix: yep, and there's the #Whateverable channel. But by doing it here sometimes I get helpful hints from however is in the channel :-) 16:11
Zoffix: thanks anyway
Geth doc: 09b23106b9 | (JJ Merelo)++ | doc/Language/regexes.pod6
Eliminates accidental MD refs #2022
16:12
synopsebot Link: doc.perl6.org/language/regexes
doc: 3206fec2a1 | (JJ Merelo)++ | doc/Language/regexes.pod6
Adds info on escaping characters closes #1146
Zoffix You'd get more hints if you asked an actual question.
16:15 Zoffix left
Geth doc/car-grant-midrat: 15 commits pushed by (JJ Merelo)++, (Zoffix Znet)++
review: github.com/perl6/doc/compare/c0d35...76583dd87f
16:15
16:17 vivus-ignis joined 16:18 bstahlman joined
bstahlman Wondering whether there's any sort of readline support for perl 6. The interactive shell feels a bit painful because I'm used to having readline support everywhere in linux - if nothing else, there's rlwrap, but even that doesn't appear to work with perl6. 16:20
timotimo you can install Readline or Linenoise
the repl is supposed to tell you that when you start it
moritz rlwrap works fine for me with rakudo 16:21
bstahlman Ah. I just noticed that some of the emacs-style binding seem to work by default. Perhaps it's just not taking my .inputrc into account?
moritz that might be possible 16:22
timotimo could be, yeah
bstahlman You're referring to a p6-specific Readline package, not the normal readline lib?
timotimo maybe we'd have to call some readline function to have it look at that
yes, "zef install Readline" or so
bstahlman Ah. Ok. Thanks. I'll look into those...
rlwrap isn't working for me with rakudo, but I have the rakudo that comes with Ubuntu 16.04, I think, which appears to be several years old (~2015), so perhaps it's that... 16:23
Geth doc: 1310d51d78 | (JJ Merelo)++ | doc/Language/phasers.pod6
Explains success closes #905
16:24
synopsebot Link: doc.perl6.org/language/phasers
timotimo haha, yeah, that won't work very well
comparatively, i mean
especially with the up-to-date readline package
and it's probably not able to run zef at all
bstahlman Rt. Is the best way to build from source, or do people usually add a p6 repo?
16:24 itaipu joined
timotimo huggable: deb 16:25
huggable timotimo, Alpine, CentOS, Debian, Fedora, OpenSUSE and Ubuntu Rakudo packages: github.com/nxadm/rakudo-pkg#rakudo-pkg
jmerelo bstahlman: depends on what you call "best", but it's a pretty good way :-) El_Che has prepared repos for Ubuntu and other distros
timotimo that link should help you out 16:26
oh
on the main page of that repo there's also an apt repository that you can feed into your apt
huggable: help
huggable timotimo, nothing found
timotimo huggable: factoid
huggable timotimo, nothing found
timotimo huggable: usage
huggable timotimo, nothing found
timotimo ...
oh, that link is already the right one 16:27
i thought it was a link to the releases page of that repo 16:28
bstahlman Great. Thanks. I'll check that out. Incidentally, on the subject of support framework... Has anyone in the p6 community given any thought to what it would take to get p6 support in online tools like HackerRank? Employers use it a lot now, and it's great for developing practical skills in a language. Being able to practice p6 in it would be huge, in my opinion.
timotimo don't know how they do things, but we have, for example, a jupyter kernel for perl6 that you can use with jupyter notebook for example 16:30
jmerelo May I draw your attention to this issue? github.com/perl6/doc/issues/711 It's about bots, such as the huggable huggable above. The list is not up to date. Can someone pick up one, or a few, and update it?
timotimo if all they need is an evaluation server?
bstahlman I'm not sure what interface they require, but I could ask around on their site. 16:31
16:31 vivus-ignis left
jmerelo bstahlman: I didn't know about hackerrank. Generally we deal with those issues, like adding support in GitHub or Travis, either in the marketing or some other common repo. 16:31
bstahlman: please do. Maybe all it requires is some pull request in some repository. We can do that.
bstahlman Just thinking it could really help with p6 adoption. For instance, the ability to practice in HackerRank is something I consider when looking for a language to teach my kids. 16:32
Great. Thanks. I'll post a question on it and get back with you when I have an answer...
jmerelo bstahlman: Thanks! 16:33
timotimo www.hackerrank.com/environment
don't see any link for "where can i request more languages/libraries"
they spell Perl "PERL" on that last example page 16:34
www.hackerrank.com/support/feature - this is perhaps where you'd ask a question like that 16:35
aha! 16:36
github.com/interviewstreet/languag.../README.md
16:36 kaare_ left
timotimo see the "new language request for codechecker" at the bottom 16:36
16:37 bstahlman left 16:38 vivus-ignis joined 16:44 athenot joined
timotimo github.com/perl6/user-experience/issues/22 16:45
16:46 tomaw left 16:47 tomaw joined, tomaw left 16:48 espadrine joined 16:50 wamba joined 16:54 cog_ joined 16:56 tomaw joined
El_Che (I just saw that the telemetry basic test is a flopper, fails once in a while) 17:11
17:12 espadrine left 17:15 athenot left, psychoslave joined 17:24 vivus-ignis is now known as ignis__away 17:31 comborico1611 left 17:33 ignis__away is now known as vivus-ignis 17:41 espadrine joined 17:45 itaipu left 17:46 margeas joined 17:47 markong left 17:48 margeas is now known as markong 17:49 vivus-ignis is now known as ignis__away 17:56 comborico1611 joined 18:02 ignis__away is now known as vivus-ignis
Geth doc: 0ab8abbd2e | (JJ Merelo)++ | t/02-pod-valid.t
Adds a comment for understanding it better
18:06
doc: 350386a909 | (JJ Merelo)++ | t/02-pod-valid.t
Clarifies error message
doc: 014c7e6795 | (JJ Merelo)++ | 2 files
Tests for tests spun off and included

Now it checks not only valid Pod6, but also valid syntax.
This is actually a workaround for #1951. It was a Rakudo error having to do with the setting up of a compunit, which is created when the file is interpreted. It happened, when it did, by the end of the ... (8 more lines)
18:10 raynold left 18:12 lucasb left 18:13 comborico1611_ joined, comborico1611 left 18:14 psychoslave left 18:17 athenot joined 18:19 vivus-ignis is now known as ignis__away 18:23 cog_ left 18:34 comborico1611_ left 18:35 comborico1611_ joined 18:36 darutoko left 18:38 ignis__away is now known as vivus-ignis 18:46 psychoslave joined 18:48 athenot left 18:51 kaare_ joined
Geth doc: 99cb566e76 | (Will "Coke" Coleda)++ | doc/Language/temporal.pod6
whitespace
18:54
synopsebot Link: doc.perl6.org/language/temporal
18:57 domidumont left 19:02 jmerelo left 19:30 markong left, margeas joined 19:38 markong joined
MasterDuke rindolf: ping 19:38
19:38 margeas left
rindolf MasterDuke: hi 19:39
MasterDuke hey. does this code look familiar to you? 'my $N = 2; my @x = FatRat.new(1, 1), -> $x { $x - ($x ** 2 - $N) / (2 * $x) } ... *; my $a = @x[13]; say $a.chars'
19:40 comborico1611 joined, comborico1611_ left
MasterDuke back around february someone had some numerical code that was much slower in Perl 6 than Perl 5, Python, etc. the main part that was slow wasn't the number crunching, but the stringification of FatRats 19:41
i did a minor optimization to FatRat shortly after, but thundergnat++ just made it many orders of magnitude faster 19:42
c: 2018.04.1,HEAD my $N = 2; my @x = FatRat.new(1, 1), -> $x { $x - ($x ** 2 - $N) / (2 * $x) } ... *; my $a = @x[13]; say $a.chars; say now - INIT now 19:43
committable6 MasterDuke, ¦2018.04.1: «3139␤3.139767␤» ¦HEAD(9b915f0): «3140␤0.0545834␤»
El_Che wow 19:44
MasterDuke but i can't remember who it was 19:46
19:46 athenot joined 19:49 comborico1611_ joined, comborico1611 left, comborico1611_ is now known as comborico1611
rindolf MasterDuke: it doesnt look familiar 19:52
19:52 comborico1611 left 19:53 psychoslave left
MasterDuke hm, let me look back at the chat log for feb... 19:54
Voldenet MasterDuke: it looks faster, but why it's 3139 in the first result and 3140 in the second? 19:56
timotimo c: 2018.04.1,HEAD my $N = 2; my @x = FatRat.new(1, 1), -> $x { $x - ($x ** 2 - $N) / (2 * $x) }... *; my $a = @x[13]; say $a.chars; say $a.substr(*-16); say now - INIT now
committable6 timotimo, ¦2018.04.1: «3139␤1798339810837883␤6.4405407␤» ¦HEAD(9b915f0): «3140␤7983398108378828␤0.0876808␤»
MasterDuke i think there were some bugs fixed as well
timotimo it looks like it has one additional digit of accuracy 19:57
Voldenet ah, makes sense
thundergnat Voldenet: the new optimization returns 1 more decimal place of precision than it use to
El_Che for free? or would be 1 decimal place less precision be faster? 19:58
thundergnat I could have chopped it off, but it would have slowed it (marginally) for less precision...
Voldenet losing performance and precision doesn't sound like a good tradeoff
thundergnat At least, it would have complicated the algorithm. 19:59
El_Che more precision it is, then :) 20:00
is it arch dependant? e.g. less in i386?
(if so, it should be marked in the doc) 20:01
thundergnat El_Che It _shouldn't_ be dependent. At least, not unless the underlying VM is.
It's all pretty high level.
timotimo that would be very weird 20:02
El_Che cool
timotimo it just uses the integers we provide, i.e. mp_int for big integer and 64bit ints otherwise
MasterDuke thundergnat: btw, how did you come up with your change? i actually google around looking for faster algorithms and couldn't find anything
thundergnat Dumb luck? 20:03
I was working with large FatRats and the stringification was killing me.
MasterDuke heh. well, you write a blog post or something, get the info searchable
thundergnat I really wanted to return more decimal places of precision for FatRats in general but roast tests them a 6. 20:04
m: say FatRat.new(2/3)
camelia Type check failed in binding to parameter 'nu'; expected Int but got Rat (<2/3>)
in block <unit> at <tmp> line 1
thundergnat oops
m: say FatRat.new(2,3)
camelia 0.666667
thundergnat I wanted that to return .6666666666666667 20:05
MasterDuke have you checked the 6.c-errata branch of roast? if the tests you're talking about aren't there then we're way more free to change things
otherwise, i'd suggest proposing it for 6.d
thundergnat If you are paying the performance penalty for FatRat calculations why not get the benefit? 20:06
20:19 athenot left 20:23 lasse_ left 20:33 cog_ joined, vivus-ignis left 20:42 molaf left 20:44 sunnavy joined 20:46 mscha joined 20:50 margeas joined 20:51 markong left 20:52 comborico1611 joined 20:58 mscha left 21:06 raynold joined 21:14 fascinum joined 21:15 mikejw joined
mikejw hey guys 21:15
21:16 margeas is now known as markong, cog_ left
mikejw I'm not sure how much luck I'm going to have but I've been playing around with Terminal::Print and getting confused by $*TERMINAL 21:16
it doesn't seem to be used/set in any of the examples 21:18
AlexDaniel grep: \$\*TERMINAL 21:19
greppable6 AlexDaniel, 7 lines, 1 modules: gist.github.com/7eb4e350fee6a2d9a1...726f19ea03
mikejw yeah it's the Widget module I was hoping to grok 21:20
geekosaur looks like something not yet implemented 21:21
mikejw hmm
21:21 cog_ joined
geekosaur there was some early consideration for working with terminals other than the one currently connected to stdin/stdout, for testing purposes, later set aside 21:23
so $*TERMINAL presumably is intended to be whatever the current terminal device is
21:23 vivus-ignis joined
geekosaur (curses has a similar mechanism, very rarely used) 21:24
mikejw I'm stuck because I can't see how the examples attacks.p6 and rpg-ui.p6 seem to get around it
21:24 robertle left
mikejw because they are using the Widget module 21:25
geekosaur if I am reading this correctly, the only thing useful in $*TERMINAL is its grid, which is an in-memory representation of the widget's/window's/screen's contents 21:27
or intended contents; there will somewhere be a refresh/update handler that rebuilds the screen grid from what's visible on it and then outputs terminal commands to make it match the screen grid 21:28
21:29 vivus-ignis left
mikejw ah ok so maybe the issue is I'm trying to basically animate something that doesn't exist yet 21:35
21:52 fascinum left 21:54 fascinum joined
Ulti 0.885s for my tests yay 22:04
22:04 vike1 left 22:05 vike joined
Ulti was 0.96s for the advent calendar 22:07
thundergnat Ulti: Out of curiosity, what do your tests test? 22:15
22:16 zpc joined 22:17 athenot joined, cog_ left 22:18 fascinum left
Ulti github.com/MattOates/BioInfo/blob/...equences.t 22:23
some basic manipulation and translation of DNA sequences 22:24
but there is a grammar in there too along with a bunch of bag/hash manipulations
basically its a good representative of the sorts of things you do in bioinformatics with sequence data 22:25
thundergnat Heh. I did a double take at first. I actually work with a Matt Oates... but you're not him.
Ulti just `perl6 -e 'say ""'` takes 0.258s 22:26
thundergnat: hah oh really??
are you sure :P
also way to dox me in the logs jeees
thundergnat Unless you've snuck over to New Jersey, USA 22:27
Ulti does your friend work as a tattoo artist?
thats the main guy ruining my inbox at the moment
thundergnat Github link doxed you more effectively than I did. ;P
Ulti Im quite scared what anatomy Im going to get next from some of his female clients
thundergnat: true 22:28
22:31 lizmat joined 22:46 mikejw left 22:50 athenot left
timotimo Ulti: i imagine you don't want to change the code to make stuff faster, but 22:50
map *~*~*, $.sequence.uc.comb is better written as $.sequence.uc.comb(3), IMO 22:51
hm, though
m: say map *~*~*, "hello there".uc.comb(3)
camelia Too few positionals passed; expected 3 arguments but got 1
in block <unit> at <tmp> line 1
timotimo right, so it has already been multiple of 3 letters
goes from 0.66s to 0.50s on my machine for this change 22:52
i can even get it a tiny bit faster by replacing .comb(/<-[\*]>+/) with .split("*", :skip-empty), but that part of the code is only responsible for about 1 or 2 percent of total run time anyway 23:00
oh, fun, 41k deoptimizations in Any-iterable-methods.pm6's line 357
347*
that's from IterateOneWithoutPhasers 23:01
which is the routine that takes 24% exclusive time in total, and only has 44.7k entries anyway
MasterDuke how does that happen? the first 3k entries were all the same so it made an optimized version then the next 41k entries were all different? 23:11
timotimo not necessarily, but possible i guess? 23:12
MasterDuke any way to do better? 23:13
timotimo let me first find out what exactly is deopting here 23:17
OK, it's guarding for a staticframe that it had inlined 23:20
it had inlined the pull-one from Str's comb method 23:21
MasterDuke why is it de-opting?
timotimo because it's no longer encountering that code 23:22
MasterDuke what is it getting instead?
timotimo the pull-one from Str's *other* comb method :) 23:23
MasterDuke sibling rivalry rears its ugly head! 23:24
timotimo line 360 is what was inlined, line 401 is the other
at least the code already behaved like that before my changes :) 23:26
23:30 wamba left 23:31 MasterDuke left 23:32 MasterDuke joined
MasterDuke Ulti: fwiw, .comb would be faster here github.com/MattOates/BioInfo/blob/...eq.pm6#L11 23:37
m: my $s = ("a".."z").pick(*).join x 5; my @a; my $t = now; for ^100_000 { @a = $s.split("") }; say @a; say now - $t; 23:38
camelia [ m e v g z b h w a p q i u d x k j r l n t f o s c y m e v g z b h w a p q i u d x k j r l n t f o s c y m e v g z b h w a p q i u d x k j r l n t f o s c y m e v g z b h w a p q i u d x k j r l n t ...]
4.5703216
MasterDuke m: my $s = ("a".."z").pick(*).join x 5; my @a; my $t = now; for ^100_000 { @a = $s.comb }; say @a; say now - $t;
camelia [e i x g s n t r y h b d m j o l v u k q c z w f a p e i x g s n t r y h b d m j o l v u k q c z w f a p e i x g s n t r y h b d m j o l v u k q c z w f a p e i x g s n t r y h b d m j o l v u k q c z ...]
4.103915
MasterDuke also, you might be able to replace $.attribute with $!attribute in a bunch of places, that should be faster also 23:40
23:42 ufobat left
timotimo we can hopefully inline the accessor just fine in those cases, and that allows subclasses to work with these methods, too 23:46
really it's a question of API design
23:47 athenot joined 23:57 markong left 23:59 w_richard_w joined, espadrine left