»ö« 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.
dataangel What does : mean in front of arguments to a function call? It's hard to Google :p 00:21
skids A named parameter (or argument), as opposed to positional. 00:25
dataangel Why have both that and the => syntax? 00:26
skids The => is mostly for people used to perl5. 00:27
b2gills m: say 5 => 'five'; say :five(5) 00:29
camelia rakudo-moar 668dc5: OUTPUT«5 => five␤Unexpected named parameter 'five' passed␤ in block <unit> at <tmp> line 1␤␤»
b2gills m: say 5 => 'five'; say (:five(5))
camelia rakudo-moar 668dc5: OUTPUT«5 => five␤five => 5␤»
skids m: say five => 5 00:30
camelia rakudo-moar 668dc5: OUTPUT«Unexpected named parameter 'five' passed␤ in block <unit> at <tmp> line 1␤␤»
skids named parameters actually have to use valid names :-)
dataangel Interesting
skids m: say Pair.new("five",5) # there's a syntactic distinction as well. 00:31
camelia rakudo-moar 668dc5: OUTPUT«five => 5␤»
dataangel I have a role with a member, that I would like to mark :D for safety. I also want to use a different constructor than the default, that takes a hash, and stores a value from that hash into said member. Can I do that? I'm getting an error that my member must have an initializer if I use :D 00:32
skids Hrm. I forget if you can bypass :D with a BUILD or not. ISTR there's a small bit of ickiness waiting to be fixed in that area. 00:34
Why not provide a default? 00:35
dataangel There is some work in computing what the default value would be, so in that case I would probably drop the :D so that I could wait to see if the hash contained the value first and only if it didn't bothering to compute the default value, so I'd just lose :D again 00:38
skids Well, you could provide a bogus default until you get into the initializer, then add a fail if the hash doesn't have one, or compute a real one then. 00:39
BenGoldberg m: (five => 5).say
camelia rakudo-moar 668dc5: OUTPUT«five => 5␤»
BenGoldberg m: (:five(5)).say 00:40
camelia rakudo-moar 668dc5: OUTPUT«five => 5␤»
skids m: role A { has $.h; has Int:D $.f = self.g * 2; method g { self.h.say; self.f.say; self.h; } }; A.new(:h(42)).f.say # this is already lazy up to the constructor. 00:48
camelia rakudo-moar 668dc5: OUTPUT«42␤(Int:D)␤84␤»
skids dataangel: ^^
dataangel Thanks
I have a member declaration "has Str:D @!linker-options;" which doesn't seem to require an initializer, guessing it just initializes to an empty array implicitly... But later in bless I do ":linker-options(%config<GPP_LINK_OPTS>)" but that key doesn't exist, so I'd expect to get an error, complaining them I'm initializing the array with Nil or something, but no error. What gives? I understand the :D would apply to the strings in the 00:51
array, but I still wouldn't expect to be able to set an array to Nil
johnjohn101 hi perl 6 00:52
skids o/
johnjohn101 how's perl 6 progressing? 00:53
vcv m: my $key = 'five'; say($key => '5'); say :$key(5); 00:57
camelia rakudo-moar 668dc5: OUTPUT«five => 5␤No such method 'CALL-ME' for invocant of type 'Pair'␤ in block <unit> at <tmp> line 1␤␤»
Eduardo_ I'm having some trouble starting on Perl6
dataangel vcv: sorry the key I'm referring to not existing is GPP_LINK_OPTS 00:57
Eduardo_ im trying to have a hashSet in a class 00:58
vcv i was just testing something for my own knowledge :)
dataangel Also actually I guess it's not sitting in array to Nil, but to (Any), according to WHAT
Eduardo_ then I want to add items to it
inside the constructor
dataangel vcv: oops wasn't sure ;)
Eduardo_ im geting Cannot look up attributes in a type object
i dont understand this message
vcv m: my $key = 'five'; say($key => '5'); say (:$key(5)); 00:59
camelia rakudo-moar 668dc5: OUTPUT«five => 5␤No such method 'CALL-ME' for invocant of type 'Pair'␤ in block <unit> at <tmp> line 1␤␤»
skids dataangel: actually it's trying to set the whole array to Any.
skids m: my %config; sub a (Str:D :@lo) { @lo.perl.say }; say a(:lo[%config<nokeyhere>]) 00:59
camelia rakudo-moar 668dc5: OUTPUT«Type check failed in binding to @lo; expected Positional[Str] but got Array ($[Any])␤ in sub a at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
skids It should fail like that, when using the :foo[] syntax.
dataangel skids: what is the difference between using the brackets and the parentheses? 01:00
skids hrm actually it might be supposed to work that way. 01:01
(as well)
dataangel skids: actually still appears to succeed, may be behavior specific to bless?
skids m: say (:f(1,2)); say (:f[1,2]) 01:02
camelia rakudo-moar 668dc5: OUTPUT«f => (1 2)␤f => [1 2]␤»
skids Array versus list but a list should probably be a valid itializer.
Might be something squirelly in the binder.
dataangel How do I initialize it directly to something without it being a list or an array while using the leading : syntax? 01:03
SmokeMachine____ hi! is there any way to use/require/need a module only once?
dataangel I am more and more getting the impression that I am the only one really trying to use the typing in Perl 6 ;p
ugexe you obviously havent been around long then 01:04
skids No just you're maybe going down a more strict path. Though types on positionals were downright broken for a long time so many may be averse to tryin them.
ugexe SmokeMachine____: what does that even mean?
SmokeMachine____ I am having problems with circular dependency... 01:05
ugexe dont create circular depenencies
SmokeMachine____ that's not easy... 01:06
skids Eduardo_: "Cannot look up attributes in a type object" means you're working with an unitialized variable.
ugexe its easier than resolving circular dependencies
skids Eduardo_: not sure what a hashSet is exactly 01:07
ugexe maybe you misunderstand what you need to do and you really just mean to stub the namespace, but thats not what you asked so i dunno 01:08
dataangel Eduardo_: constructors work a little differently in Perl 6, when you're inside to knew the object hasn't been built yet so you can't access the attributes... I'm not entirely one hundred percent sure what you are supposed to do instead in your situation because I'm still a newbie too ;)
I ran into that ten minutes ago, that's what I'm trying to use bless 01:09
SmokeMachine____ ugexe: I tryed to do that... but: 01:10
===SORRY!===
Stub code executed
skids dataangel: there's BUILD, as well, but that gets tacky with roles.
ugexe SmokeMachine____: by stub i really mean `class MyClass { }`
dataangel skids: I saw that but I wasn't sure if I was going to be able to access attributes at that point, I read something indicating that you can't, so I'm left not really understanding the point
SmokeMachine____ hum! 01:11
I did class MyClass{...}
skids BUILD has direct attrbute access (e.g. self!attribute)
SmokeMachine____ thanks! 01:11
dataangel "Since BUILD is run on an object which is not yet fully constructed, attributes are only accessible if they are declared as named parameters" <-- from 2009, out of date? 01:12
ugexe why do you think thats out of date?
dataangel ugexe: because it says you don't have attribute access, and skids says you do 01:13
ugexe ... did you read what you pasted? 01:14
Xliff_zzzz m: sub b($o, Int :$foo = 1, Str :$bar = 'baz', Bool :$baz = True) { say $baz }; b(Nil, :!baz);
camelia rakudo-moar 668dc5: OUTPUT«False␤»
skids m: class C { has $.a; submethod BUILD () { $!a = 42 }}; C.new.perl.say
camelia rakudo-moar 668dc5: OUTPUT«C.new(a => 42)␤»
dataangel ugexe: yes actually, and if you look at the example from skids (self!attribute) there is no indication that there has to be a named attribute to the function 01:15
skids (actually self!attribute seems to not work... but $!attribute does... wonder why)
I guess because there is no defined self yet. 01:16
dataangel Separately I'm not sure what to make of the named attribute passing that post suggests (perlgeek.de/blog-en/perl-6/object-...tion.html) because it seems to indicate that you can only use attributes if you're going to directly map your constructor arguments into your members, and if that's what you're doing why would you be defining a custom constructor in the first place, seeing as that's what the default 01:18
constructor does for you?
s/only use attributes/only use named attributes
skids dataangel: I don't remember running into that restriction but it's possible it might have existed at some point. 01:25
Xliff_zzzz m: sub d ( 01:34
$obj,
Int :$i = 2,
Int :$j = 0,
Bool :$c = True,
camelia rakudo-moar 668dc5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3sub d (7⏏5<EOL>␤»
Xliff_zzzz Int :$x = 50,
Bool :$g = False,
Bool :$m = True
) { say "$i/$j/$c/$x/$g/$m"; } d(:!m);
m: sub d ($obj, Int :$i = 2, Int :$j = 0, Bool :$c = True, Int :$x = 50, Bool :$g = False, Bool :$m = True, Bool :$m = True) { say "$i/$j/$c/$x/$g/$m"; } d(:!m); 01:35
camelia rakudo-moar 668dc5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Redeclaration of symbol $m␤at <tmp>:1␤------> 3l :$g = False, Bool :$m = True, Bool :$m7⏏5 = True) { say "$i/$j/$c/$x/$g/$m"; } d(␤ expecting any of:␤ shape declaration␤»
Xliff_zzzz m: sub d ($obj, Int :$i = 2, Int :$j = 0, Bool :$c = True, Int :$x = 50, Bool :$g = False, Bool :$m = True, Bool) { say "$i/$j/$c/$x/$g/$m"; } d(:!m);
camelia rakudo-moar 668dc5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot put required parameter after variadic parameters␤at <tmp>:1␤------> 3 Bool :$g = False, Bool :$m = True, Bool7⏏5) { say "$i/$j/$c/$x/$g/$m"; } d(:!m);␤ expecting any of:␤ cons…»
Xliff_zzzz m: sub d ($obj, Int :$i = 2, Int :$j = 0, Bool :$c = True, Int :$x = 50, Bool :$g = False, Bool :$m = True) { say "$i/$j/$c/$x/$g/$m"; } d(:!m);
camelia rakudo-moar 668dc5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3:$m = True) { say "$i/$j/$c/$x/$g/$m"; }7⏏5 d(:!m);␤ expecting any of:␤ infix␤ infix stopper␤ …»
dataangel Xliff_zzzz: when you are putting everything on one line you need a semicolon after the sub closing brace 01:36
Xliff_zzzz m: sub d ($obj, Int :$i = 2, Int :$j = 0, Bool :$c = True, Int :$x = 50, Bool :$g = False, Bool :$m = True) { say "$i/$j/$c/$x/$g/$m"; }; d(:!m);
camelia rakudo-moar 668dc5: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in sub d at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
Xliff_zzzz m: sub d ($obj, Int :$i = 2, Int :$j = 0, Bool :$c = True, Int :$x = 50, Bool :$g = False, Bool :$m = True) { say "$i/$j/$c/$x/$g/$m"; }; d(0, :!m);
camelia rakudo-moar 668dc5: OUTPUT«2/0/True/50/False/False␤»
dataangel Fifth time is a charm ;p
Xliff_zzzz :P
Xliff I'm trying to golf some weirdness in a larger piece of code. 01:37
skids m: gist.github.com/skids/50a89c7c7353...c7a31b486b
camelia rakudo-moar 668dc5: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:9␤------> 3 { say "$i/$j/$c/$x/$g/$m"; }7⏏5 d(42,:!m);␤ expecting any of:␤ infix␤ infix stopper␤ stat…»
skids You can feed evalbot gists fwiw.
dataangel m: my Str:D @test; @test = (); 01:46
camelia ( no output )
dataangel m: my Str:D @test2; my %d; %d<TESTING> = (); @test2 = %d<TESTING>; 01:46
camelia rakudo-moar 668dc5: OUTPUT«Type check failed in assignment to @test2; expected Str:D but got List ($())␤ in block <unit> at <tmp> line 1␤␤»
dataangel Why aren't these the same?
skids dataangel: there is a Scalar injected by the Hash in there protecting the list from iteration. 01:50
m: my @test2; my %d; %d<TESTING> = (); @test2 = %d<TESTING>; @test2.perl.say; %d<TESTING>.perl.say; ().perl.say 01:51
camelia rakudo-moar 668dc5: OUTPUT«[(),]␤$()␤()␤»
skids The builtin aggregates apply an item around each of their elements. It's possible to trick them nto not doing so, but not good form to do that. 01:52
skids see docs.perl6.org/type/Scalar 01:53
dalek ateverable: 4a65abd | MasterDuke17++ | / (4 files):
Better unlinking of temp files/directories

