»ö« 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.
zengargoyle has anybody done a blog post or something that collects all of the new-ish best practices or tools related to module creation? like the META6 license and CPAN and zef vs panda and that /todo/ website that tells me my modules are all missing a MANIFEST and is App::Mi6 the best shiny thing and there seems to be a Test::META sort of thing ... 00:15
Geth whateverable: 5f010e77af | (Aleks-Daniel Jakimenko-Aleksejev)++ | Greppable.p6
New bot: Greppable

Just a few lines of code, but this should be good enough.
00:18
samcv AlexDaniel, more bots :O 00:19
greppable6, help
greppable6 samcv, Like this: greppable6: password # See wiki for more examples: github.com/perl6/whateverable/wiki/Greppable
samcv greppable6, password
greppable6 samcv, gist.github.com/3e2a5cf8a1464d5aa5...54a8ed49b4
AlexDaniel greppable6: samcv
greppable6 AlexDaniel, gist.github.com/631fd4d62b0204cf7d...0995923c12
samcv so it greps all the modules. ah 00:20
greppable6, EVAL
greppable6 samcv, gist.github.com/c49a84ea7c869b4d65...b0726d74ee
samcv hmm it's not case sensitive
AlexDaniel should it be? 00:21
samcv dunno 00:22
maybe not
lookatme morning .o/ 00:31
Geth whateverable: d65e539647 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Greppable.p6
Print a meaningful message if nothing is found
00:34
whateverable: af3c913dbf | (Aleks-Daniel Jakimenko-Aleksejev)++ | Quotable.p6
Old bot: Quotable