Using the default behavior of File::Temp means the files are unlinked when the filehandle is garbage collected, which can cause problems if it happens at random times. Instead do it manually in a LEAVE block.
01:57
Xliff .seen moritz 02:04
yoleaux I saw moritz 21 Aug 2016 14:07Z in #perl6: <moritz> afk again&
dataangel Is it possible in Perl6 to get the AST of a function at 02:32
runtime? Basically between runs of my program I want to detect if a
function has had its definition changed, or if any of the functions
that it calls have had its definition changed and so on recursively
...oops copy paste fail
grondilu why would the definition of a function change between two different runs of a program? 02:45
dalek osystem: ec0c7c9 | (Pierre VIGIER)++ | META.list:
Add Acme::Sudoku to ecosystem

See github.com/pierre-vigier/Perl6-Acme-Sudoku
07:13
osystem: bb79885 | azawawi++ | META.list:
Merge pull request #238 from pierre-vigier/master

Add Acme::Sudoku to ecosystem
pmurias would having 'zef clone Foo::Bar' to git clone the Foo::Bar module be useful? 07:48
stmuk_ pmurias: like "panda look"? yes it would be useful 08:04
maybe something other than "clone" might support downloading archives too (when we use them rather than just git) 08:05
Xliff m: say sqrt(4) 08:07
camelia rakudo-moar 668dc5: OUTPUT«2␤»
Xliff m: say sqrt(4^2)
camelia rakudo-moar 668dc5: OUTPUT«one(2, 1.4142135623731)␤»
Xliff m: say sqrt(4**2)
camelia rakudo-moar 668dc5: OUTPUT«4␤»
Xliff m: say sqrt(4.pow(2)) 08:08
camelia rakudo-moar 668dc5: OUTPUT«Method 'pow' not found for invocant of class 'Int'␤ in block <unit> at <tmp> line 1␤␤»
Xliff :(
pmichaud yoleaux ping 08:15
yoleaux 9 Jul 2016 21:27Z <raiph> pmichaud: Maybe ".todo" (instead of .chain or .ps from earlier message ^^) to replace current ".then"?
23 Jul 2016 01:13Z <leokitten_> pmichaud: please if you can update the Google result snippet here is their page on how to change it developers.google.com/custom-searc...s/snippets
pmichaud .tell leokitten I'll be glad to make specific changes to update the snippet, but I don't know that I'll have time to fully research the developers.google.com/custom-search...s/snippets page to figure out exactly what to change. 08:19
yoleaux pmichaud: I'll pass your message to leokitten.
pmichaud .tell leokitten If it's just fixing a <meta> tag in the html output, I can easily do that (if someone can let me know what to put in the <meta> tag). 08:20
yoleaux pmichaud: I'll pass your message to leokitten.
pmurias stmuk_: ahh, panda look does that already 08:27
smls m: say (a=>2) ~~ /a/; say (a=>2).first(/a/) 08:48
camelia rakudo-moar 668dc5: OUTPUT«「a」␤Method 'match' not found for invocant of class 'Pair'␤ in block <unit> at <tmp> line 1␤␤»
smls ^^ This is a bug, right?
Looks like .first might be cutting corners by calling $element.match($predicate) instead of $predicate.ACCEPTS($element) in case of a regex predicate 08:49
jnthn Looks like 08:50
smls RT 08:58
TheLemonMan m: 42.Str ~~ Str(Int) 08:59
camelia ( no output )
TheLemonMan m: say 42.Str ~~ Str(Int)
camelia rakudo-moar 668dc5: OUTPUT«False␤»
TheLemonMan hmm
TheLemonMan m: say 42.Str ~~ Str(Any) 09:22
camelia rakudo-moar 668dc5: OUTPUT«False␤»
pmurias how do I turn Pod into markdown? 10:27
nadim morning, I'll ask again, zef core dumps with the latest p6, build from git, and panda can't find Shell::Command. install is on a brand new box.
ugexe: is zef some kind of precompile version? 10:28
pmurias ahh, found a module in the ecosystem
TheLemonMan: I commited a fix for #117 myself, as that seemed easier then explaining things in the ticket 10:29
TheLemonMan pmurias, I kinda got lost in the inner details of the codegen at some point :| but thanks for providing a quick fix :) 10:30
nadim tadzik: some help with panda would be appreciated 10:36
tadzik nadim: sure, what do you need? 10:48
nadim: please show me how you're trying to build it and what exactly is showing up 10:49
pmurias tony-o: ping 10:52
pmurias tony-o: do you generate the README.md in Data::Dump from the Pod or is it hand written? 10:58
masak hi, #perl6 11:00
masak precommit fyi: I won't be attending YAPC::Europe, but I'm putting together a nice talk for a simultaneous, one-track, one-speaker, one-talk conference: Bond-con 11:01
(the talk is about 007)
tadzik :D
RabidGravy m: class Foo {}; role Bar {}; my $bar = Foo.new; ($bar does Bar) unless False 11:02
camelia rakudo-moar 668dc5: OUTPUT«WARNINGS for <tmp>:␤Useless use of $bar in sink context (line 1)␤»
RabidGravy is that warning intended or even desirable?
masak I don't have a splendid idea for a talk title, and I might accept community help with that 11:03
RabidGravy it appears to have crept in about a month ago
jnthn Looks iffy to me.
masak my current best suggestion is "On Her Macrosty's Secret Service"
RabidGravy obviously several ways to shut it up, but all less than ideal 11:05
DrForr live && let $die; 11:07
DrForr !!kiss-kiss; 11:08
jnthn Quasi of Solace. The Perl Is Not Enough. You Only Parse Once. The Man with the Golden Thunk. 11:09
masak "You Only Parse Once" is brilliant
even if the title was "...Twice" :)
masak I kinda like "Quasi of Solace" too 11:10
iH2O why not a 2 pass compiler, is more flexible for goto labels
TheLemonMan hmm, is there a way to save an intermediate result from p6 and then feed it into nqp manually? rakudo takes way too much to rebuild every time :(
masak iH2O: that one actually made me smile :)
iH2O you have to quote those labels with a one pass compiler
:(
masak iH2O: yep
jnthn I used "You only live twice" as a slide title when teaching finalization semantics. :P
DrForr Die() Another Day;
masak DrForr: except 007 calls it `throw` :/ 11:11
DrForr From R5RS with Love? 11:13
masak not that inspired by Scheme, I'm afraid ;)
but I like how all y'all're thinking :) 11:14
masak thanks to vendethiel++, 007 has regexes now. (under a feature flag) -- we expect to start experimenting with `is parsed` soon 11:20
masak the more I think about `is parsed`, the more I realize how central it is to macros. 11:20
*if* it works, which I think it will.
DrForr . o ( Bourne Shell Ulimatum )
masak wrong continuity ;) 11:21
DrForr Nod, but it's still the same genre.
'Gold Member' is in violation of the CoC, I'm sure :) 11:22
masak I'm not sure Bond-con will have one, but I also don't want an Austin Powers title ;) 11:23
jnthn The macro who spliced me :P
masak haha
I've more or less stoped using "splice" as a verb, and started using "expand" instead
DrForr 'Double 007' (it *does* feature Bond staples) 11:25
masak could also go with catch phrases. "Shaken, not parsed" 11:26
DrForr For Your Bytes Only - thoguh that's more appropriate for a Unicode thing.
masak or "See you later, interpolator"
tbrowder I'm trying to work on docs for funcs sprintf and printf. At the moment printf is described in Str which I believe is the wrong place. I think it should be in IO since (1) it writes to stdout and (2) it should write to a file. Ideas anyone? 11:36
stmuk_ looks like the main Cluj sessions may be live streamed! 11:38
pmurias masak: I started work on the QAST 007 backend 11:40
masak: would adding an option to dump ast to the s-expr form I see in test be helpfull? 11:42
DrForr I would say 'oh dear god yes'. 11:44
masak pmurias: yes, that sounds nice too 11:45
pmurias: you mean as a separate backend?
pmurias: please submit a PR for that -- I'll happily review it
masak pmurias: slightly orthogonally -- I'm less and less happy with the s-expr syntax in the tests. it used to be lightweight and nice to write, but as 007 grew it also got more picky, and more wordy. 11:49
tbrowder masak: re title, a bit Western but "The Good, the Bad, and the Ugly" 11:50
masak pmurias: I haven't tried it, but maybe it could be saved by (no irony or circularity intended) writing it in a neater/smaller format, and having some post-processing step expand it into the more correct form
tbrowder: also wrong continuity :)
masak the language is called 007, not Clint :P 11:51
DrForr I was thinking along the lines of 'IP cress files' as well :)
RabidGravy has anyone got any feelings whether the github.com/perl6/doc/issues/847 is actually a bug rather than wishful thinking on the part of the docs before I alter the doc to match reality? 11:54
tbrowder yes, but the adjectives can be very useful 11:58
pmurias masak: so do you have a better way of dumping the ast then s-exprs? 12:01
jnthn RabidGravy: I'm pretty sure that WHY method implementation is bogus. 12:04
You can't just override a method to return something of the wrong type and expect good things to happen :) 12:05
RabidGravy yeah, that's what I thought
masak tbrowder: I already called a blog post something like that once: strangelyconsistent.org/blog/rakudo...ugly-weird 12:07
masak pmurias: oh yes, hold on 12:08
pmurias: this works just fine: `$ bin/007 -e='say(quasi { say("OH HAI") })'`
pmurias: (can also be done from Perl 6, of course)
tbrowder masak: nice reference and post!
masak it's a really old post 12:09
we're come a loooong way since then
RabidGravy jnthn, the thing is that even if the example is fixed to return a Pod::Block::Declarator it still only runs the locally defined WHY 12:11
[Coke]_ .messages 12:54
geekosaur: where do you see the [BUG] suggestion still for sending tickets? 12:55
)ot
[Coke]_ (it's voodoo from 10 years ago) 12:55
geekosaur I googled that because I never remember the address 13:43
(second hit was something complaining about that...)
[Coke] oh, on rakudo.org. duh. thanks! 13:48
dalek c: 4f433bb | (Tom Browder)++ | doc/Language/5to6-perlfunc.pod6:
Perl 6's printf function doesn't yet work with a file
13:59
[Coke] .ask pmichaud if I can have access to edit web pages on rakudo.org
yoleaux [Coke]: I'll pass your message to pmichaud.
dalek c: cfa04d8 | RabidGravy++ | doc/Language/mop.pod6:
Remove bogus example and associated text.

The example for the over-riding of the MOP methods couldn't possibly work and the assertion that supplying the name in quotes differs in dispatch from the unquoted one is incorrect.
Closes #847
14:06
AlexDaniel hmmm 14:09
how can I rmdir a directory if it is not empty?
“Throws an exception of type X::IO::Rmdir if the directory cannot be removed (e.g. the directory is not empty, or the path is not a directory).” 14:10
well first of all it does not throw any exception, and it also returns an array instead of a Bool… 14:11
Ah, I see. ‘dir’.IO.rmdir does not work like rmdir ‘dir’ 14:12
ugexe yeah. have to do a recursive path listing. from there the naive way is to sort by length, reverse, and delete in order 14:14
AlexDaniel ugexe: yeah, well… heh…
RabidGravy did I imagine an rmtree then? 14:19
travis-ci Doc build passed. Tom Browder 'Perl 6's printf function doesn't yet work with a file' 14:20
travis-ci.org/perl6/doc/builds/154157387 github.com/perl6/doc/compare/95cd6...433bb3796e
AlexDaniel RabidGravy: maybe not? github.com/labster/p6-file-directory-tree 14:20
I'm not sure what's the point of mktree in this module
given that mkdir will do the same thing, right? 14:21
RabidGravy Hmm, let me find the place that I thought I was using it
for some reason I have several modules which have tests that make directories 14:22
pmurias masak: the .Str on Q node works great 14:32
ugexe rmtree is from File::Tree i think 14:39
File::Directory::Tree rather 14:40
AlexDaniel: JVM mkdir did not always act the same as moarvm 14:41
you'd have to manually create each level of the directory structure on JVM a year+ ago
dalek osystem: 7d5337e | (Alexey Melezhik)++ | META.list:
Sparrowdo module to install CPAN modules using App::cpm - a fast CPAN module installer
14:44
osystem: 196884e | RabidGravy++ | META.list:
Merge pull request #239 from melezhik/master

Sparrowdo module to install CPAN modules using App::cpm - a fast CPAN module installer.
RabidGravy yeah, and infact the place I thought I was using it I'd actually implemented it myself 15:01
pmurias masak: having a way to print out the ast from the command line would be great 15:10
dalek c: 2ff9fbc | coke++ | doc/Language/ (3 files):
fix whitespace
15:15
[Coke] pmurias: --target=ast ? 15:16
jdoege In Synopsys 5, a tilde metacharacter is defined to help match nested subrules. This metacharacter does not appear in the perl6 docs. Testing it, it seems to work in the current version of perl6. Is this just oversight/incompleteness or is this deprecated or not yet excised from perl6 regexs? 15:18
I'm happy to be made a fool if it does appear in the docs, but I couldn't find it. 15:19
By way of example, this matches: "( fred )" ~~ / \( ~ \) (\s*fred\s*) /;
ugexe fwiw the synopsys aren't official 15:20
jdoege Yeah, I get that, but in this case S05 describes something that is in the current implementation of the language, but not in the official documentation. 15:21
[Coke] if it's in rakudo, it's either officially supported or it's not. If it's in github's perl6/roast 6.c-errata branch, it's official
ugexe well which part of your example are you talking about? the ~~ or ~?
[Coke] jdoege: the docs are not considered complete at this time. best effort as we go 15:22
dLeCamarae Guys, hello. I have thrice failed at make install with Rakudo, running out of memory under the Intel Galileo. 15:25
Does anybody know how I can dodge around that?
stmuk_ more swap? 15:25
jdoege ugexe: the ~ inbetween the \( and \). It does some magic that swaps the \) and (\s*fred\s*) and also applies some assertions. 15:26
dLeCamarae It has 512MB RAM, 400MHz processor. i586.
Oh, wait. More swap. Of course.
Let me see if I can make some swap space.
ugexe you pretty much need a min of 2GB ram to build rakudo
tony-o pmurias: i think i hand wrote the README, someone submitted a PR for it initially
[Coke] jdoege: it's all a little bit of a mess; please feel free to open a doc bug at github.com/perl6/doc/issues 15:27
stmuk_ dLeCamarae: you can add a swap file if you don't want to mess with disk
it will be very slow of course 15:28
dLeCamarae stmuk_ However in Linux I have to create a swap partition first, yeah? (I already have this one on an SD card, so that may be a tricky move. Wanna be sure.)
stmuk_ dLeCamarae: wiki.archlinux.org/index.php/swap#Swap_file
you can use a file or repartition 15:29
jdoege Coke: thanks for the pointer. Not complaining. I just don't want to use it if it is deprecated/going to disappear. I'll open a bug.
dLeCamarae stmuk_ Thanks; now running a dd(1) on it ... 15:30
[Coke] jdoege: not surprisingly, searching for '~' in all the S05 tests is... problematic. :) 15:31
lots of ~$var, lots of $this ~~ /that/
but docs is a great place to log that exact question (is this supported?) 15:32
jdoege+=
jnthn jdoege: It's used quite heavily in the Perl 6 grammar itself, so it's safe to rely on it :)
[Coke] jdoege++
jnthn And yes, wants documenting :)
jnthn Also its interaction with FAILGOAL and :dba(...) 15:32
jdoege In the Roast data it look like it is in there: t/spec/S05-metachars/tilde.t, so Yay!
[Coke] woot, found it. well done 15:33
jnthn++
domm hey, I just tried to install Inline::Perl5 (so I have something to play with while traveling to YAPC), but got:
/usr/bin/ld: /home/domm/perl5/perlbrew/perls/system/lib/5.24.0/x86_64-linux/CORE/libperl.a(op.o): relocation R_X86_64_32S against `PL_opargs' can not be used when making a shared object; recompile with -fPIC
/home/domm/perl5/perlbrew/perls/system/lib/5.24.0/x86_64-linux/CORE/libperl.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
that's a perlbrew'ed Perl 5.24 - does it need any special flags? 15:34
stmuk_ domm: perlbrew install perl-stable -Duseshrplib
from github.com/niner/Inline-Perl5
[Coke] domm: github.com/niner/Inline-Perl5#building 15:35
domm thx 15:46
nadim ugexe: can I get some help with zef generating a core dump? 15:48
ugexe nadim: run whatever the problem command is again, but with with the --debug flag and gist the result 15:52
dLeCamarae stmuk_ Alas. swapon: /media/storage/swapfile: swapon failed: Function not implemented 15:53
It seems the Galileo's kernel does not by default do swapping.
pmurias is the bug where -> {...} sometimes hides the stacktrace from exceptions in rakudo known or should I report it? 15:54
pmurias [Coke]: 007 doesn't support target ast 15:55
[Coke]: or do you mean I should make it support it
stmuk_ dLeCamarae: maybe it only handles partiations and not swap files 16:00
cat /boot/config-* or similar may help 16:01
TheLemonMan pmurias, a similar problem wrt stack frames disappearing has been recently fixed in MoarVM
ugexe perl6 -v please, latest p6 from rakudo repo could mean a few different things 16:06
nadim ugexe: This is Rakudo version 2016.07.1-243-gc201a76 built on MoarVM version 2016.07-24-g31eccd7 16:07
ugexe: even perl6 -Ilib bin/zef, without command, seg faults 16:08
stmuk_ I *think* the Galileo has an MMU 16:09
dLeCamarae It does. But I am not hitting that particular wall. 16:10
dLeCamarae I think this Linux I got from Intel is intentionally munted with regard to swap and stuff. 16:12
kyclark I understand this well enough: 16:12
m: my @list = 1, 3, 9 ... * > 30;
camelia ( no output )
dLeCamarae Either I will compile me another Yocto-based image, or, if it comes to it, find different hardware.
kyclark m: say 1, 3, 9 ... * > 30;
camelia rakudo-moar 668dc5: OUTPUT«(1 3 9 27 81)␤»
kyclark but why won't this work?
kyclark m: say 1, 3, 9 ... * < 30 16:13
camelia rakudo-moar 668dc5: OUTPUT«(1)␤»
kyclark That is, I would expect it to include elements up to 30 16:13
jnthn It's a termination condition; it says when you don't want more values from the sequences 16:15
m: say 1, 3, 9 ...^ * > 30;
camelia rakudo-moar 668dc5: OUTPUT«(1 3 9 27)␤»
kyclark Oh, thanks. That makes sense now. 16:15
moritz \o 16:17
lizmat moritz o/ 16:19
timotimo o/
harmil_wk jdoege: I'm not sure if anyone said this to you, but "'[ 16:20
ugexe nadim: I'm not sure, I just tried with a `rakudobrew build moar-blead` and no segfault. You might have to `rm -rf ~/.zef`, `rm -rf <ZEF_DIR>/lib/.precomp`, and/or `rm -rf ~/.perl6` for some weird reason
harmil_wk jdoege: I'm not sure if anyone said this to you, but "'[' ~ ']' <thing>" and the like are used all over the compiler, so yeah, very official
stmuk_ galileo-debian?
timotimo you have to be careful with the ~ operator, as it immediately fails when the inner thing doesn't end in the thing the ~ is supposed to find at the end 16:22
i.e. no backtracking
this has bitten people extremely often in the past
harmil_wk timotimo: I assume you mean like this: 16:25
m: say "[1 2 3]" ~~ m:s/^"[" ~ "]" ([\d\s+]*?)/
camelia rakudo-moar 668dc5: OUTPUT«False␤»
harmil_wk No, that's a bug... that works like this:
m: say "[1 2 3 ]" ~~ m:s/^"[" ~ "]" ([\d\s+]*?)/
camelia rakudo-moar 668dc5: OUTPUT«「[1 2 3 ]」␤ 0 => 「1 2 3 」␤»
timotimo m: say "[ yo yo yo ]" ~~ m/'[' ~ ']' (.*)/
camelia rakudo-moar 668dc5: OUTPUT«「[ yo yo yo ]」␤ 0 => 「 yo yo yo 」␤»
timotimo ..oh? 16:26
i'm pretty sure this used to explode pretty violently
harmil_wk Even seems to work in a subrule: 16:29
m: my regex dig { .* }; say "[1 2 3 ]" ~~ m:s/^"[" ~ "]" <dig>/
camelia rakudo-moar 668dc5: OUTPUT«「[1 2 3 ]」␤ dig => 「1 2 3 」␤»
moritz back to civilized Internet connection
timotimo "civilized internet"? sounds like a myth to me :P 16:30
harmil_wk timotimo: it's where you have two computers connected via USB inside a faraday cage.
moritz well, WLAN + 50Mbit DSL
in contrast to LTE or 3G + Roaming + tethering 16:31
timotimo hehe.
tbrowder [Coke] What was the whitespace problem? 16:32
nadim ugexe: let me try 16:34
ugexe: removed <ZEF>/lib/.precomp and ~/.perl6, ~/.zef did not exist. still a seg fault, even if it took a tad longer. 16:38
harmil_wk Has anyone done any work on Perl 5 style "-p/n" yet? I'm wondering if maybe it should be done via a module, but I can't figure out if a module can modify the QAST structure of the caller to inject the appropriate loop code. 16:42
moritz rakudo has -p and -n options, no?
what are you missing?
harmil_wk Does it?
ugexe nadim: what is your `nqp -v`? 16:43
harmil_wk It does. I guess I just missed it
drat
moritz rejoice! One more feature you can use immediately 16:44
dLeCamarae stmuk_ I think I have found a galileo-debian image on SourceForge; I should slot some time to work with it. Thanks.
stmuk_ dLeCamara: good luck!
lizmat PSA: the P6W will appear in about 5 hours from now
*after* I got some dinner :-) 16:45
afk&
RabidGravy stmuk_, dLeCamarae I was thinking about digging out my galileo to have a play this week 16:52
nadim ugexe: This is nqp version 2016.07-177-gb416158 built on MoarVM version 2016.07-24-g31eccd7 17:01
iH2O what is a delayed declaration? i googled it but got nothing relevant 17:12
lucs iH2O: What's the context? 17:15
iH2O the name appears in the feature matrix for the perl6 compilers
perl6.org/compilers/features 17:16
lucs Yeah. Hmm... No idea. Someone else might know.
iH2O its not implemented yet, i guess few people miss it 17:17
timotimo m: foobar; sub foobar { say "hi" }
camelia rakudo-moar 933e9a: OUTPUT«hi␤»
timotimo oh, that's potentially delayed macro declarations? i don't know 17:18
many things in the feature matrix are ... mysterious
their meaning long lost from all the oral re-tellings throughout the generations
you know, before writing was readily available to the masses
ugexe nadim: I'm not sure. Seems like a change in moar or nqp is causing it but I don't see what from glancing at the commits. Running with `perl6-gdb-m` and/or `perl6-valgrind-m` might give additional clues 17:19
timotimo when programmers had to explain with literal hand waving to the computer what it's supposed to be calculating
iH2O yes, thx timotino
s/n/m/ 17:20
nadim ugexe: nopaste.linux-dev.org/?1119762 17:22
[Coke] pmurias: I thought you were talking about rakudo, my bad. 17:29
[Coke] tbrowder: (whitespace) trailing whitespace, non-breaking space in Perl 6 - "make xtest" failures. 17:31
smls Is the subroutine form of getc() broken for anyone else? 17:35
$ perl6 -e 'getc' 17:36
read string requires an object with REPR MVMOSHandle
in block <unit> at -e line 1
ugexe nadim: searching for `elision-unlock.c: No such file or directory` points at glibc and newer intel processors. Did this ever happen before on the same system with different versions of rakudo?
smls: I get that for all rakudo versions 17:37
nadim ugexe: brand new computer, first install 17:38
ugexe: perl6-valgrind still running
harmil_wk moritz: mostly I was sad because I wanted an excuse to get into playing with 6guts from userland. 17:42
ugexe nadim: it looks like you might have to compile/install glibc with --disable-elision-lock, as some processors implemented the feature wrong (some have it disabled in microcode, but others have no microcode update for this)
bioduds hello 17:43
does someone know how to interpolate a var in heredocs?
in perl6?
moritz bioduds: if you use double-quotes in the :to thingy, variables are interpolated 17:45
q:to"EOF"
bioduds tx :) 17:48
pretty simple :D thanks man
timotimo um 17:49
really?
i would have thought it's about whether you use q or qq
because qq will interpolate values, whereas q won't
geekosaur shell vs. perl think :p 17:50
(perl, of course, supports both :)
bioduds I didnt quite get the q and qq thing actually
timotimo yeah, just using :to"EOF" won't interpolate vars inside the heredoc
moritz oh, sorry
than I was thinking of p5isms 17:51
timotimo it's q:to"FOO" vs qq:to"FOO" that makes the difference
bioduds didn't work
moritz bioduds: listem to timotimo, not me
bioduds q:to"END" not interpolating
moritz I'm old and out of the loop
timotimo hah
we still love you, though, moritz :)
moritz hugs everybody
moritz btw, during the vacations I've sold the first copy of my book \o/ 17:52
it's not finished, but on leanpub, where you can buy it in the knowledge that it's incomplete (and receive updates for free)
timotimo cool! 17:53
bioduds i tried q:to/"END"/
didn't interpolate
moritz bioduds: try qq:to...
timotimo in that case you'll have to use "END" as your heredoc end
moritz qq:to/END/...END 17:54
bioduds oh
qq
ok
let me try
moritz the idea of q and qq is to be like single and double quotes 17:57
where the single (q and ') tend not to interpolate, whereas the double (qq and ") tend to interpolate
kyclark Can someone explain the output I'm seeing here: 18:02
lpaste.net/179562
timotimo m: say "foobar".comb(99) 18:03
camelia rakudo-moar 933e9a: OUTPUT«(foobar)␤»
timotimo huh. 18:04
moritz m: say "foobar".comb("99") 18:05
camelia rakudo-moar 933e9a: OUTPUT«()␤»
moritz kyclark: ^^
kyclark: make sure max is an integer
timotimo oh, hah
that's a good one
moritz sub MAIN (Str $file where *.IO.f, Int :$max=50) {
heh, old /me isn't entirely useless yet :-) 18:06
timotimo well done, moritz 18:07
kyclark Just add Int to the sig didn't fix it, had to do "$line.comb(+$max)" -- thanks! 18:09
moritz oh, because Int will likely give you an IntStr 18:10
masak pmurias: just pushed a commit that makes `$ bin/007 --backend=ast -e='say(1 + 2 + 3)'` work
moritz and for .comb(IntStr), the Str nature of IntStr seems to win
kyclark What is "comb" supposed to do with a Str? 18:11
timotimo right, and even Int() wouldn't turn an IntStr into its Int form, right?
the same as it does with a regex that only has a literal in it
but a few hundred times faster
moritz kyclark: look for occurences of that string
kyclark Much to learn I have.
timotimo comb is more or less the opposite of split 18:12
moritz just like .comb(regex) looks for matches of the regex
timotimo though split also has a flag that lets you keep the "other" parts, too
kyclark OK, so maybe this is what I'm looking for to go the other way from this script. That one is text to FASTA, but I'd like to split a string of text like ">1\nACTG\n>2\nACTGA" on the "\n?>" bits 18:13
m: say ">foo>bar".comb(">")
camelia rakudo-moar 933e9a: OUTPUT«(> >)␤»
kyclark m: ">foo>bar".split(">") 18:14
camelia ( no output )
kyclark m: say ">foo>bar".split(">")
camelia rakudo-moar 933e9a: OUTPUT«( foo bar)␤»
timotimo yeah, it also gives you the initial empty string
(to uphold split-then-join giving the same result) 18:15
dualism! that's the word i was looking for 18:18
masak timotimo: "duality"? 18:23
timotimo probably
is it actually a duality?
masak the word means "it's two things", more or less 18:25
El_Che hi perl6 18:26
TimToady howdy from Cluj 18:27
El_Che good trip?
(before I had calendar problem I had a look from Belgium. It was 6 hours for a 2h trip. Crazyness) 18:28
TimToady they broke our airplane at ORD, which resulted in a 4 hour delay, but fortunately we had a 5 hour layover in MUC
it was merely "a failed APU"...
El_Che the question is: did you have enough battery :)
El_Che TimToady: ok, that sounds like a bad Simpsons reference :) 18:29
TimToady well, given we slept most of the redeye, didn't need a lot of batter
*ry
El_Che hehe
batter :)
El_Che bbl, putting kid to bed. Have fun in cluj! 18:31
TimToady we'll try
harmil_wk m: my @a = [1,2,3], [4,5], [6]; my @b = 1,2,3,4; say @a »<» +@b 18:34
camelia rakudo-moar 933e9a: OUTPUT«[[True True True] [False False] [False]]␤»
harmil_wk Shouldn't that be [True, True, True]?
TimToady you're thinking of zip maybe 18:36
hypers are more completist
and hypers want to replicate the incoming structure 18:37
timotimo yes, hypers will aattempt to keep the structure of a thing 18:38
TimToady m: my @a = [1,2,3], [4,5], [6]; my @b = 1,2,3,4; say @a Z»<» +@b
camelia rakudo-moar 933e9a: OUTPUT«([True True True])␤»
harmil_wk Interesting...
Thanks
awwaiid TimToady: how was abstractions? 19:00
TimToady a lot of great talks there 19:03
awwaiid Sweet. Great line-up. I'm heading to StrangeLoop next month and that used up my conference budget or I'd have been there to cheer you :)
Everyone I've talked to loved the conference 19:04
Your talk go well?
TimToady pretty good 19:05
awwaiid cool. Think there'll be video? 19:07
TimToady too tired to backlog, collapses into bed
awwaiid o/
TimToady nigh tall 19:08
awwaiid gnight
timotimo i'm looking forward to video, too 19:42
brrt TheLemonMan++ 20:23
also, you should check out what the perl6-binary does
which is, on my system, this: exec /home/bart/usr/bin/moar --execname="$0" --libpath="/home/bart/usr/share/nqp/lib" --libpath="/home/bart/usr/share/perl6/lib" --libpath="/home/bart/usr/share/perl6/runtime" /home/bart/usr/share/perl6/runtime/perl6.moarvm "$@" 20:24
i.e. it sets a bunch of libppaths
i'm not 100% the a mbc file is just runnable from perl6
(from nqp it is no problem) 20:25
wrong window :-) 20:26
timotimo i'm getting a spec test failing with the recently improved error about slurpies and defaults on them 21:35
t/spec/S06-signature/introspection.rakudo.moar
won't compile
even though my rakudo is on latest :\
as is my roast checkout
so ... something went wrong with the pull requests or something?
lizmat . 21:46
Xliff .seen moritz 22:12
yoleaux I saw moritz 18:12Z in #perl6: <moritz> just like .comb(regex) looks for matches of the regex
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/08/22/...from-cluj/ 22:21
Xliff lizmat++ 22:22
timotimo cool 22:24
El_Che lizmat++ 22:26
lizmat added jnthn++ blog post 22:26
6guts.wordpress.com/2016/08/22/con...ng-part-1/
El_Che is it me or was it allowed in older rakudo releases to have 'is rw' on non scalar variables in sub signatures? 22:29
dalek ateverable: 635f61a | MasterDuke17++ | / (3 files):
Make sure there's a filename to unlink
22:51
awwaiid can you put more than one whenever in a react block? 23:07
dalek ateverable: 4d50e7d | (Aleks-Daniel Jakimenko-Aleksejev)++ | Bisectable.p6:
Oops in e84ccc8

It was supposed to be a description of a gist, not a file called “description”.
23:16
bioduds TimToady for president!! :) 23:33
gils p6: my $a; without $a { say 1 } else { say 2 } 23:46
camelia rakudo-moar 3af93c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤"unless" does not take "else", please rewrite using "if"␤at <tmp>:1␤------> 3my $a; without $a { say 1 } 7⏏5else { say 2 }␤»
gils The error message for trying to use "else" with an "without" condition says "unless" does not take "else"
I should say "without" does not take "else" 23:47
gils *it 23:54
timotimo TimToady for present! 23:57