This bot is rather old but nobody committed it. I can see that the code can be improved a lot, and the functionality is not that great too. However, at this point it makes sense to commit whatever we have and improve it later.
samcv too many bots 00:37
AlexDaniel when exactly is it too many? 00:38
samcv too many compared to yesterday
idk. two bots in a day is a statistical anomoly
AlexDaniel what's the second one?
quotable6: uptime 00:39
quotable6 AlexDaniel, 1 week, 2 days, 6 hours, 59 minutes, and 20 seconds
Geth doc: antquinonez++ created pull request #1328:
Grammar
00:42
AlexDaniel 99 whateverable issues… damn… 00:46
I need a bot to work on these bots
Geth doc: 059825d015 | (Zoffix Znet)++ | doc/Type/Pair.pod6
Reference .antipair from Pair.invert
00:52
AlexDaniel 100 issues… that's it 00:54
MasterDuke AlexDaniel: summer break is coming up right? just 1 issue a day and you'll be done by the time the next semester starts! 00:58
lookatme Is there any document about macro ? 01:26
MasterDuke lookatme: masak is doing pretty much all the macro work in his 007 repo 01:29
lookatme MasterDuke, oh thanks, I see 01:33
MasterDuke buggable: eco 007
buggable MasterDuke, 007 'Small experimental language with a license to macro': github.com/masak/007
lookatme Em, I was reading the tutorial now 01:35
Geth doc: antquinonez++ created pull request #1329:
io-guide updates
01:51
pilne multi seems to allow for a lot over very "functional" style programming idioms to pop out at me on rosettacode. 02:13
pilne over == of** 02:54
lookatme - - ? 03:01
--?
pilne a lot of things that would be used as like an end case in a haskell function, are just a part of a multi-dispatch function, it's... super neat to me (: 03:03
pilne i just feel that no matter how my brain thinks up a particular solution and structures that solution, perl6 will allow me to easily compose code that works how I'm wanting. 03:10
lookatme such as ? 03:13
pilne the zeckendorf numbers example there, uses a multi dispatched to (0) as one case and then the case for 1 and above (which always hits 0). i first saw stuff like that used a lot when dabbling in haskell. 03:15
lookatme Yeah, Perl 6 provides a quite natural functional style 03:18
pilne it feels like a super-powered, super-easy way to create "generic" functions as well 03:19
and i'm often shocked at how much perl6 will resemble the psuedo-code without having to finagle things into existence to implement it in the way the challenge specifies. 03:20
pilne or if it does take finagle-ing (by the nature of the challenge), perl6 does it very elegantly. 03:21
pilne well, i should get a few hours of shut-eye, until next time! 03:22
lookatme Em . 03:23
Herby_ o/ 03:59
Herby_ Good evening 04:05
I recently reinstalled perl6 and I noticed that on the Rakudo download page, the file name I downloaded is rakudo-star-2017.04.2-x86_64 (JIT) 04:06
but when I installed that file and did a: perl6 -v
its telling me that I actually installed 2017.04.3 04:07
Herby_ not sure if it matters that the version in the file name and the version installed don't quite match 04:07
or if i'm reading it wrong
skids I think the .2 is a bugfix release # on the star distro, and the .3 is a point revision on the compiler. 04:12
Herby_ i figured it had a reason and i was reading it wrong :) 04:14
jap6h I've been working on a custom debugger but noticed in CORE.settings we're explicitly requring the binary is named 'perl6-debug'... otherwise precompile will compile the UI of the binary... perhaps there could be a command line option for this? 05:32
samcv hmm wish there were a Perl 6 module for DBus. gonna try Net::DBus perl 5 module 05:53
Ulti has Zoffix taken down his twitter account? or have I specifically managed to get myself blocked? >:Z 06:39
moritz you can always check when you're not logged in 06:59
lookatme my @a = lazy gather for 1 ... 1024 { take "$_ => ", $*THREAD; }; for @a { start { .say } }; 07:37
Sometimes rakudo hang on a while with this code 07:39
lookatme Version This is Rakudo version 2017.05 built on MoarVM version 2017.05 07:40
lizmat Ulti: last tweet from Zoffix was 8h ago 08:38
lookatme lizmat, do you have time look at this :) 08:58
my @a = lazy gather for 1 ... 1024 { take "$_ => ", $*THREAD; }; for @a { start { .say } }; # Sometimes rakudo hang on a while with this code
nadim_ Good morning, I think I have a serious problem; I describe it here with code nopaste.linux-dev.org/?1128479 . Apart the problem described in the link, I also notice that if I place some dd calls to debug, the behavior changes, in this case I get different errors. 09:05
lizmat lookatme: not sure what you expect with that code: runs fine for me but all $*THREAD are thread #1
lookatme lizmat, I mean sometimes
not always
lookatme The result is not important 09:06
lizmat ran it 30 times now, no hang (on MacOS)
on what OS are you running >
?
lookatme my pc is fedora 25 09:07
Linux localhost.localdomain 4.10.13-200.fc25.x86_64 #1 SMP Thu Apr 27 20:39:25 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
It was hang on a while every 3 or 4 times 09:08
eater hangs for me the 21th time 09:09
moritz does need the reference to $*THREAD to hang? 09:10
lookatme No
I tried without $*THREAD
eater also works w/o $*THREAD ye 09:11
s/works/hangs
lookatme But it not hang on forever 09:12
lizmat lookatme eater: if you do "use 6.d.PREVIEW", does it also hang ?
lookatme no
perl6 -e ' my @a = lazy gather for 1 ... 1024 { take "$_ => ", $*THREAD; }; my @z = gather for @a { take start { say $_.Str } }; await Promise.allof(@z);'
eater it won't hang with strace attached :(
it does! 09:13
lookatme I run that code in terminal
sorry this code 09:14
perl6 -e ' my @a = lazy gather for 1 ... 1024 { take "$_ => "; }; for @a { start { $_.say } };'
This is without $*THREAD, also hang on
eater let me build the newest rakudo :)
jnthn rt.perl.org/Ticket/Display.html?id=129787
It's very likely that
lookatme my rakudo version is newest
This is Rakudo version 2017.05 built on MoarVM version 2017.05
lizmat lookatme: those fixes jnthn mentioned were post 2017.05 release 09:15
eater I was still on my own .04
jnthn lizmat: The fixes for that issue are also still in a branch, not merged 09:15
(Branch is refactor-handle-encoding)
lizmat ah, ok 09:16
apparently on macOS not such an issue
haven't been able to get it to hang at all
lookatme lizmat, use 6.d.PREVIEW hang on too
lizmat yeah, I now understand it's not in blead at all anyway :-) 09:17
eater with strace your example gives a SEGFAULT jnthn :') 09:18
it's the wrong tool anyway
oh no
it does just so
lookatme lizmat, oh so it was fixed ? but not in .05 release ? 09:21
lizmat lookatme: it is about to be fixed, and will most likely be in 2017.06
zengargoyle i've been trying it the past couple of minutes on 2017.04.3-293-ga7c23aa21 built on MoarVM version 2017.04-68-g5f233249 and nothing weird happens.
lizmat zengargoyle: what OS ?
zengargoyle debian sid Linux zim 4.9.0-3-amd64 #1 SMP Debian 4.9.25-1 (2017-05-02) x86_64 GNU/Linux 09:22
eater perl6 kills the child threads when the main thread finishes right? 09:23
moritz I think it just exits the process
and the OS kills the child threads
nadim_ I found the error I posted about, I had ($x, $y, ...) := ($a, $b, ...) so I used ":=" and it worked fine till I gave it a Pair. Now I must admit that I don't remember why it is ":=", it is probably from old code that I did not change. but it worked till it groaked on a Pair, anyone could explain why?
zengargoyle i'm assuming its suppost to hang and not get me back to the prompt rather instantly... 09:24
moritz nadim_: can you boil it down to a one- or two-liner here to demonstrate the problem?
eater replacing note w/ say in jnthn examples gives no errors at all
nadim_ m: my ($final, $rendered, $s, $continuation_glyph) = (True, False, 1 => "a", "") ; 09:25
camelia ( no output )
nadim_ m: my ($final, $rendered, $s, $continuation_glyph) := (True, False, 1 => "a", "") ;
camelia This type cannot unbox to a native string: P6opaque, Int
in block <unit> at <tmp> line 1
nadim_ m: my ($final, $rendered, $s, $continuation_glyph) := (True, False, 1 , "") ; 09:26
camelia ( no output )
nadim_ it happens when given a Pair
moritz weird
m: sub ($final, $rendered, $s, $continuation_glyph) {}(True, False, 1 => "a", "") 09:27
camelia ( no output )
moritz I suspect that's a bug
nadim_ So do I 09:28
lookatme :1("a") It will be convert to this ? 09:28
jnthn m: (True, False, 1 => "a", "").Capture 09:29
camelia This type cannot unbox to a native string: P6opaque, Int
in block <unit> at <tmp> line 1
jnthn There's a gold 09:29
*golf
lookatme m: my ($s) := (1 => "a"); say $s; 09:30
camelia Too few positionals passed; expected 1 argument but got 0
in block <unit> at <tmp> line 1
lizmat it's assuming the key of a Pair is a Str
lookatme m: my ($s) := \(1 => "a"); say $s; 09:31
camelia 1 => a
jnthn That form doesn't use .Capture
lookatme m: my ($final, $rendered, $s, $continuation_glyph) := (True, False, \(1 => "a"), "") ;
camelia ( no output )
jnthn lizmat: Yeah, I guessed so
lookatme m: my ($final, $rendered, $s, $continuation_glyph) := (True, False, \(1 => "a"), "") ; say $s;
camelia \(1 => "a")
lookatme m: my ($final, $rendered, $s, $continuation_glyph) := (True, False, "1" => "a", "") ; say $s; 09:32
camelia Too few positionals passed; expected 4 arguments but got 3
in block <unit> at <tmp> line 1
jnthn It should check and leave it as a Pair otherwise I guess
lizmat now, not making it blow up is simple, but whether it should be getting there, is another question
lizmat have fix, running spectest now 09:34
nadim_: could you check if github.com/rakudo/rakudo/commit/5b25836f21 does it for you? 09:39
lookatme see #perl6 tomorrow .. bye 09:40
nadim_ lizmat: sure, will come back later with the result 09:41
nadim_ lizmat: I get an error: Too few positionals passed; expected 4 arguments but got 3 10:00
lizmat hmmm... could you golf again? because the golfed code works for me 10:01
nadim_ ok
lizmat aahhhh
hold on...
you're binding
nadim_ that's what caused the error 10:02
nadim_ with assignment it works fine 10:02
lizmat argh, I missed that 10:03
please RT it, this is not as simple to fix as I thought :-(
nadim_ ok
jnthn You'd only get .Capture called for you if you were binding; that's why it golfed to .Capture 10:04
bacek aloha
bacek can anyone help with running rakudo under valgrind? It doesn't produce output at the exit. 10:08
nadim_ golfed to this: my ($y) := (Pair.new(1, 1)) ; 10:09
RT is only via mail or there is an interface somewhere?
parv is there not a way to avoid "Too many poistionals passed..." during binding when there are not enough "receivers" (e.g. my ($x ) := (1,2) )? 10:10
lizmat nadim_: Zoffix already made a ticket: rt.perl.org/Ticket/Display.html?id=131351 10:11
perhaps you could add your golf to that ?
jnthn parv: my ($x, *@)
parv thanks jnthn. 10:12
nadim_ lizmat: the link above gives me "No permission to display that ticket " 10:18
lizmat nadim_: no idea why, maybe [Coke] knows why 10:22
Geth doc: 60a1d89875 | (Zoffix Znet)++ | doc/Type/List.pod6
Document List.Capture stringifies .keys of Pairs

Rakudo impl: github.com/rakudo/rakudo/commit/5b25836f21 Tests: github.com/perl6/roast/commit/ae935c92eb
10:30
Zoffix bacek: are you using ./perl-valgrind-m in rakudo 10:45
bacek: or rather... a thing you get when you build rakudo from repo 10:46
oh, rakudobrew installs it too: perl6-valgrind-m
moritz bacek is back! 10:49
nine Now that's a name I haven't read in a long time! 10:50
Zoffix nadim_: that's likely because you don't have an account on RT 10:50
nadim_: but after a discussion, lizmat++'s original fix was put back.... I think all the problems are solved now 10:51
TEttinger sounds like whatever it was got fixed rather quickly 10:52
Zoffix m: my ($final, $rendered, $continuation_glyph, *%nameds) := (True, False, 1 => "a", ""); dd [ $final, $rendered, $continuation_glyph, *%nameds ] 10:53
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
nameds used at line 1
Zoffix m: my ($final, $rendered, $continuation_glyph, *%nameds) := (True, False, 1 => "a", ""); dd [ $final, $rendered, $continuation_glyph, %nameds ]
camelia [Bool::True, Bool::False, "", {"1" => "a"}]
Zoffix Ulti: you're unblocked 10:55
bacek Zoffix: yes. Just found full execution of moar so I can pass --tool=callgrind to it 11:02
moritz, not really :) 11:03
timotimo the perl6-valgrind-m script really want to learn how to select other tools and pass other options 11:03
juliaaa hello 11:15
araraloren hi o/ 11:16
juliaaa how are you? 11:17
tbrowder hi, araraloren 11:19
araraloren tbrowder, hi
eating dinner now :) 11:21
nadim_ still can't see the ticket, I rapported the bug with this title: [BUG] can't bind to a Pair 11:30
AlexDaniel nadim_: it's there 11:31
nadim_: rt.perl.org/Ticket/Display.html?id=131353
Zoffix nadim_: that's not a bug though. See my evals above. Pairs are passed as named args 11:43
nadim_ ok, how does it translate for the user? am i supposed to know what type it has before binding to it? Note that this becomes a theoretical question as I am not sure I need to bind them, assignment passes all the tests. 11:45
Zoffix nadim_: it's not about binding, but unpacking, which you'd doing because you put parens around ($x). This uses the return value of .Capture method to unpack into positionals and named args. Pairs inside lists become nameds, the rest positionals (my eval above). A lone pair unpacks into two named args: :key and :value (your ticket). Are you supposed to know what you're unpacking to unpack it correctly?... Well, 11:49
yes, an object can define whatever Capture it wants. You can use slurpries and captures in sigs to handle varying cases 11:50
Zoffix m: class Foo { method Capture { \(1, 2, :42a) }}; my ($x, $y, :$a) := Foo.new; dd [$x, $y, $a] 11:51
camelia [1, 2, 42]
Zoffix m: class Foo { method Capture { \(1, 2, :42a) }}; my ($x, |) := Foo.new; dd $x 11:51
camelia 1
Zoffix m: class Foo { method Capture { \(1, 2, :42a) }}; my (*@pos, *%named) := Foo.new; dd [ @pos, %named ] 11:53
camelia [[1, 2], {:a(42)}]
Zoffix etc
Zoffix m: class Foo { method Capture { \(1, 2, :42a) }}; my $obj := Foo.new; dd $obj 11:55
camelia Foo.new
Zoffix ^ no unpacking here
m: class Foo { method Capture { \(1, 2, :42a) }}; my ($a, $b) = (Foo.new, 42) ; dd [$a, $b] 11:56
camelia [Foo.new, 42]
Zoffix ^ or there (note assignment and not binding)
Zoffix concludes the "type Perl 6 on your phone" session :) 11:56
nadim_ since the code is generic, objects are passes without knowing what type they are., the error would be to .capture it. Question: the capture is on thereceiving side only, eg: return ($, $, $) does not involve a capture, right? 11:56
is there a way to get the returned elements without involving a capture so we can bind to each element, thus avoiding .capture transformation of the Pair? 11:57
AlexDaniel WHEREFORE? XD
araraloren Why not using `=` ? 12:01
moritz WILLITFLY?
araraloren m: my ($Y) = (Pair.new(1, 1)); say $Y;
camelia 1 => 1
nadim_ you missed half the conversation araraloren
araraloren :( 12:02
nadim_ don't worry, there will be more ;)
jnthn nadim_: The syntax my (signature) := foo; *always* unambiguously means "coerce whatever foo produces to a Capture and bind it to the signature on the left"
return ($a, $b, $c) just returns a List 12:04
So no, there's nothing Capture-y going on there
Also worth noting that while list assignment exists (like ($xy, $y) = blah()), there's no such thing as list binding 12:05
nadim_ thank you, I was 99.99.
sure of it but better ask than be sorry
jnthn Binding is a very low-level operation typically 12:06
nadim_ jnthn: I got that. the case is $x = whatever; ... ; do_stuff_with($s) ; ...; ($t, $, $) := give_me_back_my_origina_and_other_stuff() ;
jnthn The `my (signature) := ...` thing is a special syntactic case that does something differnet to what the bind operator usually does
nadim_ please explain the difference 12:07
so I can die in peace after this long discussion ;)
jnthn my $x := foo; # evaluate foo and make the variable $x point to the result
araraloren jnthn, Any document about this ? 12:08
jnthn my @x := foo; # same, but check that it does Positional
araraloren: No idea
araraloren: But surely it's in the docs somewhere
I know there's a bunch of docs on container semantics
araraloren Em
jnthn my (signature) := foo; # declares the variables in signature as lexicals, then uses the exact same logic that is used to bind arguments to a signature when calling a sub 12:09
nadim_ I'll just have to check what the purpose of my original ":=" was and what difference it makes. So far all the test pass with "="
jnthn Yeah, if you didn't want to do signature unpacking then there'd be no reason to use := there 12:10
araraloren: docs.perl6.org/language/containers describes binding 12:11
araraloren I already read it, there is no relate to `() := ...` 12:13
jnthn Yeah, that'd probably not be the right place for it
docs.perl6.org/type/Signature only mentions it in passing and doesn't have a good example
In fact the case it shows doesn't use binding so it degenerates to a list
araraloren oh 12:14
jnthn So maybe we are missing something for that
Gotta take care of some errands; bbiab
araraloren bye 12:15
It's just like passing arguments. The docs said that: Passing arguments to a signature binds the arguments, contained in a Capture, to the signature. 12:17
Geth doc: c798ff64c5 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Mu.pod6
Document Mu.Capture
12:20
Geth ecosystem: 13b309cac5 | (Martin Barth)++ (committed using GitHub Web editor) | META.list
Created an github organisation for Bailador

changes the URL to match the new repository for Bailador
12:38
nadim_ araraloren: and that sentence needs an example, a drawing, and some headache pills 13:32
tbrowder privmsg jnthn : check edument e-mail 13:40
Zoffix Is anyone in touch with the travis stuff? I tweeted slightly wrong travis setup and it made it into the Perl 6 travis docs update. I also think the default test script is wrong, but I don't know travis. I made suggestions here, but it's a closed PR and I don't know if the suggestions are sound: github.com/travis-ci/docs-travis-c...-303750710 15:06
Zoffix wishes for Royalty on White Horse to sweep this problem up 15:07
pmurias hmm, should 'make js-all' do a 'npm install' for the js deps? 15:10
Geth ecosystem: 86a5a47ed2 | loren++ (committed using GitHub Web editor) | META.list
Update Terminal::Table version
15:28
tbrowder .tell 15:32
yoleaux Relay a telegram to someone
Zoffix Is there a way to make `zef` display detailed test output? Like `prove -v` does 15:34
tbrowder .tell moritz apress is having probs (on linux and win, chrome), i can't but yr book from U.S.
yoleaux tbrowder: I'll pass your message to moritz.
Zoffix or more specifically: verbose test output with Zef::Service::TAP plugin 15:37
so case when TAP::Harness *is* installed
Zoffix .ask ugexe is there a way to map Zef::Service::TAP plugin print full output. We're trying to update the travis test script to use `zef install .` and give detailed test output. Any idea? github.com/travis-ci/docs-travis-c...-303762219 15:41
yoleaux Zoffix: I'll pass your message to ugexe.
ugexe probably, not sure off the top of my head how though. there is a Formatter::Volume that could be set to verbose but not sure how to pass it in 15:46
yoleaux 15:41Z <Zoffix> ugexe: is there a way to map Zef::Service::TAP plugin print full output. We're trying to update the travis test script to use `zef install .` and give detailed test output. Any idea? github.com/travis-ci/docs-travis-c...-303762219
Zoffix I remember struggling with it before... I see Harness takes a Reporter class, so feels like one should be able to set volume on the formatter and pass it, BUT, the attribute is type-constrainted to :U only :/ 15:52
maybe it's a bug... 15:53
Zoffix Well, I opened this Issue. Hopefully, leont will have time to spot it and answer: github.com/perl6/tap-harness6/issues/14 15:57
Zoffix And for anyone else wishing to take a crack at it. The code is here: github.com/rakudo/rakudo/blob/nom/...P.pm6#L302 15:57
You can run some tests with `perl6 -e 'use TAP; TAP::Harness.new.run("some-test-file.t").result'` and the goal is to make output `Verbose`, like `prove -v` 15:58
I mean the code is here: github.com/perl6/tap-harness6/blob...AP.pm#L302 15:59
ugexe ah yeah prove6 doesn't seem to have a -v either 16:01
Zoffix "No extracting backend available" :( 16:07
Zoffix time to update stuff, I guess 16:07
this box is still on 2017.04.2-6-g894ba82
Zoffix `zef update` solved the issue... 16:08
ugexe wonder if its due to meta.info -> meta6.json renaming + zef cache somehow 16:11
(zef update also rewrites its cache index file)
ugexe hmmm no i don't think thats it 16:12
maybe just a network hiccup 16:14
Geth whateverable: 8278ed7be5 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Greppable.p6
Output .md files instead of plain text

This will create a much nicer output with links to the sources.
16:39
jmerelo Need help again 16:47
this is probably a stupid question, but can't find the way to eliminate Nils from an array 16:48
p6: my @þ = (1,Nil,2,Nil); @þ.grep( * )
camelia ( no output )
jmerelo p6: my @þ = (1,Nil,2,Nil); @þ.grep( * ); 16:49
camelia ( no output )
jmerelo (Returns (1 (Any) 2 (Any)) in my system)
@þ.grep( * != Nil ) is correct, but returns several warnings 16:50
Use of Nil in numeric context 16:51
in whatevercode at <unknown file> line 1
@þ.grep( * ne Nil )
@þ.grep( * ne Nil )
Use of Nil in string context
in whatevercode at <unknown file> line 1
Any idea?
ugexe m: my @arr = (1,Nil,2,Nil); say @arr.grep(*.defined) 16:52
camelia (1 2)
jmerelo Thanks!
ugexe m: my @arr = (1,Nil,2,Nil); say @arr.grep(* !~~ Nil)
camelia (1 (Any) 2 (Any))
ugexe eh 16:53
moritz tbrowder: I don't know if the book is for sale already 16:54
yoleaux 15:34Z <tbrowder> moritz: apress is having probs (on linux and win, chrome), i can't but yr book from U.S.
moritz so far it's just a landing page
tinita m: my $data = undef; my @arr = (\$data); say @arr 16:55
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of undef as a value; in Perl 6 please use something more specific:
an undefined type object such as Any or Int,
:!defined as a matcher,
Any:U as a type constraint,
Nil as the ab…
moritz tbrowder: if you're on the book mailing list, you'll get an email once it's available for presale
tinita m: my $data = Nil; my @arr = (\$data); say @arr
camelia Potential difficulties:
To pass an array, hash or sub to a function in Perl 6, just pass it as is.
For other uses of Perl 5's ref operator consider binding with ::= instead.
Parenthesize as \(...) if you intended a capture of a single v…
tinita m: my $data = Nil; my @arr = (\($data)); say @arr 16:55
camelia [\(Any)]
tinita m: my $data = Nil; my @arr = (item($data)); say @arr 16:56
camelia [(Any)]
Zoffix jmerelo: by default, those Nils would turn to Any in the array, so you'd need to grep for them 16:57
Zoffix m: my @arr = (1,Nil,2,Nil); say @arr.grep: * !=== Any 16:57
camelia (1 2)
tinita hi, i would like to save a reference to $data in an array, but $data is undef at the beginning. any hint? 16:58
Zoffix tinita: Perl 6 is far removed from Perl 5. The \ is not a reference maker.
tinita Zoffix: yeah, just found out =)
timotimo m: my @arr = (1, Nil, 2, Nil); say @arr.perl
camelia [1, Any, 2, Any]
timotimo jmerelo: you can't grep out the nils because there are no nils in there
tinita Zoffix: the docs say item(), but it seems it doesn't work like i expect
timotimo array assignment is assignment, assigning Nil to a variable resets it to its default value
m: my @a is default "hello"; @a = (1, Nil, 2, Nil); say @a.perl 16:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3my @a is default7⏏5 "hello"; @a = (1, Nil, 2, Nil); say @a.
expecting any of:
constraint
infix
infix stopper
p…
Zoffix m: my $data; my @arr; @arr[0] := $data; dd @arra; $data = 42; dd @arr
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '@arra' is not declared. Did you mean '@arr'?
at <tmp>:1
------> 3my $data; my @arr; @arr[0] := $data; dd 7⏏5@arra; $data = 42; dd @arr
Zoffix m: my $data; my @arr; @arr[0] := $data; dd @arr; $data = 42; dd @arr
camelia Array @arr = [Any]
Array @arr = [42]
timotimo how do we do that again ...
Zoffix tinita: ^ like that. Arrays make containers, so you need to bind the $data's container to the array's item's container. But this feels an odd thing to what. What are you actually trying to accomplish? 17:00
tinita m: my $data = Nil; my @arr = (item($data)); $data = 23; dd @arr
camelia Array @arr = [Any]
Zoffix tinita: which docs are you reading?
tinita Zoffix: i'm building a data structure from parser events
tinita Zoffix: docs.perl6.org/language/5to6-nutsh...e_creation 17:00
Zoffix tinita: OK, but why do you need (a) an Array (b) references to original
tinita: ahhh.. Yeah, that entire section is terrible and needs to be removed 17:01
tinita Zoffix: i guess there is a different way to do this, but this is like I do it i perl5:
Zoffix: so i have an array of references
Zoffix Ticket for it: github.com/perl6/doc/issues/1081
tinita Zoffix: while getting events and diving into the data structure, i keep the references of all levels
Zoffix: so i can add data to hashes and arrays later 17:02
Zoffix tinita: I think you'll have a lot of trouble trying to do this by rebinding array item containers. How about proper classes? What's @arr[0]? It can be $.something-more-descriptive 17:03
tinita Zoffix: github.com/perlpunk/YAML-PP-p5/blo...der.pm#L78 ff.
Zoffix takes a look
tinita Zoffix: it's called @refs there
jmerelo @zoffix thanks! 17:04
tinita Zoffix: and it contains references to $self->data
Zoffix timotimo: you need parens around default value 17:05
tinita so i simply need a pointer/reference/whatever to a data structure
Zoffix m: my @a is default("hello"); @a = (1, Nil, 2, Nil); say @a.perl 17:06
camelia [1, "hello", 2, "hello"]
Zoffix m: class DataStructure { has $.data is rw = "foos"; }; my $d = DataStructure.new; sub do-things ($d) { $d.data = "meows" }( $d ); dd $d.data 17:07
camelia Str $!data = "meows"
Zoffix tinita: ^ I was thinking more along those lines.
tinita reads
Zoffix m: my $x = 'foos' 17:08
camelia ( no output )
Zoffix oops
tinita hm, i think creating objects will make this thing much bigger and slower...
Zoffix m: my $x = 'foos'; sub ($y is rw) { $y = "meows" }( $x ); dd $x 17:09
camelia Str $x = "meows"
tinita Zoffix: the alterative is to stack up data and integrate them into lower levels when I get the closing events
Zoffix tinita: you already have objects! :) Everything's an object. Except instead of hacking around with container rebinding, you'll have something neater.
tinita: also see my last eval above. You can pass `is rw` to subs and then can write back to original results.
original container I mean 17:10
tinita Zoffix: i'm just disappointed that this neat and short p5 solution can't work in p6 =)
Zoffix pffft
It can. I just showed you how
tinita i'm very new to perl 6, i have to say
so i have to understand first
Zoffix tinita: my advice: forget Perl 5. I found Perl 6 very frustrating until I stopped trying to map Perl 5 concepts to Perl 6. 17:11
Don't know what's neat about this: github.com/perlpunk/YAML-PP-p5/blo...pm#L74-L97 17:13
The scalar reference to scalar reference to undef is particularly shiny heh
Zoffix If it's parser, perhaps Grammar is what you want? 17:14
tinita it's a loader
the parser port comes later (hopefully) 17:15
Zoffix Ah
m: my @a = 1, 2, 3, <a b c>, <d e g>; dd @a
camelia Array @a = [1, 2, 3, ("a", "b", "c"), ("d", "e", "g")]
pilne hrm when i apply elems to @array[2;2] i get 2, even though there are four elements to a 2x2 matrix, or are "multidimensional arrays" seen more as "arrays of arrays" than as a matrix? 17:16
Zoffix tinita: ^ note how Perl 6 doesn't have Perl 5's flattening. So there are no "references" any more as far as talking about the language is concerned
tinita Zoffix: yeah, maybe I can get it working when I find an alternative to undef. it's only undef initially, until i make an array or hash of it 17:17
pilne couldn't it just be (Any) then? 17:18
Zoffix Perl 6 has infinite number of undefs, so I think you won't have any issues picking one :)
tinita m: my $data = Any; my @arr = ($data); $data = 23; dd @arr 17:19
camelia Array @arr = [Any]
pilne m: my @array[2;2]
camelia ( no output )
pilne a bit different than repl >.<
Zoffix pilne: not sure. The source just looks at reified: github.com/rakudo/rakudo/blob/17c0...#L533-L535 17:20
.ask lizmat is .elems on shadped arrays supposed to just give the number of "top" dimensions? Like, (my @array[2;42]).elems.say gives 2. Code in question: github.com/rakudo/rakudo/blob/17c0...#L533-L535 17:21
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix pilne: ^ lizmat is our resident expert on this stuff. Maybe she'll know
\o 17:22
pilne when i repl it it shoes [[(Any) (any)] [(Any) (Any)]] 17:22
tu zpffox
jeebus.. why does my hexchat have such input lag >.< i'm dying here
timotimo are you accidentally using it over X11 forwarding? 17:23
did you start a rakudo in the background that eats up all your ram and swap?
pilne afaik no, ubuntu mate 16.04, higher-end compositor, rakudo repl in the background but system is basically idling 17:24
i do have my wow-launcher idling using wine.. but it does this all the time, it just hit me hard there for a minute lol. 17:25
timotimo weird.
pilne and this is a gaming laptop, older, but still lets me raid when i feel like it. 17:26
yeah, it's due for a refreshening sometime before the next lts... i'm itching for it.
timotimo hardware refresh? 17:27
pilne lol, os install refresh, i've got more compilers and libs i'll probably never use from dabbling around in things... and i still don't fully trust something like apt. 17:28
timotimo *shrug*
pilne does perl6 represent shaped arrays as matricies internally, or are they more "arrays of arrays(of arrays... etc)"? 17:30
timotimo it's one contiguous memory block
nadim_ pilne: the good thing is that you don't have to trust apt, just install and compile everything by hand. 17:31
pilne looks at the steam games file and shudders deeply 17:34
lizmat . 18:00
yoleaux 17:21Z <Zoffix> lizmat: is .elems on shadped arrays supposed to just give the number of "top" dimensions? Like, (my @array[2;42]).elems.say gives 2. Code in question: github.com/rakudo/rakudo/blob/17c0...#L533-L535
lizmat m: my @a{2,3,4]; dd @a.elems
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in shape definition; couldn't find final '}'
at <tmp>:1
------> 3my @a{2,3,47⏏5]; dd @a.elems
expecting any of:
statement end
statement modif…
lizmat m: my @a{2,3,4]; dd @a.elems
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in shape definition; couldn't find final '}'
at <tmp>:1
------> 3my @a{2,3,47⏏5]; dd @a.elems
expecting any of:
statement end
statement modif…
lizmat m: my @a{2;3;4]; dd @a.elems 18:01
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in shape definition; couldn't find final '}'
at <tmp>:1
------> 3my @a{2;3;47⏏5]; dd @a.elems
expecting any of:
statement end
statement modif…
lizmat m: my @a[2;3;4]; dd @a.elems # duh 18:01
camelia 2
lizmat .tell Zoffix I seem to recall that's what jnthn decided on 18:02
yoleaux lizmat: I'll pass your message to Zoffix.
perlpilot huh ... I just realized that I responded on #perl6-dev because that's the "normal" #perl6 channel for me 18:09
m: my @a[2;3;4]; dd @a.shape; # for those that may have missed it. 18:10
camelia (2, 3, 4)
Geth doc: 8e673dbe4c | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Array.pod6
Document Array.elems

Include info on .elems of shaped arrays, per:
  irclog.perlgeek.de/perl6/2017-05-24#i_14631924
  irclog.perlgeek.de/perl6/2017-05-24#i_14631943
18:13
[Coke] github.com/perl6/doc/issues/1325 - LHF for a doc commit. 18:15
Geth doc: 4ee4ff26a0 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/unicode_entry.pod6
Remove trailing ws; Fixes #1325
18:18
doc: 64e6aa44cf | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Array.pod6
Remove more trailing ws

  (GitHub web editor)--
18:19
[Coke] Zoffix=+ 18:30
Zoffix++, even.
dylanwh Zoffix+=1 18:33
[Coke] is bummed that the TPC is YA being held during the local school year. 18:34
(makes it very hard for us old farts to go.)
Geth DBIish: 13d2759538 | (Zoffix Znet)++ (committed using GitHub Web editor) | .travis.yml
Use more recent "older Star" version

zef don't work on 2016.01 no more and travis build fails
18:35
Geth doc: 1bc21a4e16 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/IO/Socket.pod6
Document Socket.recv $elems maxes out at 65535

  irclog.perlgeek.de/perl6-dev/2017-...i_14632217
19:20
azawawi hi 19:21
yoleaux 23 May 2017 21:34Z <thundergnat> azawawi: Thanks for the Terminal::Libcaca bindings. It's been fun to play with. Some code in the wild: rosettacode.org/wiki/Draw_a_rotating_cube#Perl_6
azawawi .tell thundergnat You're welcome :) 19:23
yoleaux azawawi: I'll pass your message to thundergnat.
azawawi starts working on Chart::PLPlot :) 19:24
Is the Chart:: namespace a good place for plotting libraries?
lizmat seems there is a precedent in the Perl 5 world 19:28
metacpan.org/pod/Chart
azawawi starting blocks for PLPlot support in Perl 6 :) 19:29
github.com/azawawi/scripts/blob/ma.../plplot.p6
Chart::PLPlot or PLPlot 19:30
azawawi hmmm metacpan.org/pod/PDL::Graphics::PLplot 19:38
It is seems the Graphics:: namespace is better
Geth doc: 5da4951268 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Rational.pod6
Document Rational.Int
19:40
azawawi looks at the Silent Perl 6 guild halls in the distance and throws a needle 19:42
lizmat azawawi: naming modules in Perl 6 is less important than in Perl 5, because we cannot have name clashes 19:43
either that, or everybody is watching the soccer final
azawawi between?
:)
azawawi aha metacpan.org/pod/Graphics::PLplot 19:47
azawawi starts working on Graphics::PLplot
mst azawawi: there's quite a few things in the Chart:: namespace in perl5 and if you're specifically making a thing that's doing plotting then I'd probably call it Chart::PLPlot
azawawi Looking at the examples, i guess its graphics plplot.sourceforge.net/examples.php 19:48
and not only charts
mst: thx :)
mst I think it mostly boils down to "what do you expect your users to be looking for this to use it for" 19:49
and I *suspect* the answer is tat that means Chart:: is better
but that's a free opinion, worth exactly what you paid ;)
pmurias Chart:: seems a lot of more specific 19:50
azawawi: aren't charts and plots synonyms? 19:55
TreyHarris I asked this the other day when no one was around, and got no answer, so let me try again: is there a way to incrementally build docs for local viewing? It's painful to make a small change and have to wait minutes for even 'perl6 htmlify.p6 --no-highlight' to complete, but I don't want to push a commit before viewing it in case I made a POD mistake
azawawi pmurias: yup 19:56
azawawi dev VM has crashed... 19:56
TreyHarris pmurias: not exactly, but close: english.stackexchange.com/question...and-a-plot 19:57
lizmat TreyHarris: fwiw, I do *not* know the answer to your question 19:59
[Coke] TreyHarris: doc building is known to be slow and the build is kind of complicated. if you break something temporarily, no one is going to yell at you. 20:04
yoleaux 19:36Z <Zoffix> [Coke]: any idea why a whole bunch of code in Rational.pod6 have :skip-test on them? github.com/perl6/doc/blob/master/d...l.pod6#L26
TreyHarris lizmat: thanks for the validation that I'm not alone :-)
I can't build with highlight at all, it spits out a node.js error about a worker and hangs forever, but I'm not worried about that so much. 20:05
[Coke] TreyHarris: you on a mac? 20:08
TreyHarris [Coke]: Ubuntu xenial
I followed the instructions in CONTRIBUTING 20:09
TreyHarris I built both versions of the SASS compiler 20:09
but with --no-highlight, it works fine, just takes a long time as you noted
[Coke] Please open a ticket on perl6/doc showing the command you ran, uname (or whatever), and the error you got.
well, it'll be even longer with highlight. :) 20:10
pilne ahhhhh .shape is good 20:14
Zoffix TreyHarris: you can do perl6 --doc=HTML thefile.pod6 to check pod syntax. There are sparse and web-dev make targets for building every-N file, when you want to check site rendering. Personally, I mostly use github editor for making changes and fix any errors when travis emails me build failures 20:20
leont Zoffix: I think I got that verbose logic where I want it to be now. Haven't tested it on anything large yet though 20:39
skids pilne: .of is pretty great, too.
leont Content with how little code it took to implement the feature (and fix a small bug along the way) 20:40
ugexe leont++
Zoffix awesome. leont++
skids m: uint16.min.say; uint16.max.say; # Funny symptom of known NYI. 20:43
camelia Inf
-Inf
Zoffix skids: what's the NYI? 20:46
m: say Str.max
camelia -Inf
Zoffix That's the behaviour for type objects
m: say uint16.Range.minmax 20:47
camelia (0 65535)
lizmat m: say uint16.Range.max # skids:
camelia 65535
Zoffix pergaps you were thinking of that ^
skids Zoffix: real unsigned natives is the NYI. 20:48
timotimo yeah, .min and .max on a type object will just act like .min and .max on an empty list
Zoffix skids: ah, yeah, that's not the side effect of that. 20:49
azawawi a.uguu.se/jlMbghkyp0lz.png # Initial 2D Plot via Graphics::PLplot (github.com/azawawi/perl6-graphics-...plplot.p6) :) 20:50
Zoffix and .Range is all hardcoded based on type: github.com/rakudo/rakudo/blob/nom/...nt.pm#L165 20:50
skids Not sure what the logic of equating any type object with an empty list is, but OK. 20:51
Zoffix so that (42, Int).max gives right results 20:52
Zoffix m: say (42, Int).max 20:52
camelia 42 20:53
Zoffix m: say (42, Int, NaN).max
camelia NaN
Zoffix heh
Zoffix &
timotimo neat, azawawi 20:53
lizmat azawawi: cool 20:54
fwiw, I would have probably written:Graphics::PLplot.new(...) -> $o { 20:55
Geth ecosystem: caee0b6909 | (Ahmad M. Zawawi)++ (committed using GitHub Web editor) | META.list
Add Graphics::PLplot
lizmat azawawi: given my $o = ... feels like a weird mix of a P5ism and P6 20:56
if Graphics::PLplot.new(...) -> $o { # azawawi, duh :-)
azawawi :) 20:57
im learning
im learning :)
azawawi gasps at the perl6 endless void... So much to learn. so little time :) 20:58
leont ugexe: github.com/perl6/tap-harness6/comm...has-errors ;-) 20:59
azawawi lizmat: Attempt #2 => github.com/azawawi/perl6-graphics-.../plplot.p6 :) 21:06
timotimo honestly, i'd still use $_ instead of $o so you can just .foo on the object 21:07
pmurias it would be cool if someone check if 'make js-install' for nqp works on their box 21:08
nadim_ hi, is there some mechanism to set a set of entries in a hash is they are not defined? something like %h{v1, v2, v3} //= (v1_def, v2_def, v3_def) 21:20
timotimo you can Z//= i bet
jnthn m: my %h = a => 1; %h<a b c> Z//= 4,5,6; say %h 21:21
camelia ===SORRY!===
Cannot find method 'ann' on object of type NQPMu
jnthn eww
m: my %h = a => 1; %h<a b c> Z[//=] 4,5,6; say %h
camelia ===SORRY!===
Cannot find method 'ann' on object of type NQPMu
timotimo wow, whoops 21:21
jnthn m: my %h = a => 1; %h<a b c> >>//=<< 4,5,6; say %h
camelia Non ast passed to WANTED: NQPMu
Non ast passed to UNWANTED: NQPMu
Weird node in analyze: NQPMu
WARNINGS for <tmp>:
Useless use of constant integer 5 in sink context (lines 1, 1)
Useless use of constant integer 6 in sink context (lines 1, 1)
=…
timotimo my %h = a => 1; %h<a b c> >>//=<< (4,5,6); 21:23
m: my %h = a => 1; %h<a b c> >>//=<< (4,5,6);
camelia Non ast passed to WANTED: NQPMu
Non ast passed to UNWANTED: NQPMu
===SORRY!===
Cannot find method 'ann' on object of type NQPMu
timotimo well, at least it doesn't think it's useless any more
nadim_ hehe
jnthn m: my %h = a => 1; %h<a b c> Z[//]= 4,5,6; say %h 21:24
camelia ===SORRY!===
Cannot find method 'ann' on object of type NQPMu
jnthn aww
m: my %h = a => 1; %h<a b c> [Z//]= 4,5,6; say %h
camelia {a => 1, b => 5, c => 6}
jnthn ooh
nadim_ this is fascinating to look at!
jnthn That variant works :)
jnthn That probably tells us what codepath the bug is on too 21:24
timotimo huh, i woudln't have expected [Z//]= to work 21:25
jnthn It's a bit indirect 21:28
But if you expand it out, it's %h<a b c> = (%h<a b c> Z// 4, 5, 6)
But only doing the hash lookups to get the containers once 21:29
timotimo ah, ok
yeah, that isn't half bad
pilne pmurias=> i'm a newbie here but i'll give it a go if there's some instructions i could follow. 21:31
jnthn First-class l-values are both a great and a horrible feature. :) 21:32
timotimo oh yes
especially our WHENCE stuff :D
jnthn That too
pilne so we has footshotguns, but you have to look for them? :p
jnthn pilne: The horror is primarily for those implementing Perl 6 rather than those using it 21:33
timotimo aye, the users are usually just happy and probably pleasantly surprised by 'em
pilne ahhhhh, the practitioners of c'thulian horrors that make it possible to code in such an expressive language, and have performance (: y'all rock by the way. 21:34
i say this as having done a few "write a scheme" tutorials, and if something as "simple" as that takes a decent effort, something like perl6 is far beyond my current abilities. 21:36
robertle what are your schemes written in? 21:38
pilne i've done a blargh-y one in python, a bit more capable one in ruby because it was more fun to work with, and i've skimmed one on haskell that was sadly out of date in a few conflicting ways. and i'm itching to give it a whirl in perl6 (even though there are the inline grammars) because it's fun. 21:40
robertle I have done one in C, but it doesn't do call/cc 21:42
timotimo call/cc is so cool 21:42
robertle lots of other stuff missing as well, but that could be fixed
cool, but also hurts my head 21:43
pilne yeah, like even implementing a y-combinator in a language tends to bend my brain, but it's a fun bending (:
robertle did you see that chez was open-sourced by cisco a while ago? 21:44
the source is hugely entertaining
pilne i saw it was open sourced... i haven't read the source yet, i can only imagine... i'm pretty colorful sometimes in my shell scripts lol
because many of them are written in postemptive anger, instead of preemptive calm. 21:45
robertle ok, get your point. chez isn't entertaining in *that* sense, but the guy certainly did get quite far with a surprising little amount of work 21:46
pilne which for better or worse, was the extent of my perl anything up to 5, so i knew the basics digging into 6, but not much more.
robertle that's not right. lots of work spread over not so many lines
pilne i could micro-optimize code to death given the chance... but usually my pragmatic sense takes over before carpal hits... lol 21:47
idk, i feel like perl6 is the language i wish I could have been introduced to when i first started programming.
AlexDaniel wouldn't mind rakudo being optimized to death 21:48
pilne it grows logically with your abilities and needs.
i'm still trying to wrap my brain deep enough into the language to do something original, however small, using rosettacode stuff for ideas and just to get a feel for how the language works. 21:49
AlexDaniel there's also exercism which is kinda fun 21:50
( exercism.io/languages/perl6/exercises )
pilne neat, i'll give it a looksee. 21:52
AlexDaniel I even submitted a couple of solutions myself :) 21:58
Geth Swapped META.info → META6.json in 1 dists in github.com/perl6/ecosystem/commit/d74f1620cb 22:01