Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-03-07

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:29 ugexe m: use Test; plan 2; ok 1; skip-rest(); subtest { my $x = Str.asjfofef; ok $x; }; # expected? (i kinda expect `subtest` to get skipped entirely)
00:29 camelia rakudo-moar 978754: OUTPUT«1..2␤ok 1 - ␤ok 2 - # SKIP <unknown>␤Method 'asjfofef' not found for invocant of class 'Str'␤  in block <unit> at /tmp/SZK8BmahIr line 1␤␤»
00:34 timotimo i've relaxed the requirement to have a callmethod on the LHS of a metaop-assign to also allowing sub calls
00:34 timotimo spec testing nao
00:35 johndau joined #perl6
00:42 timotimo spec tested clean
00:49 John[Lisbeth] can you do something similar efficiency and function wise to switch case statements in c?
00:49 timotimo you're not going to reach equivalent performance of a jumplist yet, but you can have a given/when clause
00:50 timotimo in general, you will find that perl6 performance is a bit lacking at the moment
00:50 timotimo this year we'll finally be focusing a whole lot on performance improvements
00:50 timotimo the effects of that are already felt in some places, have a look at this: https://6guts.wordpress.com/2016/03/06/dig​ging-into-the-performancereliability-work/
00:52 John[Lisbeth] just add more cores
00:52 timotimo heh.
00:52 timotimo well, you can do that in perl6 reasonably well
00:53 timotimo on the other hand, our memory consumption sometimes gets a bit bad ;)
00:53 timotimo "just add more rams" isn't such an easy option
00:54 John[Lisbeth] more threads!
00:55 John[Lisbeth] 128 bit operating system for the win
00:55 timotimo hah
00:56 John[Lisbeth] delete system 32
00:56 timotimo if you already need one of those, you probably have some epic requirements
00:57 John[Lisbeth] all I needs me is some recursion boi
00:57 John[Lisbeth] gimme some of that sweet recursion son
00:57 timotimo yeah, we don't have a recursion limit ...
00:58 John[Lisbeth] perl has ver y few limits from what I understand
00:58 John[Lisbeth] or rather very few restrictions
00:58 timotimo yeah, kind of
00:58 John[Lisbeth] I've heard it's one of the most permissive languages
00:58 timotimo hm, could be
00:59 John[Lisbeth] and very few wats once you learn the depth of the syntax
01:00 timotimo in #perl6 we like to say "for every DWIM there's an equivalent WAT of equivalent magnitude" or something like that
01:00 b2gills Perl 5 does have a few WATs, but those were mostly from maintaining backward compatibility with older versions
01:03 b2gills John[Lisbeth]: If you want to see some Perl 6 videos on YouTube: https://www.youtube.com/playlist?lis​t=PLRuESFRW2Fa77XObvk7-BYVFwobZHdXdK
01:05 John[Lisbeth] I am not sure I want to put perl into my brain yet
01:05 Hotkeys is a 'WAT' where you get confused
01:06 timotimo it's something unexpected that you can't relate to
01:06 John[Lisbeth] It's where the syntax in a langauge does something different than it normally does
01:06 John[Lisbeth] irregular syntas
01:06 aindilis joined #perl6
01:06 John[Lisbeth] special case syntax
01:06 skids WAT exists without a formal definition for the practical joke value of making people google for it.
01:06 timotimo WAT is not limited to syntax, it's much stronger in semantics IMO
01:07 timotimo ah, so it's warnocked
01:08 yeahnoob joined #perl6
01:08 John[Lisbeth] Perl 6 is just LOTR 2 you guys
01:08 Hotkeys so does it stand for something or is it just the word you produce when it happens
01:09 John[Lisbeth] maybe cause when you come across a wat you say "wat"
01:09 skids There are backronyms but they are, well, backronyms.
01:18 tweakism Hotkeys: you need to watch the video that coined it
01:18 tweakism at least this sense of it
01:18 tweakism https://www.destroyallsoftware.com/talks/wat
01:19 Hotkeys alright
01:19 Hotkeys yeah okay
01:19 Hotkeys this is what I thought it meant
01:20 Hotkeys gonna keep watching this though
01:21 tweakism it's really good.
01:23 Hotkeys that was great
01:24 skids NaNNaNNaNNaN Batman!
01:24 tweakism and it's not an acronym, it's a funny way to say 'what'
01:24 tweakism skids: the point where I lose it is when {} + {} = NaN
01:30 timotimo which is why perl6 goes with coercive operators that always coerce all arguments the same way
01:30 timotimo rather than trying to figure out what to coerce to what depending on what types of stuff you've passed
01:30 timotimo which is why + is always addition, never string concatenation. and ~ is string concatenation only, not - for example - list concatenation as well
01:50 ggoebel16 joined #perl6
01:53 perlawhirl joined #perl6
02:00 perlawhirl hi perlers
02:00 perlawhirl who's awake
02:03 skids o/
02:04 tweakism \o
02:04 timotimo ohai
02:09 Actualeyes joined #perl6
02:10 perlawhirl hi. if i'm reading a matrix (lines of elements) in from STDIN, i can do this: my @x = lines».words».list;
02:11 perlawhirl as is often the case with STDIN, the last line is usually blank, resulting in a final element of '()'. What's the best way around this (if i don't know whether the last line is a newline)
02:11 perlawhirl coming from a golfing point of view... (sorry)
02:13 timotimo .grep(+*) is a possibility
02:13 skids m: my @x = (lines».words».list).grep(*.elems); say @x[0,1,*-1] # would remove all blank lines if that's ok.
02:13 camelia rakudo-moar 0b69c7: OUTPUT«((Céad slán ag sléibhte maorga Chontae Dhún na nGall) (Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;) (Atá beo go buan gan bhuairt gan ghruaim fá ghleanntáin ghlas’ Ghaoth Dobhair.))␤»
02:13 timotimo +* is shorter :(
02:16 perlawhirl timotimo: thanks, will try it out
02:16 perlawhirl maybe we need a 'perl6-golf' sub-channel... all the 'lowly' golf talk can happen there :D
02:17 kalkin-- joined #perl6
02:17 tweakism hrm, why would the last line often be blank?
02:18 timotimo because you only ^D on a blank line
02:18 cdg joined #perl6
02:18 timotimo and it's good styile to end files in \n, because that way things end up fine with cat
02:18 tweakism I understand ending files in \n
02:18 tweakism but that's not the same as a blank line
02:19 tweakism POSIX says \n is a line terminator, not separator.
02:19 timotimo ah, sorry
02:20 tweakism i.e., a file with 3 lines (of text), should have 3 \n's
02:21 perlawhirl hmm... well i was catting a file to simulate the stdin, so i may be compounding things
02:21 tweakism I'm just wondering now if perl is doing it like split('\n')
02:21 tweakism and inventing a non-existent last blank line
02:23 skids m: ("1\n2\n".lines.>>.words).perl.say
02:23 camelia rakudo-moar 0b69c7: OUTPUT«(("1",).Seq, ("2",).Seq)␤»
02:23 perlawhirl i think the issue is .list
02:23 perlawhirl i don't want a Seq, i want an array, so I added .list, which yes, seems to create that last ()
02:24 skids m: ("1\n2\n".lines.>>.words>>.list).perl.say
02:24 camelia rakudo-moar 0b69c7: OUTPUT«(("1",), ("2",))␤»
02:25 skids Sure there isn't an extra "\n"?
02:26 perlawhirl i'll check my inputs
02:28 perlawhirl ok, forget i said anything about STDIN typically ending in a \n... i just want to ignore blank lines from STDIN
02:29 perlawhirl in which case the grep(+*) seems to the way to go
02:30 tweakism perlawhirl: stdin does typically end in \n; what you said was it typically ends with a blank line :)
02:30 perlawhirl m: my @x = ("1\n2\n\n".lines.>>.words>>.list); say @x;
02:30 camelia rakudo-moar 0b69c7: OUTPUT«[(1) (2) ()]␤»
02:30 perlawhirl just trying to avoid that empty element
02:31 perlawhirl but have @x be a list (Array) and not a Seq
02:34 perlawhirl m: my @x = ("1 2 3\n4 5 6\n7 8 9\n".lines.>>.words>>.list); say (@x, |([Z] @x));
02:34 camelia rakudo-moar 0b69c7: OUTPUT«([(1 2 3) (4 5 6) (7 8 9)] (1 4 7) (2 5 8) (3 6 9))␤»
02:34 perlawhirl if there's a trailing newline... i end up with this
02:34 perlawhirl m: my @x = ("1 2 3\n4 5 6\n7 8 9\n\n".lines.>>.words>>.list); say (@x, |([Z] @x));
02:34 camelia rakudo-moar 0b69c7: OUTPUT«([(1 2 3) (4 5 6) (7 8 9) ()])␤»
02:35 timotimo .tell jnthn i just pushed a branch "generate_buildallplan", perhaps it'll be a workable starting-point for compiling BUILDALL via the compiler services. it's rather rough, though, and currently asplodes during stage parse.
02:35 yoleaux timotimo: I'll pass your message to jnthn.
02:55 timotimo .tell jnthn in particular, the nqp::getattr for $!reified really doesn't belong into the generate_buildplan_executor, but rather into compose. and i think i need to low-level-invoke that method in order to have an nqp::list instead of a List there.
02:55 yoleaux timotimo: I'll pass your message to jnthn.
03:30 Herby_ joined #perl6
03:31 Herby_ Evening, everyone!
03:33 Herby_ \o
03:33 Herby_ o/
03:47 noganex_ joined #perl6
03:50 ggoebel16 joined #perl6
03:53 Hotkeys Herby_: \o/
04:18 beatdown joined #perl6
04:20 shmibs joined #perl6
04:23 beatdown left #perl6
04:31 wamba joined #perl6
04:54 dj_goku joined #perl6
05:06 johndau` joined #perl6
05:15 themonke1bob11 joined #perl6
05:17 _notbenh joined #perl6
05:40 Cabanossi joined #perl6
05:50 vendethiel joined #perl6
05:53 themonkeybob11 joined #perl6
05:58 themonkeybob11 joined #perl6
05:59 bjz joined #perl6
06:25 bjz joined #perl6
06:29 bjz_ joined #perl6
06:35 kurahaupo joined #perl6
06:35 quester joined #perl6
07:01 amanminz joined #perl6
07:05 CIAvash joined #perl6
07:18 domidumont joined #perl6
07:22 johndau` joined #perl6
07:23 domidumont joined #perl6
07:25 vendethiel joined #perl6
07:25 firstdayonthejob joined #perl6
07:30 bjz joined #perl6
07:31 masak morning, #perl6
07:31 tweakism Hello.
07:41 nakiro joined #perl6
07:45 domidumont joined #perl6
07:48 themonkeybob11 joined #perl6
07:49 moritz \o
07:51 fireartist joined #perl6
07:58 mr-foobar joined #perl6
08:02 abraxxa joined #perl6
08:05 Possum joined #perl6
08:08 wamba1 joined #perl6
08:13 darutoko joined #perl6
08:19 zakharyas joined #perl6
08:22 [Tux] test            22.141
08:22 [Tux] test-t          12.784
08:22 [Tux] csv-parser      52.474
08:29 abraxxa joined #perl6
08:30 tmch joined #perl6
08:30 sortiz \o #perl6
08:31 Actualeyes joined #perl6
08:33 themonkeybob11 joined #perl6
08:35 masak o/
08:40 pmurias joined #perl6
08:42 yeahnoob joined #perl6
08:51 RabidGravy joined #perl6
08:53 RabidGravy marning!
08:54 pmurias joined #perl6
09:00 DrForr RabidGravy: Got the handler stuff almost straightened out over the weekend, I collected a few more ideas this morning before I came in to work.
09:00 RabidGravy nice
09:01 DrForr Well, not really ideas per se as I knew they'd be handy, it was more along the lines of "Aha, I finally have a practical example of why you'd want this."
09:03 DrForr multi GET( 'settings', [ BlogID $blogID, UserID $userID ] ) # matching GET /settings?blogid=a35b9972&userID=123532
09:03 agent008 joined #perl6
09:04 pmurias joined #perl6
09:07 araujo joined #perl6
09:08 masak DrForr: initial reaction: it feels a bit odd that those parameters would be positional. they don't "feel" positional in the URL, they feel named
09:09 DrForr Mm, good point.
09:09 pmurias joined #perl6
09:11 DrForr I was mostly focusing on the fact that they're kind of out-of-band, dropping the [] entirely might be the right thing.
09:14 pmurias joined #perl6
09:18 DrForr Yeah, I'm happy with multi GET( 'settings', BlogID :$blogID, UserID :$userID ) {...} since I can typecheck BlogID and UserID.
09:18 DrForr There may be other methods that don't have $blogID, or have userID that doesn't match the UserID type.
09:19 DrForr Plus the : stands out enough that it'll be clear that they're optional.
09:19 pmurias joined #perl6
09:22 themonkeybob11 joined #perl6
09:23 RabidGravy I'll sow a thought in your head while you are thinking of matching things, header fields such a "Content-Type"
09:23 DrForr Well, I was thinking about checking the return value from the method and if $v ~~ JSON, set the content-type to application/JSON.
09:24 ambs joined #perl6
09:24 RabidGravy most things just tend to use e.g. Content-Type to select a mechanism to render the output, but some appplications may want to select a completely different processing model
09:24 pmurias joined #perl6
09:25 FROGGS joined #perl6
09:29 RabidGravy In an imaginary streaming server for instance, one might respond to GET /foo .. Content-Type: application/json with metadata of the stream, to audio/mpeg with a Channel or supply that shovels the stream
09:31 DrForr Well, right now it just populates the content, but I probably should leave more to the handler author than that. Maybe just proffering a 'make-HTML' helper that returns the expected Plack response.
09:32 DrForr Or keep the 'is handler' as is and create a 'is raw-handler' that lets you return what you wish.
09:33 DrForr An "imaginary" streaming server, of course :)
09:48 pmurias joined #perl6
09:49 wamba joined #perl6
10:05 masak oh, so there's a .put method on Mu? that explains the failure mode I'm seeing.
10:10 themonkeybob11 joined #perl6
10:11 RabidGravy chortle
10:11 RabidGravy ls
10:16 _nadim joined #perl6
10:18 _nadim Good morning!
10:18 Actualeyes joined #perl6
10:20 _nadim I am a bit surprised by the Match object that is returned in the second example of this code http://nopaste.linux-dev.org/?981110
10:21 _nadim I was expecting #1 and #2 to return the same. Could someone explain it? code at the bottom is with DDT, clearer and slower to display.
10:21 timotimo if you want to interpolate a regex as code, you have to use <$regex>
10:22 timotimo $regex will stringify the regex and match it as a string
10:22 kalkin-- When working directly on rakudo the Exceptions are pretty much useless :(.
10:22 kalkin-- Error while compiling, type X::UNdeclared::Symbols: routine_suggesion (unstringifiable object)....
10:22 timotimo kalkin--: you're using --ll-exception, right?
10:22 timotimo ah, yeah
10:22 kalkin-- no I'm not, I will try that
10:22 timotimo does it at least tell you what symbols were undeclared?
10:22 kalkin-- nop
10:23 timotimo ll exception probably won't help there
10:23 kalkin-- at line 36881, near ""
10:23 timotimo oh, it could be that's a casualty of the GLR perhaps?
10:24 _nadim timotimo: that would make sense if it worked like you said but it doesn't.
10:24 azawawi joined #perl6
10:24 azawawi hi
10:24 yoleaux 5 Mar 2016 19:34Z <AlexDaniel> azawawi: well, I don't use Atom so I can't tell. It's also very hard for me to imagine switching to atom after all emacs/vim experience I had. So I am not the right person to answer this question ;)
10:24 kalkin-- timotimo: dunno. I'm trying to figure out why some code which just passes some strings does not work if refactored to own sub. Nothing special, but weird...
10:24 RabidGravy that looks like, it's crapping out when it tries to do:
10:24 RabidGravy m: sub foo() {}; fob()
10:24 camelia rakudo-moar 0b69c7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ORlVY8jWjs␤Undeclared routine:␤    fob used at line 1. Did you mean 'foo'?␤␤»
10:24 azawawi we use META6.json or META.json?
10:25 RabidGravy META6.json or META.info
10:25 RabidGravy I think because META6.json is stated in the s22 people are converging on that
10:26 pmurias joined #perl6
10:27 azawawi RabidGravy: and META.info? :)
10:27 timotimo http://nopaste.linux-dev.org/?981127  -  kalkin-- can you try this patch?
10:27 kalkin-- timotimo: just a second
10:27 Skarsnik joined #perl6
10:27 virtualsue joined #perl6
10:28 timotimo m: my $string = 'aaaaaa' ; my $regex = / $<t1> = a $<t2> = a  a/ ; ($string ~~ m:g/$regex/ ).perl.say ;
10:28 camelia rakudo-moar 0b69c7: OUTPUT«(Match.new(ast => Any, list => (), hash => Map.new(()), orig => "aaaaaa", to => 3, from => 0), Match.new(ast => Any, list => (), hash => Map.new(()), orig => "aaaaaa", to => 6, from => 3))␤»
10:28 Skarsnik Hello
10:28 timotimo m: my $string = 'aaaaaa' ; my $regex = / $<t1> = a $<t2> = a  a/ ; ($string ~~ m:g/$regex/ ).say ;
10:28 camelia rakudo-moar 0b69c7: OUTPUT«(「aaa」 「aaa」)␤»
10:28 timotimo m: my $string = 'aaaaaa' ; my $regex = / $<t1> = a $<t2> = a  a/ ; say $regex.Str
10:28 camelia rakudo-moar 0b69c7: OUTPUT«Regex object coerced to string (please use .gist or .perl to do that)  in block <unit> at /tmp/q7FW8AenFR line 1␤␤»
10:29 timotimo oh, right
10:29 jnthn _nadim: /$regex/ will simply call the regex in $regex, but then doesn't save the results anywhere. Note that regexes aren't just strings in Perl 6, so you're not splicing one bit of regex into another, but rather calling one from the other. You'd need something like <xxx=$regex> to capture
10:29 yoleaux 6 Mar 2016 22:38Z <lizmat> jnthn: dd :(&foo:(--> Bool)).params[0]  # seems wrong to have a post-constraint here?
10:29 RabidGravy azawawi, in the META.list:
10:29 yoleaux 02:35Z <timotimo> jnthn: i just pushed a branch "generate_buildallplan", perhaps it'll be a workable starting-point for compiling BUILDALL via the compiler services. it's rather rough, though, and currently asplodes during stage parse.
10:29 yoleaux 02:55Z <timotimo> jnthn: in particular, the nqp::getattr for $!reified really doesn't belong into the generate_buildplan_executor, but rather into compose. and i think i need to low-level-invoke that method in order to have an nqp::list instead of a List there.
10:29 RabidGravy 129 META6.json
10:29 RabidGravy 439 META.info
10:29 RabidGravy 2 META.json
10:29 timotimo well, i guess i should not talk before waking up :)
10:30 kalkin-- timotimo: now i get the error unstringifiable BOOTHash
10:30 timotimo kalkin--: can you paste the whole thing, please?
10:30 kalkin-- timotimo: exceptinon or code?
10:31 timotimo exception, but code might also be helpful
10:31 jnthn .tell lizmat The signature check compiles into a postconstraint; we can't really do it out of nominal typing, I don't think, and don't know we'd want to introduce a whole new mechanism when we can compile it as a constraint.
10:31 yoleaux jnthn: I'll pass your message to lizmat.
10:31 jnthn timotimo: Thanks, will look later today, or tomorrow. :)
10:32 timotimo jnthn: damn, then there was no need to make it half-work before bedtime after all! :P
10:32 _nadim jnthn, timotimo: thank you. the one thing that I slightly dislike is that it adds an extra match, for xxx, which makes it a little different from the original regex
10:33 timotimo _nadim: well, it at least makes things not be surprising when you have a $foo in your regex
10:34 kalkin-- Here are both of them https://gist.github.com/ka​lkin/91bde8660f948b1b56ac my routine which breaks is around line 943-951
10:34 timotimo just from looking at / (foo) $other_regex (bar) / you can tell that foo will be in $0 and bar will be in $1
10:34 _nadim timotimo: indeed. thanks for the golfing, I was writting it but you, again, beat me to it.
10:34 timotimo kalkin--: you'll be getting a patch that'll make that exception print properly in a few minutes
10:35 kalkin-- timotimo: Awesome!
10:37 CIAvash joined #perl6
10:38 _nadim timotimo: and maybe this is a good incitment for not putting regexs in $varable but tokens instead, makes things even clearer.
10:39 azawawi RabidGravy: thx
10:40 * azawawi continues working on LibZip
10:40 timotimo kalkin--: your error was format-line not having a self. in front
10:40 timotimo the patch for getting the error printed properly will land soon, too.
10:41 _nadim my $r = /.../ stringifies but my regex r {} doesn't. Is there a way to get r as a string?
10:41 espadrine joined #perl6
10:42 kalkin-- timotimo: Thanks, I thought i declared it as sub
10:42 skids joined #perl6
10:43 timotimo the error print-out would have told you, except someone changed all those attributes to hashes some time after safely_stringify was made, but nobody saw that error since then
10:43 timotimo that's the problem when you get an exception to fly before its declaration gets parsed
10:43 timotimo we can't just call its .message because that code doesn't exist yet
10:44 kalkin-- Ahh i see
10:45 timotimo but now safely-stringify knows how to deal with BOOTHash and BOOTArray
10:45 timotimo https://gist.github.com/timo/e80e3b24efdb36c2c074  <-
10:46 kalkin-- cool
10:46 timotimo dalek seems to be offline, but i just pushed that commit i was talking about
10:47 timotimo wow, hack.p6c.org in general seems rather unhappy
10:48 sortiz Seems that dalek isn't working.
10:48 timotimo yeah, well, it runs on hack.p6c.org
10:48 kalkin-- timotimo: awesome, I will checkout the changes
10:50 timotimo sortiz: i might know more about the situation once hack lets me in via ssh
10:50 sortiz Well, BDIish v0.1.4 is out: DBDish::Pg now supports Blobs too, and a memory leak fixed in .prepare
10:51 sortiz timotimo, ok. Thanks.
10:52 Skarsnik did you fix the array part? x)
10:54 timotimo moritz: it seems i can't reach hack.p6c.org via ssh at all; collectd also isn't responding. seems like my hands are tied with regards to fixing it
10:55 sortiz Skarsnik, Nop, I need the tests for array behavior to know what need fixing, you'll know where I can find some?
10:56 _nadim I've been away for two months or so. I build the latest and  my first impression was that it was slightly faster but I have a test example that now takes eon (40s, I think it was more like a few seconds before). Has anything changed that I should be aware of tht could trigger this?
10:56 timotimo hm, two months is after the GLR ...
10:56 _nadim GLR?
10:56 timotimo great list refactor
10:56 jnthn Yes, because it's March now, and that was in 2015 :P
10:56 timotimo yeah :)
10:57 timotimo _nadim: does it use any modules at all? it might be precompiling for a long time; you can find out by supplying --stagestats to perl6 and seeing how long stage parse takes (and how often it shows up)
10:57 sortiz Skarsnik, If you are talking about the DBDish Pg array support. :-)
10:57 _nadim timotimo: it's the run time that is a problem
10:58 timotimo i'm just saying since we precompile modules that we use at run-time, it's hard to tell without looking at --stagestats
10:58 masak 007 just got its 400th test! \o/
10:58 timotimo masak: neat! :)
10:58 Skarsnik sortiz, https://github.com/perl6/DBIish/b​lob/master/examples/pg_arrays.p6
10:58 _nadim timotimo: but running twice should eliminate the problem, no?
10:58 timotimo not necessarily
10:59 masak also, implementing `a[1][2] = 3;`-style assignment was a lot easier than I thought.
10:59 timotimo there are things that prevent precompilation from storing its stuff; like use lib after having loaded another module
10:59 timotimo or augment
10:59 _nadim timotimo: Ok. it's been writing the profile file for 5 mn or so, not a good sign either
10:59 timotimo uh-oh, how big's the .html file so far?
11:00 _nadim 256 M
11:00 timotimo hahaha, oh crap :)
11:01 timotimo yeah, your browser won't load that
11:01 _nadim yeah something like that :)
11:01 _nadim probably not
11:01 _nadim yoohoo! it too 9 minutes to write the html file!
11:02 timotimo i think you might be able to extract the general information from the resulting file
11:03 timotimo like how many GC runs it does, or how much time it spends in running/gc/spesh
11:04 _nadim well it definitly crashed in one of the browsers!
11:04 timotimo no surprise to me :D
11:05 sortiz Skarsnik, I thought that azawawi++ had a proper test suite for arrays. :(
11:06 _nadim timotimo: it loaded in firefox, well, it is still but it says 692 GC
11:06 timotimo that's kind of much, but not terribly much
11:07 Skarsnik sortiz, my issue with pg Array is having Array in hash, not Array of Array. For now it give stuff like [['a', 'b'], ] instead of ['a', 'b']
11:07 _nadim 30 000 000 callframes, to put it in perspective, this is a 30 lines data dump.
11:07 timotimo i think i want to see your code :D
11:08 _nadim it says 45% of time in GC, it's still loading in the browser, I can only see glimpses
11:08 timotimo holy moly :)
11:09 _nadim timotimo: panda insta Data::Dump::Tree. The example is examples/JSON_parsed.pl
11:10 virtualsue joined #perl6
11:10 sortiz Skarsnik, Can you write a little test with your expectations?
11:12 timotimo holy crap, that's kinda pretty!
11:13 skids joined #perl6
11:13 _nadim I'll live in the hope that it is about DDT.
11:13 timotimo yeah, the output is pretty
11:14 _nadim it's readable at least. filtering takes one quite long. it's a port of something I did for P5
11:15 _nadim more functionality in the third of the code. who said P6 doesn't rock?!
11:15 timotimo it's also super slow ;)
11:16 _nadim it is slower than .perl but since any output of .perl takes ages to figure out, it's not much slower ;)
11:16 _nadim some things are fast other slow and other DEATH slooooow
11:16 _nadim well, I am waiting for super P6 optimizations ;)
11:16 timotimo well, perf says it's spending 6.5% of its time inside MVM_gc_root_add_frame_roots_to_worklist. and also, 5.15% in MVM_frame_invoke
11:17 _nadim what run time did you get?
11:17 timotimo er
11:17 _nadim it used to be seconds, now I get 40 seconds
11:17 timotimo "too long to be bothered to restart and put 'time' in front"
11:19 timotimo https://imgur.com/LFg2GGN  -  this is fun
11:19 _nadim try the other, eample/all, example/named_captures, ...
11:19 _nadim they are much faster and they have more output
11:19 timotimo you see how a whole lot of stuff has to do with frames?
11:19 timotimo that's another thing on the "to improve" list of our most talented engineers :P
11:19 _nadim my browser is still loading :)
11:20 timotimo https://i.imgur.com/LFg2GGN.png  -  you can wget this one
11:21 _nadim unfortunately I m not well versed in that. But I wonder what in the code could do that. Seriously, examples that output twice as much taken 100th of the time
11:21 timotimo i *think* _int_malloc comes from creating a bunch of Int objects that surpass the 32bit mark
11:22 salv0 joined #perl6
11:22 Skarsnik sortiz, I added a test for it
11:23 timotimo _nadim: if i had to guess i'd say it's heavily dependent on how deep your call stack grows
11:24 _nadim timotimo: and that's what surprises me, there only a few levels in this dump.
11:24 _nadim well it did say 30 10⁶ frames. I'll chase that down.
11:25 pmurias joined #perl6
11:25 sortiz Skarsnik, the pg_array.p6, with a minor change say: name => Bill, pay_by_quarter => [10000 10000 10000 10000], salary_by_month => [511.123 622.345 1], schedule => [[meeting lunch] [training day presentation]] # Seems good to me :)
11:26 Skarsnik duh
11:27 RabidGravy for reference on the performance thing, my naive termcap parser will now do a ful termcap in under a minute, down from around four minutes a year ago
11:28 RabidGravy still not good enough to release the module without some work on optimising it a bit though
11:31 _nadim timotimo: http://imgur.com/JgA7sOJ
11:32 salv0 joined #perl6
11:33 timotimo urgh, that gc time is *painful*
11:34 timotimo worst i've seen is like 10%
11:34 _nadim timotimo: did you try the other examples? I'd to know if they also run rapidelly on other boxes
11:34 timotimo faster
11:34 timotimo the last bit of named_captures is also slow, for example
11:37 _nadim as soon as I get in grammars and such, things get slower. Debug time!
11:37 Skarsnik sortiz, hm, it crash for me Method 'of' not found for invocant of class 'Int' did you fix that?
11:38 timotimo well, grammars aren't super crazy fast, either
11:38 kid51 joined #perl6
11:39 sortiz Skarsnik, wait a minute... About to commit with test included passing....
11:40 _nadim the parsing is fast, it's when displaying the results. maybe some part are computed each time. but again, this was much faster 2 months ago (I should be careful when I say that :) )
11:40 timotimo oh, hm
11:40 timotimo well, can you find a version close to the one that makes it go slow?
11:43 timotimo i wanted to make a named_captures that only does the last piece
11:43 timotimo but instead of just the last part i get Method 'line' not found for invocant of class 'Cursor'
11:44 timotimo oh, of course
11:44 timotimo forgot to uncomment "my regex line"
11:44 _nadim :)
11:45 moritz timotimo: I'm rebooting hack right now
11:45 dalek joined #perl6
11:45 synopsebot6 joined #perl6
11:46 timotimo moritz: at least this time we have collectd's logged data
11:46 timotimo thank you, moritz :)
11:46 moritz timotimo: I can give you access on the hypervisor, so that in future you can also reboot hack
11:47 dalek DBIish: f0f776d | (Salvador Ortiz)++ | / (2 files):
11:47 dalek DBIish: DBDish::Pg: Fixes for array handling
11:47 dalek DBIish: review: https://github.com/perl6/DBIish/commit/f0f776d153
11:47 themonkeybob11 joined #perl6
11:47 timotimo hurm. i could reboot it, but could i do anything to make it better without rebooting?
11:47 timotimo wow, that was kind of fast
11:47 moritz timotimo: dunno
11:47 timotimo hmm
11:47 timotimo logging in as root via a serial console kind of deal?
11:48 moritz timotimo: no; install virt-manager (a gui program), and enter root@master.p6c.org as an ssh connection
11:48 moritz timotimo: are you coming to the hackathon on Saturday? If yes, I can show you there
11:49 timotimo i'll come!
11:49 timotimo it's on the 12th, yeah? this saturday?
11:49 sortiz Skarsnik, Can you give it a try?
11:49 moritz timotimo: correct
11:50 timotimo i'm connected!
11:50 moritz timotimo: I'll create a wiki page for the hackathon, and give you the link when it's done
11:50 timotimo lovely :)
11:50 timotimo wow, hack has been down for a *long* time
11:52 timotimo well, i can see hack's TLB irq spiked before collectd stopped collecting
11:52 timotimo the load didn't increase a crazy amount before it went belly-up
11:52 timotimo and there was still memory free
11:53 timotimo the fork rate spiked quite ab it
11:53 timotimo a bit*
11:53 rjbs jnthn++ latest blog post: interesting!
11:54 perlawhirl joined #perl6
11:54 perlawhirl hi perlers
11:54 Skarsnik sortiz, I can't find code that use it, huhu
11:55 DrForr Hody.
11:55 DrForr (that'd be the Western version of 'Hodor')
11:58 timotimo ournalctl -r -b -1  ->  Failed to look up boot -1: Cannot assign requested address
11:58 timotimo that's a really weird error to have
11:59 timotimo systemd versions >= 223 will show "-- No entries --" instead. Are you running at least 223?
12:00 timotimo so it just didn't keep the data around
12:01 timotimo so ... the journal from before the crash are completely gone? :\
12:02 perlawhirl what would be the best way to watch 2 files in different paths, but have the same action performed
12:02 jnthn perlawhirl: merge
12:03 timotimo http://doc.perl6.org/type/Supply#method_merge
12:03 timotimo huggable: Supply.merge
12:03 huggable timotimo, nothing found
12:03 timotimo huggable: Supply::merge
12:03 huggable timotimo, nothing found
12:03 timotimo hmm.
12:03 jnthn perlawhirl: http://doc.perl6.org/routine/merge
12:03 jnthn oh, timotimo beat me to it :P
12:03 sno joined #perl6
12:03 * timotimo falls over for a short while
12:04 timotimo i was thinking "maybe i'm tired during the day because of my allergy medicine. and since it's basically freezing outside, are there any pollen out there at all anyway? i should try skipping.
12:04 Skarsnik sortiz, I remember what annoyed me with these array. This does not work
12:05 timotimo now i'm tired *and* actively allergically reacting to the pollen >_>
12:05 Skarsnik https://gist.github.com/Ska​rsnik/5970cec31a4b906b324a
12:05 moritz timotimo: get well soon
12:06 perlawhirl thanks all <timotimo huggable jnthn>
12:06 jnthn timotimo: urgh :(
12:08 RabidGravy perlawhirl, "my @paths = ".", "/tmp", "/var"; my $supply = Supply.merge(@paths.map({ $_.IO.watch })); react { whenever $supply { say $_; } }"
12:08 RabidGravy by  way of concrete working example
12:09 RabidGravy more verbose versions are available ;-)
12:10 Skarsnik oh there is a IO.watch? look neat
12:10 sortiz Skarsnik, I think that I can fix that...
12:11 RabidGravy I think that was one of the first features that made me really go OoOOOoooOOOooh
12:12 perlawhirl thanks Rabid... I was on my way there... already had a react block. I'll be back if i get stucl :D
12:12 Skarsnik sortiz, good luck, I give up try to find how to bind or not to have the right form of array in the hash x)
12:13 DrForr I'll have to remember the .watch business to impleemnt the restart stuff in Prancer.
12:13 RabidGravy :)
12:14 kaare_ joined #perl6
12:14 perlawhirl RabidGravy: yep all working. my files are already IO objects, so it was a simple matter of $s = Supply.merge($file1.watch, $file2.watch);
12:14 RabidGravy yay!
12:15 RabidGravy groovetastic!
12:15 jnthn suppliesingly easy async \o/
12:15 perlawhirl also using $s.stable(1) so as only to trigger once per change... a file update triggers 4 changes on linux, so stable comes in handy
12:15 sortiz Skarsnik, now the rest of code uses real types, but the array path uses the old strings, I will change that.
12:15 perlawhirl jnthn: HAH!
12:16 DrForr https://www.youtube.com/watch?v=5AplRigbvtI
12:16 Skarsnik sortiz, it's not the type affection, it's more the fact the new/build construction does not see $[] as array to give to an array attribute
12:18 jnthn .oO( Type affection? Like role Cuddle[::T] { ... } )
12:20 jnthn lunch &
12:21 sortiz Skarsnik, Inside an array all elements are itemized, but can be of any type, I only need to propagate the needed type to the generic constructor.
12:24 rindolf joined #perl6
12:27 perlawhirl RabidGravy: fwiw, if your paths are already IO objects, you can do Supply.merge(@paths».watch)
12:27 RabidGravy yaw
12:27 RabidGravy I'm a "hyper denialist"
12:28 RabidGravy if you want a full featured example of "doing stuff on file changes" you may be interested in https://github.com/jonathanstowe/Tin​ky/blob/master/examples/encode-files
12:28 perlawhirl hah, i'm on the fence. they are not yet hyper, and map is more explicit
12:29 perlawhirl cool, will check it out
12:32 masak joined #perl6
12:33 perlawhirl RabidGravy: OH! btw... in your code samples in README.md... you can can get syntax highlighting with ```perl6
12:35 themonkeybob11 joined #perl6
12:40 RabidGravy Oooh you learn something new everyday :)
12:40 sufrostico joined #perl6
12:41 perlawhirl yeah, i learned it when someone told skids on here.
12:47 sortiz Skarsnik, your stuff need something like:       got: ${:name("Bill"), :pay_by_quarter(Array[Int].new(10000, 10000, 10000, 10000)), :salary_by_month(Array[Num].new(511.123e0, 622.345e0, 1e0)), :schedule($[Array[Str].new("meeting", "lunch"), Array[Str].new("training day", "presentation")])} ?
12:47 Skarsnik hm, maybe?
12:48 sortiz With the change, the new test fails ;)
12:49 Skarsnik I just remember than when it was giving me [[porper array],]; doing %h<k> = %k<k>[0]; and Class.new(|%h) worked
12:58 themonkeybob11 joined #perl6
13:06 musiKk_ joined #perl6
13:24 _nadim Given class C is B is A and B and A defining method something. How can I force calling a specifc class' method?
13:25 moritz _nadim: yes, self.A::something()
13:25 _nadim thank you
13:36 [Coke] joined #perl6
13:37 * [Coke] crawls his way back onto IRC.
13:37 masak [Coke]: welcome back!
13:37 RabidGravy no crawling, skipping or bounding are permissible but not crawling
13:38 DrForr What about sillywalks?
13:38 RabidGravy silly walking iss fine
13:39 masak unless it's so silly it's actually crawling
13:41 [Coke] irssi question: any idea why some channels I have saved come back as just (e.g.) (8:freenode) with no indication of what channel it actually was?
13:41 * [Coke] gives up on trying to review post-disconnect.
13:42 jast tends to happen if irssi remembers what used to be in that window but didn't actually rejoin the channel
13:43 jast e.g. if you saved the channel without the -auto flag or the server prevented you from rejoining at the time you connected
13:43 themonkeybob11 joined #perl6
13:45 _nadim timotimo: well, I found something that made it twice as slow. and when I think about it ... I was pretty stupid. I have $s.perl ne 'Mu', which means that everything was rendered add nauseum!
13:45 _nadim How do I compare a variable to Mu?
13:46 [Coke] m: my Mu $a; say 3 ~~ Mu; say $a ~~ Mu; # checking
13:46 camelia rakudo-moar 2f78f0: OUTPUT«True␤True␤»
13:48 _nadim mmm, bleahh, I tried that something didn't work. thanks I'll try again, makes the tast go from 40 s to less than 2 secs.
13:48 rudi_s Hi. Is there a glob in perl6?
13:49 moritz nope
13:49 rudi_s So I'll have to use dir and then filter with a regex?
13:49 jnthn rudi_s: No, but there's an IO::Glob module available
13:50 moritz and there no "type globs" (p5 thingy) either :-)
13:53 _nadim m: my $a ; say $a ~~ Mu
13:53 camelia rakudo-moar 2f78f0: OUTPUT«True␤»
13:53 RabidGravy _nadim, >
13:53 RabidGravy m: my Mu $a; my Int $b;  say $a.WHAT =:= Mu, $b.WHAT =:= Mu
13:53 camelia rakudo-moar 2f78f0: OUTPUT«TrueFalse␤»
13:54 _nadim thank you, everything matches Mu that's why I did a stupid hack
13:54 RabidGravy yep
13:54 _nadim what's the =:=, compared to ==
13:55 _nadim or ~~
13:55 RabidGravy the ~~ will match all superclasses and roles (so almost always true with Mu)
13:55 sortiz Skarsnik, Done. You just need to make an automatic class constructor...
13:56 _nadim RabidGravy: and the fantasmagoric =:=
13:56 RabidGravy the =:= is "container identity"
13:57 RabidGravy so the variable's .WHAT and the type Mu are the same thing
13:57 _nadim m: my Mu $a; my Int $b;  say $a.WHAT !=:= Mu ;
13:57 camelia rakudo-moar 2f78f0: OUTPUT«False␤»
13:58 perlawhirl left #perl6
13:59 _nadim RabidGravy: I  wrote "I also had the pleasure to meet Mu, although theorically you can't meet Mu." I should have write the displeasure.
14:02 rudi_s How can I match a variable verbatim, like \Q..\E in perl5?
14:03 masak rudi_s: that's the default
14:03 masak m: my $x = "fo+"; say "fo+" ~~ /^ $x $/; say "foooo" ~~ /^ $x $/
14:03 camelia rakudo-moar 2f78f0: OUTPUT«「fo+」␤Nil␤»
14:04 masak m: my $x = "fo+"; say so "fo+" ~~ /^ $x $/; say so "foooo" ~~ /^ $x $/
14:04 camelia rakudo-moar 2f78f0: OUTPUT«True␤False␤»
14:05 jnthn rjbs: Just spotted http://www.nntp.perl.org/group/perl.​perl5.porters/2016/03/msg234775.html in the p5p weekly summary; bit tied up with other $dayjob tasks to read the whole thread and see if it was mentioned, but Perl 6 does have qqw, if you want to nab some design :)
14:05 Skarsnik sortiz, ?
14:07 sortiz Skarsnik, for the binding to work the class needs a BUILD submethod, that's all.
14:08 pmurias joined #perl6
14:08 mzgcz joined #perl6
14:09 pmurias where do the result of TPF grant applications get announced? news.perlfoundation.org?
14:10 Skarsnik sortiz, I don't know, this work (worked?) for me https://github.com/Skarsnik/fimstuf​f/blob/master/StoryFactory.pm6#L75 tags and character tags are both Array[Str] and the Story class does not have a constructor/build defined
14:11 jnthn pmurias: Yes, though you may receive notification by email before that happens too.
14:12 jnthn And if you're me, a week after that email you'll get bored of waiting and let the cat out of the bag yourself. :P
14:12 rudi_s masak: Thank you.
14:13 * jnthn gets the impression tpf++ could use more volunteers :)
14:14 lizmat people at TPF are volunteers, just like the rest of us
14:14 yoleaux 10:31Z <jnthn> lizmat: The signature check compiles into a postconstraint; we can't really do it out of nominal typing, I don't think, and don't know we'd want to introduce a whole new mechanism when we can compile it as a constraint.
14:14 [Coke] jnthn: it's an oddly run beast.
14:15 [Coke] (they have GC volunteers, for example, who could probably do more else-ways, but I don't think thtat's generally tapped)
14:15 lizmat jnthn: so a post constraint implies a runtime check, so a mismatch at compile, right?
14:16 nine jnthn: indeed. I've been trying to set up recurring donations to the P6 core fund for three months. Progress is slooow...
14:18 jnthn lizmat: I'm...confused? :)
14:18 awwaiid hoelzro: in your n-gram post, Dumb nit -- In your "Extracting n-grams" section code snippet, you should indent the inline Perl 6 code a nice 4 spaces or something. Rakudo won't care that everything has whitespace in the front, and your script will read better :)
14:19 jnthn lizmat: Oh, you mean that since the check is runtime, then we can't compare them at compile time?
14:19 lizmat m: dd :(&foo:()) ~~ :(&foo:())  # jnthn
14:19 camelia rakudo-moar 2f78f0: OUTPUT«Bool::True␤»
14:19 lizmat this should be false
14:19 lizmat jnthn: indeed
14:20 lizmat even though the signatures look identical, we can't be sure from introspection
14:20 lizmat because we can't look into the post constraint
14:20 jnthn lizmat: Yeah, we certainly can't with the current way we handle that.
14:21 jnthn Though
14:21 jnthn m: say :(&foo:()).perl
14:21 camelia rakudo-moar 2f78f0: OUTPUT«:(&foo where { ... })␤»
14:21 jnthn m: say :(&foo:()).params[0].constraints
14:21 camelia rakudo-moar 2f78f0: OUTPUT«all(-> ;; $_ { #`(Block|83355984) ... })␤»
14:21 jnthn Yeah, we can't :)
14:21 jnthn m: say :(1).params[0].constraints
14:21 camelia rakudo-moar 2f78f0: OUTPUT«all(1)␤»
14:21 lizmat ok, so if a spectest relies on it being possible, it's wrong  :-)
14:22 jnthn Though I wonder...
14:22 jnthn m: say sub foo($x) { } ~~ :($x)
14:22 camelia rakudo-moar 2f78f0: OUTPUT«False␤»
14:22 lizmat jnthn: that one, will work
14:22 sortiz Skarsnik, Two things changed: Now the produced arrays are in fact Typed and the resulting hash is used directly. Works well. And make sense, through a generic public accessor you can assign, but not bind to the arrays, needed for types preservation.
14:22 lizmat m: dd :(6) ~~ :(6)
14:22 camelia rakudo-moar 2f78f0: OUTPUT«Bool::True␤»
14:22 jnthn If code objects smart-matched against signatures properly, then we could actually maybe make it work
14:22 lizmat because the post-constraint is actually stored as a value
14:22 jnthn By storing the signature directly in the constraint
14:23 jnthn Because all we do is smart-match against it
14:23 hoelzro awwaiid: thanks for the suggestion; just made the change!
14:23 lizmat jnthn: yeah, I could see that work
14:23 masak I just saw https://shimmeryfairy.wordpress.com/2​016/02/26/to-perl-6-and-now-im-gone/
14:23 masak for those of you looking for the whole quote at the end of it, it's here: http://irclog.perlgeek.de/p​erl6/2016-01-19#i_11909557
14:23 * lizmat wonders if masak reads the P6W  :-)
14:24 masak lizmat: yes, that's where I found it :)
14:24 masak I'm an irrgular reader, but jnthn said something that reminded me of p6w
14:24 rjbs jnthn: yeah, may have a look at subtleties of p6 qqw
14:24 lizmat masak: I think we should let ShimmerFairy work things out for herself
14:25 lizmat I mean, if the Eagles can get together again  :-)
14:25 lizmat *could
14:25 masak troo
14:25 masak well, one can hope
14:26 awwaiid hoelzro: looks nice! Also good article :)
14:26 [Sno] joined #perl6
14:26 Ulti jnthn just as an FYI between 26th Feb Rakudo and from 5 minutes ago my code has gone from 71.3% JIT compiled frames down to 62.6% and takes a bit longer
14:27 Ulti I can put the profiles somwhere for you if that is useful
14:27 hoelzro thanks! glad you enjoyed it =)
14:27 awwaiid hoelzro: what does ">|" in shell do? and now that I'm looking again you're missing the ;done
14:27 jnthn masak: While it's a pity, I also don't really think pointing fingers at other volunteers and saying "you fucked up" is the kind of atmosphre I want in Perl 6 development.
14:28 masak agreed.
14:29 molaf joined #perl6
14:29 jnthn Ulti: Interesting. Does the number of inlined frames change between the two?
14:29 geekosaur awwaiid, in bash it toggles the "must (not) exist" check
14:30 jnthn Ulti: If yes, I wonder if we bail on JITting some things.
14:30 masak maybe what this highlights is that "be nice" (and S27) and "principle of charity" isn't always enough. sometimes people just end up bummed out and leave.
14:30 Ulti yeah 17.5% inlined upto 20.3% a lot of the frames lost from JIT appear to be in the specialised
14:30 Ulti so is that just them being inlined instead?
14:30 awwaiid geekosaur: mmm. I don't know what that means :) . ohh -- for the redirect file it's putting it into?
14:30 geekosaur yes
14:30 RabidGravy Eagles getting back together again?  NO!
14:31 Ulti the speed is probably about the same all things considered given its just a single data point
14:31 awwaiid ah. and found a ref now with those keywords -- http://unix.stackexchange.com/qu​estions/45201/bash-what-does-do
14:31 awwaiid thanks!
14:31 * RabidGravy destroys "country rock" with fire
14:31 Ulti and the variance on speed is measured in seconds
14:31 Ulti I always run a few times to get things in IO cache though
14:31 jnthn Ulti: Well, I think the way we measure JIT or not in the profiler is smart enough to keep that number consistent despite inlining
14:32 jnthn Ulti: So if we're JITting less now then it really does mean we're not JITting something we used to
14:32 hoelzro awwaiid: >| overrides noclobber
14:32 Ulti jnthn oh :(
14:32 awwaiid ah, and I have noclobber=off
14:32 Ulti whatever it is must be quite minor at least to my code
14:32 jnthn Ulti: Could you set MVM_JIT_LOG=jit_log and run it with that?
14:32 jnthn And gist/send me the resulting file?
14:32 Ulti I can on the latest version
14:32 jnthn Sure, that's enough
14:32 Ulti k k
14:33 jnthn It should tell me what particular non-JITted ops we block on
14:38 dalek rakudo/nom: bb0eab2 | lizmat++ | src/core/Parameter.pm:
14:38 dalek rakudo/nom: Include post constraint in Parameter.ACCEPTS
14:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bb0eab24f7
14:40 dalek rakudo/repl6: f6c5b23 | hoelzro++ | src/ (2 files):
14:40 dalek rakudo/repl6: Provide callback in adverbs for signalling more input
14:40 dalek rakudo/repl6:
14:40 dalek rakudo/repl6: There's really no good interface for signalling that we need
14:40 dalek rakudo/repl6: more input, especially across the NQP↔Perl 6 boundary.  Ideally,
14:40 dalek rakudo/repl6: I would make eval return multiple values, and the second value
14:40 dalek rakudo/repl6: (or something) would signal multi-line input, but that would change
14:40 dalek rakudo/repl6: the interface, and potentially upset anyone using NQP outside of the
14:40 dalek rakudo/repl6: Rakudo effort.
14:40 dalek rakudo/repl6: review: https://github.com/rakudo/rakudo/commit/f6c5b23f2b
14:42 masak also, ShimmerFairy seems to have wrongly concluded that the biggest problem with her approach was the lack of an apology. when the problem was more that she was being grating, accusing, and unconstructive.
14:43 ParsonsNose joined #perl6
14:45 Ulti jnthn was too big for gist http://mattoates.co.uk/files/perl6/BioInfo_jit_l​og_rak2016.02-95-g2f78f05_moar2016.02-8-ga329e2d
14:45 dalek roast: af717d6 | lizmat++ | S03-smartmatch/signature-signature.t:
14:45 dalek roast: Mark now failing test as TODO
14:45 dalek roast:
14:45 dalek roast: Because Parameter.ACCEPTS also includes post constraint checking since
14:45 dalek roast: bb0eab24f7e8a2f1 and having a Callable as a post constraint will always
14:45 dalek roast: fail the smart match (because we can not introspect the Callable), and
14:45 dalek roast: the signature on a Callable ( like :(&foo:() ) is compiled as a Callable,
14:46 dalek roast: this test no longer succeeds.
14:46 dalek roast:
14:46 dalek roast: Discussion at http://irclog.perlgeek.de/p​erl6/2016-03-07#i_12149245
14:46 dalek roast:
14:46 dalek roast: Since the idea posted there would be to store the signature directly in
14:46 dalek roast: the post constraint, I've todoed this test for better times.
14:46 dalek roast: review: https://github.com/perl6/roast/commit/af717d65d9
14:46 [Coke] does that change in roast mean we're breaking a 6.c test?
14:47 lizmat [Coke]: yes, the todo will be needed in 6.c-errata as well
14:51 brrt joined #perl6
15:02 dalek roast/6.c-errata: 2c19daf | lizmat++ | S03-smartmatch/signature-signature.t:
15:02 dalek roast/6.c-errata: Mark now failing test as TODO
15:02 dalek roast/6.c-errata:
15:02 dalek roast/6.c-errata: Because Parameter.ACCEPTS also includes post constraint checking since
15:02 dalek roast/6.c-errata: bb0eab24f7e8a2f1 and having a Callable as a post constraint will always
15:02 dalek roast/6.c-errata: fail the smart match (because we can not introspect the Callable), and
15:02 dalek roast/6.c-errata: the signature on a Callable ( like :(&foo:() ) is compiled as a Callable,
15:02 dalek roast/6.c-errata: this test no longer succeeds.
15:02 dalek roast/6.c-errata:
15:02 dalek roast/6.c-errata: Discussion at http://irclog.perlgeek.de/p​erl6/2016-03-07#i_12149245
15:02 dalek roast/6.c-errata:
15:02 dalek roast/6.c-errata: Since the idea posted there would be to store the signature directly in
15:02 dalek roast/6.c-errata: the post constraint, I've todoed this test for better times.
15:02 dalek roast/6.c-errata: review: https://github.com/perl6/roast/commit/2c19daf7db
15:07 _nadim .tell timotimo new version of DDT is waiting for merge in ecosystem. the example that took 42 seconds  this morning takes less than 2 seconds.
15:07 yoleaux _nadim: I'll pass your message to timotimo.
15:11 jnthn Ulti: Thanks, that's useful.
15:11 FROGGS joined #perl6
15:11 AlexDaniel joined #perl6
15:13 dalek ecosystem: c8c3707 | (Nadim Khemir)++ | META.list:
15:13 dalek ecosystem: CHANGED: v1.0.2
15:13 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/c8c3707bf9
15:13 dalek ecosystem: 653a904 | jnthn++ | META.list:
15:13 dalek ecosystem: Merge pull request #167 from nkh/master
15:13 dalek ecosystem:
15:13 dalek ecosystem: CHANGED: v1.0.2
15:13 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/653a9044d5
15:14 lizmat jnthn: fwiw, [Tux]'s test-t also saw a bit of a drop in performance that looked like it was just outside of noise range
15:14 jnthn lizmat: Yeah, maybe it could be attributed to similar causes
15:15 |Tux| sorry I missed timings during the past week, but the promised WiFi in the appartment was apparently non-existent
15:15 |Tux| http only and very very very instable (if it did last for more than 5 minutes at all)
15:19 lizmat [Tux]: you were on holiday!   :-)
15:20 RabidGravy Gah! Everything I touch explodes into a whole himalaya of yaks
15:20 * lizmat knows the feeling :-)
15:22 rindolf joined #perl6
15:22 * [Coke] has temporarily solved that by not hacking on things!
15:22 * [Coke] is not happy with this arrangement.
15:23 brrt left #perl6
15:26 * _nadim is looking for a some ugly, big, blobby, umpossible to read, the more complex the better, data structures to dump. Either the data structures or how to generate them.
15:26 dalek rakudo/nom: f1bfd5a | lizmat++ | src/core/Parameter.pm:
15:26 dalek rakudo/nom: Oops, we should .ACCEPTS instead of eqv
15:26 dalek rakudo/nom:
15:26 dalek rakudo/nom: Which, btw, will also handle the case when we store the signature in
15:26 dalek rakudo/nom: the post constraint in the future
15:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1bfd5ac17
15:28 AlexDaniel jnthn++ # less memory leaks, yeaaa!
15:34 damnlie joined #perl6
15:35 jnthn m: sub bs-ds($n) { my @p = item {}; for ^$n { my $ds = (Hash, Array).pick.new; my $to = @p[(^@p).pick]; $to ~~ Hash ?? ($to{join '', ('a'..'z').pick xx 5} = $ds) !! $to.push($ds); @p.push($ds) }; @p[0] }; say bs-ds(50).perl
15:35 camelia rakudo-moar f1bfd5: OUTPUT«${:hrhjp(${:ezefp($[]), :oeygr(${}), :uepmn(${}), :xscyk($[])}), :njbjq($[[[[], [[],]], {:llmow($[[],])}, {}], [[[[], [{},]],], [{:gbeme(${}), :riipy($[])}, {:qpeun(${})}]], [[[[{},],], [{:fgalc(${:kndui(${:dgxck($[])})})}, []]], {}], {:vdkmt(${})}]), :vpa…»
15:35 jnthn _nadim: ^^ random crap data structure generator ;)
15:35 Skarsnik huhu
15:40 lizmat m: dd :($a,$b) ~~ :($a ;; $b)   # jnthn: another case of WAT?  should this be true?
15:40 camelia rakudo-moar f1bfd5: OUTPUT«Bool::True␤»
15:44 hoelzro joined #perl6
15:44 jnthn lizmat: Good question. :)
15:44 jnthn lizmat: It doesn't affect the set of accepted values
15:44 jnthn lizmat: It does of course affect how it multi-dispatches
15:45 lizmat so you're saying, for the Parameter.ACCEPTS,it shouldn't matter
15:45 lizmat but for the Signature.ACCEPTS it should ?
15:45 jnthn Tricky :)
15:47 lizmat I try not to ask dumb questions  :-)
15:56 lizmat FWIW, making it affect Parameter.ACCEPTS:
15:56 lizmat $ 6 'dd :($a ;; $b).params[1] ~~ :($a,$b).params[1]'
15:56 lizmat Bool::False
15:56 lizmat does not cause any spectest errors
15:59 jnthn lizmat: I think that, since we use this to decide if two multis are "the same" for the purpose of role composition, we have to consider the ;;
16:00 jnthn lizmat: I'm not sure it's worth the complexity of lifting that logic out of Parameter and into Signature
16:00 _nadim jnthn: I am trying it right now!
16:01 lizmat ok, I'll leave it in Parameter then for now
16:03 dalek rakudo/nom: c7be33a | lizmat++ | src/core/Parameter.pm:
16:03 dalek rakudo/nom: Parameter.ACCEPTS checks being part of MMD
16:03 dalek rakudo/nom:
16:03 dalek rakudo/nom: As discussed at http://irclog.perlgeek.de/p​erl6/2016-03-07#i_12149632
16:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c7be33ad06
16:07 somesymbols joined #perl6
16:09 skids _nadim: I would think any modern dynamically generated webpage would parse into something sufficiently ugly, big, blobby, and impossible to read for most purposes :-)
16:10 _nadim skids: indeed
16:10 _nadim jnthn: look what you've done! http://imgur.com/nlDLl6r
16:11 _nadim but I think data structures from P6 modules would be neat as they would test for types that I may not have support for.
16:12 skids Try it on some Match objects?  Maybe something in Grammar::BNF.
16:13 somesymbols Do something more convenient exists instead of --- @*ARGS=QX('DIR/B *.csv').split(/\n/) --- for gettings arguments in one-liner  in windows?
16:13 musiKk_ joined #perl6
16:13 _nadim I do try grammars and such. Just added support for callframes too.
16:14 _nadim somesymbols: what about calling you script with dir/b/*.cvs as arguments and use the standard parsing?
16:15 jnthn _nadim: Oh my... :)
16:15 geekosaur _nadim, they want the result of that, not the strings themselves
16:15 geekosaur and windows doesn't have $()
16:15 Actualeyes joined #perl6
16:16 themonkeybob11 joined #perl6
16:17 jnthn somesymbols: dir(test => /\.csv/) maybe
16:18 lizmat I will be away for a few hours, and when back: work on the P6W
16:19 lizmat PSA: so if you have any news you want in there, let me know by privmsg or here on the channel
16:19 lizmat &
16:19 cognominal m: sub bs-ds($n) { my @p = item {}; for ^$n { my $ds = (Hash, Array).pick.new; my $to = @p[(^@p).pick]; $to ~~ Hash ?? ($to{join '', ('a'..'z').pick xx (1..5).pick} = $ds) !! $to.push($ds); @p.push($ds) }; @p[0] }; say bs-ds(10).perl
16:19 camelia rakudo-moar c7be33: OUTPUT«${:b($[{:qftq(${:votm($[])})},]), :sk($[[],]), :w(${}), :xte(${})}␤»
16:28 _nadim cognominal: that's why I can wait 5 secs to get something like this http://imgur.com/nlDLl6r
16:29 _nadim honestly, as soon as there is some quantity, .perl becomes difficult to read.
16:29 somesymbols _nadim: I need to mimic P5's magic diamonds ( <> )
16:29 FROGGS .perl is not meant to be read, .gist however is
16:30 timotimo moo
16:30 yoleaux 15:07Z <_nadim> timotimo: new version of DDT is waiting for merge in ecosystem. the example that took 42 seconds  this morning takes less than 2 seconds.
16:30 _nadim somesymbols: got that from the explanation
16:30 _nadim FROGGS: I must admit that I have not used it much. Did use Data::Dump but it fails a tad too often at unexpected data.
16:33 rudi_s Can I access the current list of available subs? I know MY::.keys gets me local variables, but how do I get the subs?
16:33 FROGGS we currently just have two things: .perl which is meant to round-trip but is not meant to be seen by human eyes and whe have .gist which should like nice but is allowed to loose data
16:33 hoelzro rudi_s: all subs? even those from the standard library?
16:33 hoelzro if so, you probably want CORE::.keys.grep(/^ '&'/)
16:33 FROGGS a .perl that looks nice would be nice though I guess
16:33 FROGGS bbl
16:34 rudi_s hoelzro: All subs is fine, thank you.
16:34 hoelzro m: .say for CORE::.keys.grep(/^ '&'/)
16:34 camelia rakudo-moar c7be33: OUTPUT«&callframe␤&flat␤&RETURN-LIST␤​&infix:<∖>␤&splice␤&postcircumfix:<{ }>␤&callsame␤&GATHER␤&sinh␤&infix:<lt>␤​&print␤&asech␤&GENERATE-ROLE-FROM-VALUE​␤&infix:<eq>␤&ORDER␤&append␤&METAOP_TES​T_ASSIGN:<&&>␤&METAOP_HYPER_POSTFIX…»
16:35 AlexDaniel .u ∖
16:35 yoleaux U+2216 SET MINUS [Sm] (∖)
16:36 cdg joined #perl6
16:36 timotimo _nadim: i'm glad the time improved; maybe now a profile can be made that doesn't explode?
16:36 timotimo .perl can generate some deep call traces
16:36 _nadim most probably :)
16:37 rudi_s hoelzro: Hm. Doesn't seem to work.
16:37 rudi_s m: sub foo() { }; say CORE::.keys.grep(/'foo'/).say
16:37 camelia rakudo-moar c7be33: OUTPUT«()␤True␤»
16:37 rudi_s m: sub foo() { }; say CORE::.keys.grep(/'foo'/).perl
16:37 camelia rakudo-moar c7be33: OUTPUT«().Seq␤»
16:37 hoelzro rudi_s: that's because foo isn't in CORE.setting
16:37 hoelzro CORE:: is just what's in CORE.setting
16:37 hoelzro sorry if my suggestion was misleading
16:37 rudi_s np - I want to get all subs.
16:38 rudi_s Including my subs (only my subs is fine, but if all get included that's fine too).
16:38 hoelzro there might be a pseudostash you can use for "everything in scope", but afaik, you need to look at CORE::, MY::, and possibly a few others
16:38 somesymbols jnthn: @*ARGS=dir(test=>/\.csv/).map(*.Str) --- works fine but not convenient for oneliners
16:38 AlexDaniel somesymbols: what are you trying to do?
16:39 rudi_s hoelzro: Ah, it's in MY:: - not sure how I missed that. Thank you.
16:39 AlexDaniel ah, <>
16:39 timotimo if you're golfing, you can ~<<blah instead of blah.map(*.Str)
16:40 AlexDaniel somesymbols: what about ~«dir(test=>/\.csv/) ? :)
16:40 donaldh joined #perl6
16:41 AlexDaniel m: .say for ~«dir
16:41 camelia rakudo-moar c7be33: OUTPUT«.cpanm␤.local␤.npm␤.perl6␤.perlbrew␤​.rcc␤.ssh␤Perlito␤evalbot␤log␤niecza␤nqp-js​␤p1␤p2␤perl5␤rakudo-inst-1␤rakudo-inst-2␤ra​kudo1␤rakudo2␤star-2014.09␤std␤.bash_histor​y␤.bashrc␤mbox␤.lesshst␤evalbot.log␤.cp…»
16:42 timotimo _nadim: my modified version of named_captures is now way too fast to be interesting for performance analysis :P
16:43 khw joined #perl6
16:43 mspo should camelia be allowing that sort of thing?
16:43 somesymbols AlexDaniel: not bad but only windows10 can handle utf8 from stdin
16:43 _nadim timotimo: I told you that it was faster than what we had :)
16:43 timotimo well, yeah
16:43 timotimo "faster" doesn't quite do it justice :D
16:44 _nadim I'd like it to be a tad faster but it is, IMO, usable
16:44 _nadim can't get bell and whisltles without spending time on them.
16:44 AlexDaniel m: spurt ‘test’, ‘hello world’
16:44 camelia rakudo-moar c7be33: OUTPUT«spurt is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub spurt at src/RESTRICTED.setting line 17␤  in block <unit> at /tmp/0wYnpM67Uy line 1␤␤»
16:45 _nadim gist is indeed better but still, anything a tad long become a pain. even without color, filtering, ... I still need something a bit better.  http://nopaste.linux-dev.org/?981948
16:45 timotimo browser's having some difficulty with the profiles, still :|
16:46 _nadim timotimo: change browser, Chrome died on me, firefox took ages but managed
16:46 timotimo heh.
16:47 AlexDaniel geez some dir bug…
16:47 timotimo huh, firefox really does manage
16:49 rudi_s hoelzro: Any idea how to get this working if I use this with EVALFILE? I have sub foo() { }; EVALFILE 't.p6'; and in t.p6 I can call foo, but MY:: and OUTER:: doesn't list foo.
16:50 hoelzro rudi_s: what about OUTERS:: ?
16:50 hoelzro I think LEXICAL:: covers all of it, now that I'm looking at S02-bits
16:52 rudi_s hoelzro: Neither work.
16:53 timotimo _nadim: it's a bit hard to sort by exclusive time in firefox ... :S but at least it doesn't outright crash
16:53 hoelzro rudi_s: don't work how?
16:53 hoelzro NYI, or?
16:54 _nadim timotimo: maybe raw data in a perl structure that one can manipulate would be easier
16:54 timotimo you can get that
16:55 timotimo just --profile-filename=foo.json
16:55 timotimo and then use the qt profiler from tadzik's github
16:55 timotimo it doesn't analyze as much of the info, though
16:55 rudi_s hoelzro: Sorry, no output. It doesn't list foo.
16:55 hoelzro ah ha
16:56 hoelzro well, I would recommend playing with other pseudostashes listed in S02
16:57 rudi_s hoelzro: I think I tried all of them. - I read in a blog-post, that perl6 uses Stashes for methods/subs, but I can't find anything how I can get the current stash.
16:58 hoelzro $?PACKAGE, iirc
16:58 hoelzro not sure about methods, though
16:59 hoelzro I forget how $?PACKAGE works when you're in a class
16:59 rudi_s Empty too.
16:59 rudi_s Hm. Another question, can I somehow exclude subs from EVAL/EVALFILE?
16:59 rudi_s I want to provide a given list of subs to the evaled file, but it looks like it can access every sub declared.
17:00 hoelzro hmm, maybe UNIT::
17:00 hoelzro I don't about that; I would look at the EVALFILE impl
17:02 timotimo _nadim: it sorted!
17:04 timotimo _nadim: i see 13.39% time spent inside find_best_dispatchee, which is ... bad
17:06 timotimo _nadim: and yeah, the call stack looks deep ... dump, get_dump, get_dump, get_dump_lines, render_root, render_element, render_non_final, sink, sink-all, render_element, render_non_final, sink, sink-all, render_element, render_non_final, sink, sink-all, render_element, ... ...
17:06 _nadim there's quite a few multi methods
17:06 timotimo we shouldn't be hitting find_best_dispatchee more than a tiny bit
17:07 _nadim the depth of the stack is equal to the depth of the data structure, not much more
17:07 timotimo perhaps "times three", though :)
17:07 timotimo well, invocationg getting improved is a thing that'll happen in the future
17:08 _nadim nope, not times three, or at least it shouldn't
17:08 _nadim the first get_dum, dump, get_dump lines do no appear again
17:08 timotimo until then, i can say that JSON::Fast has a to-json that doesn't use recursion and it's significantly faster than JSON::Tiny which does use recursion
17:09 _nadim I am pretty sure of that
17:09 _nadim the dumper recusion is all in render_element/render_non_final etc ..
17:09 timotimo that's fair
17:09 timotimo do you have any "where" clauses in your code perhaps?
17:10 _nadim nope
17:10 timotimo hm, right
17:10 FROGGS joined #perl6
17:11 _nadim everything gets split, colored, wrapped, it takes some time
17:11 _nadim but everything goes through muti methods, one per type
17:12 _nadim although they are not more than 15
17:12 timotimo that's not the problem; normally we can dispatch via the multi cache
17:14 _nadim I must admit that I am curious about where the problem is. stack depth should not be it. there's a lot of calls  tough
17:17 timotimo right. i don't know, either. it's not that easy to track where it gets called from, short of outputting a traceback from that particular function
17:17 timotimo which i'm not quite sure how to do from nqp
17:20 _nadim I'm trying to wrap my head around the profilers output, as soon as the page loads
17:26 donaldh joined #perl6
17:35 SCHAAP137 joined #perl6
17:40 * RabidGravy is curious about this "DeathMetal" drumkit he appears to have
17:44 timotimo RabidGravy: what kind of software does a no-clue-whatsoever-about-music linux user use to track out some melodies or something? i've looked at lmms, but i've been told that's the opposite of modern or something ...
17:45 RabidGravy just a simple piano roll style sequencer?  I'd use seq24
17:45 timotimo when i was a wee lad, i played around with MadTracker a little bit, but i didn't have any sensible samples or something, so i never ended up making anything
17:45 RabidGravy but it's just a sequencer so you would have to arrange the instruments too
17:46 timotimo right; i'd probably fall back to lmms to get the instruments. and then i'd have a drumroll in there, too
17:46 timotimo er, piano roll
17:46 RabidGravy like notes in the Y axis, time in the X axis
17:47 timotimo yeah
17:47 RabidGravy I use Ardour almost exclusively these days, does recording, sequencing and everything
17:47 timotimo so ... are lmms or qtractor kind-of-okay?
17:47 timotimo ah
17:48 timotimo i've spent about an hour trying to get ardour to make any sound whatsoever. it's stayed silent the whole time
17:49 RabidGravy yeah, you need to hook jack up to your sound card, load instruments and stuff
17:49 timotimo just saying lmms was much easier :D
17:49 RabidGravy I've used lmms in the past, found it quite weird
17:50 RabidGravy rosegarden is another step up
17:50 RabidGravy for composition it's great
17:50 timotimo mhm
17:50 timotimo the thing is, i don't even have a feeling that'll let me figure out what kind of note i hear vs what letter i'd have for the note
17:51 timotimo i think i want to have a window open that'll show me what (approximate) note i'm whistling into the microphone :D
17:52 Woodi hi today :)
17:52 RabidGravy or if you want an old school tracker type thing apparently http://schismtracker.org/wiki/Schism%20Tracker works
17:52 RabidGravy but I haven't used it
17:52 timotimo it's so old-school that it hasn't seen a release in 4 years :)
17:52 timotimo seems legit
17:53 dwarring joined #perl6
17:54 timotimo https://www.youtube.com/watch?v=​ACQlhNrCTIQ&amp;feature=youtu.be  -  i just recently saw this and it made me want to music. sadly, i can't music at all, so it's kind of difficult :D
17:54 timotimo (that's pico8's built-in tracker right there)
17:55 RabidGravy I tend to use real hardware for serious stuff https://www.facebook.com/RabidGravy/photos/pb.1147​3325886.-2207520000.1457373210./10150578279215887
17:56 domidumont joined #perl6
17:56 timotimo yeah, i don't have any real hardware :)
17:56 timotimo and i don't do anything serious, ever.
17:57 Woodi I imagine perfect blog software as: 1) allows to GET static HTML posts; 2) allows logged-in person to create _static files_ via TinyMCE-like thing...  no database around, no templates, just static HTML files. cannot find something like this...
17:57 telex joined #perl6
17:57 [Coke] anything in the pipeline for a march release that warrants a 6.d yet?
17:58 Woodi maybe Prencer or other Perl6 framework allow such thing ?
17:58 [Coke] Or are we still on target for a 6.c-only deliverable?
17:58 Woodi [Coke]: I vote 6.c up to 2017+ ...
17:59 [Coke] Woodi: it's going to be an organic thing, not a decree.
17:59 [Coke] I'm asking if there is work in progress that impacts that; (Guessing no)
18:00 dalek rakudo/nom: 42598a9 | coke++ | docs/release_guide.pod:
18:00 dalek rakudo/nom: Sign up for month 7 in a row.
18:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42598a9a27
18:00 Woodi [Coke]++ !
18:03 dalek rakudo/nom: 4a0ba74 | coke++ | docs/release_guide.pod:
18:03 dalek rakudo/nom: remove placeholder
18:03 dalek rakudo/nom:
18:03 dalek rakudo/nom: Only list dates we shipped, not potential dates we didn't
18:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4a0ba7400b
18:04 jnthn We'll likely do a 6.c.1 at some point in the next months, so folks can depend on the various fixes/improvements since 6.c.
18:05 jnthn The major lang releases for now are more about marketing, meaning they'll happen when we've things we really want to show off. Non-blocking await is a candidate for 6.d, for example.
18:05 [Coke] jnthn: is that month this month?
18:06 [Coke] I doubt it.
18:06 [Coke] hey, docs/ROADMAP could use some care (or deletion)
18:07 jnthn [Coke]: No, I don't think this month
18:07 [Coke] also docs/architecture.html
18:07 moritz why is non-blocking await a candidate for 6.d?
18:08 moritz I mean, all it does is not using up a thread for await, no?
18:08 jnthn moritz: Yeah, which is quite a big deal for how you can use it.
18:08 RabidGravy me want
18:09 RabidGravy makes some of the madder potential uses of Tinky actually doable
18:09 AlexDaniel can anybody try something for me? Here is a oneliner (preferably run that in an empty directory): perl -E 'mkdir pack "h*", "60ba"'; perl6 -e 'dir'
18:10 themonkeybob11 joined #perl6
18:12 RabidGravy If anyone's  wanting to fix what may be an actual bug in async though https://rt.perl.org/Ticket/Display.html?id=127428 would be nice :)
18:13 AlexDaniel what I am seeing here is “Malformed UTF-8 at line 1 col 2” and it just dies
18:13 jnthn RabidGravy: Yeah, looks like an actual bug
18:14 jnthn Back to the kitchen...and then nomming :) &
18:18 AlexDaniel anybody?
18:19 Laurent_R joined #perl6
18:19 ugexe i get the same thing
18:19 ugexe AlexDaniel: ^
18:20 AlexDaniel alright
18:22 donaldh joined #perl6
18:23 b2gills The documentation for quoting is both lacking, and wrong
18:24 b2gills It says that 「qqw//」 is the same as 「« »」 when it is actually the same as 「qqww//」
18:26 * [Coke] gets an email asking why 2016.02 didn't get a release announcement or a changelog. wtf?
18:28 RabidGravy "because you didn't do it"
18:29 AlexDaniel ugexe: thank you
18:31 ParsonsNose AlexDaniel I get no errors. it just makes a directory called ^F%AB/    ..
18:31 AlexDaniel ParsonsNose: is it on Windows?
18:31 ParsonsNose nooope
18:31 AlexDaniel ParsonsNose: which filesystem then?
18:31 ParsonsNose osx
18:32 AlexDaniel ParsonsNose: ok, thank you
18:32 ugexe https://gist.github.com/ugexe/327349d​a6cd1c5a6d5c3#file-gistfile1-txt-L23 It seems like the CATCH on line 8 should catch it
18:32 ugexe (line 23 is where the error points to with --ll-exception)
18:35 ugexe Windows gives no error, and doesnt appear to make the directory
18:36 AlexDaniel xD
18:41 AlexDaniel ugexe: I submitted a ticket: https://rt.perl.org/Ticket/Display.html?id=127671
18:42 ugexe i wonder if its happening in the exception itself, in either :path or :os-error
18:44 AlexDaniel Oh by the way. Somebody was wondering why there is no protection against deep recursion. Now I've found this bug report: https://rt.perl.org/Ticket/Display.html?id=127253
18:45 AlexDaniel … which was submitted by me. I should probably get a new brain to remember bugs that I have submitted
18:46 perlpilot AlexDaniel: does the second example in that ticket die faster?
18:47 AlexDaniel perlpilot: dunno! Try it?
18:47 perlpilot I did.  They are both taking forever  :)
18:48 AlexDaniel m: sub foo() { return foo }; say foo
18:48 camelia rakudo-moar 4a0ba7: OUTPUT«Memory allocation failed; could not allocate 37888 bytes␤»
18:48 AlexDaniel m: sub foo($x = foo) { 42 }; say foo
18:48 themonkeybob11 joined #perl6
18:48 camelia rakudo-moar 4a0ba7: OUTPUT«Memory allocation failed; could not allocate 14597504 bytes␤»
18:49 AlexDaniel perlpilot: looks like second one is slower
18:49 AlexDaniel but I don't know why :)
18:49 vendethiel joined #perl6
18:51 rudi_s Is there a difference between module A { class B { .. } } and class A::B { .. } ?
18:52 alpha123 joined #perl6
18:53 perlpilot rudi_s: yes
18:54 rudi_s perlpilot: Perfect, thank you.
18:55 perlpilot rudi_s: why do you care that they are different?  (and you didn't even ask what the difference is!  :)
18:56 perlpilot m:  module A { class B { } }; class C::D { };  .say for A.HOW, C.HOW   # this is the difference I was thinking of BTW
18:56 camelia rakudo-moar 4a0ba7: OUTPUT«Perl6::Metamodel::ModuleHOW.ne​w␤Perl6::Metamodel::PackageHOW.new␤»
18:57 rudi_s perlpilot: From what I understand, module provide some kind of name spacing and I wanted to know if the effect was the same when I used class A::B. The documentation didn't make that clear (to me).
18:57 rudi_s Bascially I wanted to know if stuff defined inside class A::B are in the same "namespace" as stuff inside module A { class B { ..  }}
18:58 AlexDaniel m: say gather ‘abc’ ~~ m/(.)+ {take ‘X’} ‘a’ /
18:58 camelia rakudo-moar 4a0ba7: OUTPUT«(X X X X X X)␤»
18:58 AlexDaniel can anybody figure out why is it backtracking like crazy on this one?
18:59 AlexDaniel m: say gather ‘abc’ ~~ m/(.)+ {take $0} ‘a’ /
18:59 camelia rakudo-moar 4a0ba7: OUTPUT«([「a」 「b」 「c」] [「a」 「b」 「c」] [「a」 「b」 「c」] [「b」 「c」] [「b」 「c」] [「c」])␤»
19:00 AlexDaniel ah, {} is part of backtracking?
19:02 AlexDaniel m: say [~] gather ‘abcdef’ ~~ m/(.)+ {take ‘X’} ‘a’ /
19:02 camelia rakudo-moar 4a0ba7: OUTPUT«XXXXXXXXXXXXXXXXXXXXX␤»
19:03 perlpilot AlexDaniel: I can't tell if you understand what's going on or not  :)
19:03 AlexDaniel ooooh, there's +
19:04 AlexDaniel m: say [~] gather ‘abcdef’ ~~ m/(.)* {take ‘X’} ‘a’ /
19:04 camelia rakudo-moar 4a0ba7: OUTPUT«XXXXXXX␤»
19:05 AlexDaniel perlpilot: I was convinced that it was (.)* and so I was wondering why it has to go through all of this :D
19:05 perlpilot ok
19:05 perlpilot then I'll assume you understand now
19:06 AlexDaniel perlpilot: well, actually, no
19:06 AlexDaniel m: say gather ‘abc’ ~~ m/(.)* {take $0} ‘a’ /
19:06 camelia rakudo-moar 4a0ba7: OUTPUT«([「a」 「b」 「c」] [「a」 「b」 「c」] [「a」 「b」 「c」] [「a」 「b」 「c」])␤»
19:06 AlexDaniel perlpilot: why is it 'abc' all the time?
19:07 perlpilot Put the * inside the parens and maybe it'll be clearer?
19:07 AlexDaniel m: say gather ‘abc’ ~~ m/(.*) {take $0} ‘a’ /
19:07 camelia rakudo-moar 4a0ba7: OUTPUT«(「abc」 「ab」 「a」 「」)␤»
19:08 AlexDaniel perlpilot: now it looks right, but where does that difference come from?
19:08 RabidGravy after a year I found a use for https://gist.github.com/jonat​hanstowe/ff0885b0841b39aeebed
19:10 RabidGravy I also want sub signatures on a parameters to MAIN
19:11 themonkeybob11 joined #perl6
19:13 RabidGravy oops
19:13 RabidGravy m: multi sub MAIN( :@part ( $instrument, $fills ) ) { say @part.perl; }
19:13 camelia rakudo-moar 4a0ba7: OUTPUT«This type does not support elems␤  in sub MAIN at /tmp/bRi2dhOgnn line 1␤  in block <unit> at /tmp/bRi2dhOgnn line 1␤␤»
19:16 dalek ecosystem: ec54ab8 | kolikov++ | META.list:
19:16 dalek ecosystem: Merge pull request #1 from kolikov/kolikov-add1
19:16 dalek ecosystem:
19:16 dalek ecosystem: Please Add Lingua::EN::Conjugate
19:16 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/ec54ab866b
19:16 dalek ecosystem: f9de14b | jnthn++ | /:
19:16 dalek ecosystem: Merge pull request #168 from kolikov/master
19:16 dalek ecosystem:
19:16 dalek ecosystem: Merge
19:16 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/f9de14b482
19:18 zpmorgan joined #perl6
19:18 themonkeybob11 joined #perl6
19:18 tmch joined #perl6
19:22 jjido joined #perl6
19:22 labster joined #perl6
19:25 tokomer joined #perl6
19:30 tmch joined #perl6
19:32 virtualsue joined #perl6
19:38 CIAvash joined #perl6
19:49 Laurent_R_ joined #perl6
19:50 spider-mario joined #perl6
19:54 pierrot joined #perl6
19:58 ParsonsNose joined #perl6
19:58 firstdayonthejob joined #perl6
20:08 TreyHarris In for @list { ... CATCH { # here } }, is OUTER::<$_> the only way to refer to the loop variable (other than rewriting to for @list -> $elem)?
20:11 ely-se joined #perl6
20:13 masak yes
20:14 TreyHarris masak: thanks. didn't know if there was some shorthand for that particular case.
20:25 RabidGravy so I found what the DeathMetal drumkit sounds like, not really buying the "Death Metal" tag, more like "battered old jazz kit"
20:29 jjido joined #perl6
20:32 lizmat timotimo: how would you describe your commits this week for the P6W ?
20:32 timotimo did i even do anything?
20:33 masak TreyHarris: well, you can always do something like `CATCH -> $err { # here }`
20:33 timotimo improved the code gen for metaop_assign (like +=) when native values or sub calls are on the LHS
20:33 masak 'night, #perl6
20:33 timotimo gnite masak :)
20:33 timotimo improved safe exception printing for when you're hacking on the core setting and an error occurs before Exception.pm has been reached
20:33 timotimo i'd say that's about all i did, right?
20:34 idiosyncrat_ joined #perl6
20:34 lizmat yup, thanks!
20:34 timotimo no, thank you
20:35 jjido joined #perl6
20:40 yqt joined #perl6
20:41 cpage_ joined #perl6
20:42 jnthn Ooh, I did something weeklyable too :)
20:43 jnthn lizmat: fwiw, that last thing I wrote about in my blog post is as of today completed also (the memory saving)
20:49 lizmat but it didn't land in rakudo yet, did it ?
20:49 lizmat jnthn: ^^^
20:50 jnthn lizmat: Didn't do a Moar bump yet, no...so only for those who build absolute bleeding edge :)
20:50 lizmat I'd like to keep the P6W really about things that people can see when pulling rakudo and doing a standard build
20:51 lizmat the bleeding edge people should be on this channel anyway  :-)
20:51 lizmat (also leaves some news for the next P6W  :-)
20:53 jnthn Just in case I do nothing more this week? :-)
20:54 hacst joined #perl6
20:57 lizmat well, what can I see, looking back at the past weeks  :-)
20:57 lizmat *say
20:58 Hotkeys I am bleeding edge and on this channel
20:58 lizmat Hotkeys!
20:59 Hotkeys lizmat!
21:01 [Coke] Dr. Scott!
21:01 Hotkeys lizmat: why so excited
21:01 * lizmat is really rather fotonic
21:01 gypsydave5 joined #perl6
21:01 rindolf joined #perl6
21:02 lizmat argh, photonic  :-)   fotonic is a dutchism
21:02 lizmat as in easily excitable  :-)
21:02 rudi_s Hi. Is there a simple way to apply a function to all values of a hash?
21:02 bakedb joined #perl6
21:03 Hotkeys ah
21:03 lizmat %hash.values>>.method
21:05 dhunt joined #perl6
21:05 dhunt M: say now - INIT now
21:05 camelia rakudo-MOAR 273e89: OUTPUT«0.0024624␤»
21:06 [Coke] Damian is going to be a keynote speaker at yapc::na this year.
21:06 rudi_s lizmat: Sorry, forgot to mention I want to replace the values with the result of the function.
21:06 lizmat m: my %h = a => 42, b => 666; %h.values>>.&postfix:<++>; dd %h   # rudi_s
21:06 camelia rakudo-moar 4a0ba7: OUTPUT«Hash %h = {:a(43), :b(667)}␤»
21:07 rudi_s lizmat: How can I do the same with an arbitrary function?
21:08 lizmat m: my %h = a => 42, b => 666; sub a($a is rw) { $a++ }; %h.values>>.&a; dd %h # rudi_s
21:08 camelia rakudo-moar 4a0ba7: OUTPUT«Hash %h = {:a(43), :b(667)}␤»
21:09 jnthn m: my %h = a => 'omg', b => 'wtf'; .=&uc for %h.values; say %h
21:09 camelia rakudo-moar 4a0ba7: OUTPUT«a => OMG, b => WTF␤»
21:09 lichtkind joined #perl6
21:09 jnthn m: my %h = a => 'omg', b => 'wtf'; %h.values>>.=&uc; say %h # or maybe this
21:09 camelia rakudo-moar 4a0ba7: OUTPUT«a => OMG, b => WTF␤»
21:10 lichtkind i found out you versioning backup plan: third letter in azbuka is actually  В which leads to to the holiday of  Воскресения - easter :)
21:11 rudi_s lizmat: jnthn: Thank you. Can I combine that with an anonymous function?
21:12 [Coke] at that point, it's not really more legible, is it?
21:12 lizmat m: my %h = a => 42, b => 666; %h.values>>.(sub (\a) { a++ }); dd %h  # alas, not sure if that's a bug or a DIHWIDT
21:12 camelia rakudo-moar 4a0ba7: OUTPUT«Cannot find method 'CALL-ME'␤  in block <unit> at /tmp/mdjMoloPFw line 1␤␤»
21:12 [Coke] you can make your anon function ahead of time and assign it to a var.
21:14 [Coke] m: my %h = a => 42, b => 666; my $why = sub (\a) { a++ }; %h.values>>.&$why; dd %h;
21:14 camelia rakudo-moar 4a0ba7: OUTPUT«Hash %h = {:a(43), :b(667)}␤»
21:14 Hotkeys I didn't realize you could call regular functions dottily
21:15 rudi_s Thanks.
21:16 lizmat Hotkeys: in that respect, Perl 6 is very much like Perl 5, where the object is always the first parameter when a method is called as a sub
21:17 Hotkeys ah
21:17 Hotkeys I didn't really ever use perl 5
21:17 jnthn m: my %h = a => 'omg', b => 'wtf'; %h.values>>.=&({ .uc ~ .tc }); say %h
21:17 camelia rakudo-moar 4a0ba7: OUTPUT«a => OMGOmg, b => WTFWtf␤»
21:17 rudi_s Is there also a nice way to get a copy of the complete hash? - I have a type constraint on the original hash which is not met after applying the function, so I'd like to store it in a new variable.
21:17 rudi_s *the result
21:18 jnthn rudi_s: Just assigning one hash into another does that.
21:18 jnthn (Assignment is copying.)
21:18 jnthn Or do you mean apply a transforma nd get a new hash?
21:19 rudi_s True. But I thought about returning it immediately so I'd like to skip the temporary variable and just apply the function to the values of the old hash.
21:19 rudi_s *and get a copy as result which I then can return.
21:20 jnthn m: my %h = a => 'omg', b => 'wtf'; my %i = %h.map({ .key => uc .value }); say %hi
21:20 camelia rakudo-moar 4a0ba7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HkFMzgZYPQ␤Variable '%hi' is not declared␤at /tmp/HkFMzgZYPQ:1␤------> 3%i = %h.map({ .key => uc .value }); say 7⏏5%hi␤»
21:20 jnthn m: my %h = a => 'omg', b => 'wtf'; my %i = %h.map({ .key => uc .value }); say %i
21:20 camelia rakudo-moar 4a0ba7: OUTPUT«a => OMG, b => WTF␤»
21:20 jnthn You can do something like that, replacing uc with ur function
21:21 rudi_s Nice, thank you!
21:29 ambs joined #perl6
21:34 rudi_s m: my %x = A => <a b c>, B => <d e f>; for %x<A> { .say }
21:34 camelia rakudo-moar 4a0ba7: OUTPUT«(a b c)␤»
21:34 rudi_s Can I somehow change the %x definition so the for iterates over the <a b c> List?
21:34 rudi_s for %x<A>.List { .say } works, but I'd like to get that behavior automatically.
21:35 ely-se m: my %x = A => @<a b c>, B => @<d e f>; for %x<A> { .say }
21:35 camelia rakudo-moar 4a0ba7: OUTPUT«(Nil Nil Nil)␤»
21:35 ugexe m: my %x = A => <a b c>, B => <d e f>; for |%x<A> { .say }
21:35 camelia rakudo-moar 4a0ba7: OUTPUT«a␤b␤c␤»
21:35 lizmat m: my %x = A => <a b c>.Slip, B => <d e f>.Slip; for %x<A> { .say }
21:35 camelia rakudo-moar 4a0ba7: OUTPUT«a␤b␤c␤»
21:36 lizmat rudi_s: ^^
21:36 rudi_s lizmat: Thanks. What exactly is a slip?
21:36 lizmat .oO(you give it the slip)
21:37 [Coke] rudi_s: http://docs.perl6.org/type/Slip
21:37 lizmat http://doc.perl6.org/type/Slip
21:37 FROGGS yay, got 78 slides ready which is probably about 40% of what I'm going to do
21:37 lizmat hehe
21:38 rudi_s lizmat: [Coke]: Thanks.
21:38 rudi_s For a newcomer the "iteration concept" feels quite complicated in Perl6.
21:38 FROGGS so my presentation should be in a good shape after tomorrow evening and the train ride on Wednesday morning
21:39 moritz FROGGS:
21:40 moritz erm
21:40 bjz joined #perl6
21:40 moritz I wanted to write something, didn't I?
21:40 moritz sounds like quite some slides
21:40 donaldh joined #perl6
21:40 moritz I typically have about one slide per minute of talk
21:41 FROGGS moritz: my slides often just show one to three words
21:42 rudi_s Is it expected, that Slip is not displayed in the .perl output?
21:43 rudi_s Test failures like this are confusing:
21:43 rudi_s # expected: {:A($("a", "b", "c")), :B($("d", "e", "f")), :C($("a", "b", "c", "d", "e", "f"))}
21:43 rudi_s #      got: {:A($("a", "b", "c")), :B($("d", "e", "f")), :C($("a", "b", "c", "d", "e", "f"))}
21:45 lizmat Slips are supposed to be very volatile
21:45 timotimo disappearing underwear
21:46 rudi_s Hm. Makes the .perl output a little less useful when I don't see something but it's still considered different.
21:47 FROGGS well, Slip is meant to hide itself
21:47 lizmat rudi_s: you're not supposed to see slips
21:47 rudi_s FROGGS: Shouldn't comparsion then treat it as equal?
21:48 FROGGS rudi_s: I guess so, yes
21:48 rudi_s m: <a b c> eqv <a b c>.Slip
21:48 camelia rakudo-moar 4a0ba7: OUTPUT«WARNINGS for /tmp/GOMftwurbO:␤Useless use of "eqv" in expression "<a b c> eqv <a b c>.Slip" in sink context (line 1)␤»
21:48 rudi_s m: say <a b c> eqv <a b c>.Slip
21:48 camelia rakudo-moar 4a0ba7: OUTPUT«False␤»
21:48 rudi_s Still a little dangerous to ignore it, as an object behaves differently with and without a Slip.
21:48 FROGGS m: use Test; say is-deeply [1, (2, 3).Slip], [1, 2, 3], '...'
21:48 camelia rakudo-moar 4a0ba7: OUTPUT«ok 1 - ...␤True␤»
21:49 rollo joined #perl6
21:49 FROGGS m: use Test; say is [1, (2, 3).Slip], [1, 2, 3], '...'
21:49 camelia rakudo-moar 4a0ba7: OUTPUT«ok 1 - ...␤True␤»
21:49 ugexe m: my @a = 1,2,3; my $x = @a.Slip; say $x.perl
21:49 camelia rakudo-moar 4a0ba7: OUTPUT«slip$(1, 2, 3)␤»
21:49 FROGGS rudi_s: what test method is it using
21:49 FROGGS ?
21:49 rudi_s Hm. I'm confused.
21:50 rudi_s Ah .. old perl6 version.
21:50 rudi_s m: is-deeply %(A => <a b c>.Slip), %(A => <a b c>);
21:51 camelia rakudo-moar 4a0ba7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nW_fIo3E7t␤Undeclared routine:␤    is-deeply used at line 1␤␤»
21:51 rudi_s m: use Test; is-deeply %(A => <a b c>.Slip), %(A => <a b c>);
21:51 camelia rakudo-moar 4a0ba7: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/3Hye26gGjc line 1␤# expected: ${:A($("a", "b", "c"))}␤#      got: ${:A(slip$("a", "b", "c"))}␤»
21:51 chansen_ joined #perl6
21:51 rudi_s So it shows up.
21:51 rudi_s Perfect. Sorry for the confusion.
21:53 timotimo dinner is served \o/
22:06 labster joined #perl6
22:09 rudi_s What is the best way to check if I can apply a regex to an object? I want to check for matches by applying a regex if the object supports regex matches and otherwise just accept it.
22:09 rudi_s I could use $_ ~~ Str and $_ ~~ /regex/, but is there a better way?
22:09 rudi_s Stringy maybe?
22:23 ugexe i think more details are needed. for example, are you referring to .ACCEPTS, which lets you set what your class smart matches against? or can you give an example that does what one might consider wrong?
22:24 ugexe or something like $str.?match(/$regex/)
22:26 timotimo /$regex/ is probably a million times slower than just $regex here
22:28 jjido joined #perl6
22:30 RabidGravy and surely any "Cool" value will accept a regex
22:36 profan joined #perl6
22:36 lizmat And another Perl 6 Weekly has just come off the press: https://p6weekly.wordpress.com​/2016/03/07/2016-10-enchante/
22:36 profan joined #perl6
22:37 sjn yay!
22:43 rudi_s ugexe: foo(set(<a b c>), 'a', 'b', 'c', <a b c>); sub foo(*@x) { for @x { .. } } and .. should check if I can do $_ ~~ /regex/ and if not do nothing.
22:43 lizmat good night, #perl6!
22:43 rudi_s Good night.
22:44 RabidGravy toodles
22:44 sjn lizmat: ehrm, what's with conspi article you mention in the "Gems from the Backlog" section?
22:45 sno joined #perl6
22:45 hoelzro lizmat: there's a typo in my blog post title (s/Russion/Russian/)
22:45 lichtkind good night lizmat
22:46 sjn wake up, lizmat! the internets are wrong! :)
22:46 sjn well, maybe these can wait 'till tomorrow..
22:47 sjn the emoji link is broken too
22:48 sjn seems like some utf88 char got into the url
22:50 TEttinger joined #perl6
22:51 rudi_s ugexe: So, yeah, $str.?match looks fine. Thanks.
22:52 timotimo i can fix things in the weekly
22:53 timotimo conspi article?
22:54 timotimo i'll fix the butterfly link
22:54 timotimo what else is broken?
22:55 rudi_s ugexe: Hm. Seems to break if I want to extract a group:
22:55 rudi_s m: my $a = 'str'; if $a.?match(/(...)/) { say "match: $0" }
22:55 camelia rakudo-moar 4a0ba7: OUTPUT«Use of Nil in string context  in block <unit> at /tmp/oI2o6OrySo line 1␤match: ␤»
22:55 rudi_s my $a = 'str'; if $a.match(/(...)/) { say "match: $0" }
22:55 rudi_s m: my $a = 'str'; if $a.match(/(...)/) { say "match: $0" }
22:55 timotimo russian
22:55 camelia rakudo-moar 4a0ba7: OUTPUT«match: str␤»
22:55 timotimo updated
22:56 hoelzro спасибо!
22:59 Hotkeys Meta ops are fun
22:59 Hotkeys m: my &f = {[»+«](@^a Z»*»@^b) »/»sum @b}; say f([[0,2],[3,4],[0,1],[1,1]],[2,6,2,10])
22:59 camelia rakudo-moar 4a0ba7: OUTPUT«[1.4 2]␤»
23:01 rudi_s ugexe: My current solution is if ^.can('match') and $_ ~~ /regex/ { .. } - is this okay or can it be improved?
23:02 Hotkeys Why not just call match if it can be called
23:04 Hotkeys Wait
23:04 idiosyncrat_ joined #perl6
23:04 Hotkeys m: say so Nil
23:04 camelia rakudo-moar 4a0ba7: OUTPUT«False␤»
23:04 Hotkeys Perhaps use .?match(/regex/)
23:04 Hotkeys http://docs.perl6.org/language/operators#postfix_.%3F
23:05 Hotkeys Not sure if that's what you're looking for
23:07 kid51 joined #perl6
23:08 rudi_s Hotkeys: I tried that (as recommened by uge<tab>), but it seems not to work with capture groups or something else is broken:
23:08 rudi_s m: my $a = 'str'; if $a.?match(/(...)/) { say "match: $0" }
23:08 camelia rakudo-moar 4a0ba7: OUTPUT«Use of Nil in string context  in block <unit> at /tmp/C95xAq9joD line 1␤match: ␤»
23:08 rudi_s I've no idea why this happens though.
23:09 geekosaur save the result of the match, it will be Nil or a match object that you can use
23:11 rudi_s geekosaur: Why is this not necessary when I use $a.match (or just $a ~~ /regex/)?
23:11 geekosaur m: my $a = 'str'; if so my $m = $a.?match(/(...)/) { say "match: $m[0]" }
23:11 camelia rakudo-moar 4a0ba7: OUTPUT«match: str␤»
23:12 geekosaur because there's magic in that case :(
23:12 geekosaur rather than making you save the match object it's assigned to (IIRC) $/ and things like $0 are aliases into that
23:12 rudi_s Yeah.
23:12 geekosaur but only if you do the match directly
23:13 rudi_s Ah. Hm. Too bad. I guess I'll stick to .^can('match'). - Thanks.
23:13 geekosaur m: my $a = 'str'; if so $/ = $a.?match(/(...)/) { say "match: $0" }
23:13 camelia rakudo-moar 4a0ba7: OUTPUT«match: str␤»
23:14 geekosaur hm,. the so shoudln't even be needed
23:14 geekosaur m: my $a = 'str'; if $/ = $a.?match(/(...)/) { say "match: $0" }
23:14 camelia rakudo-moar 4a0ba7: OUTPUT«match: str␤»
23:14 geekosaur m: my $a = 'st'; if $/ = $a.?match(/(...)/) { say "match: $0" }
23:14 camelia rakudo-moar 4a0ba7: ( no output )
23:14 geekosaur there you go
23:16 rudi_s Thanks!
23:16 Hotkeys \o/
23:26 labster joined #perl6
23:30 RabidGravy This is an interesting read https://medium.com/@nayafia/what-success-re​ally-looks-like-in-open-source-2dd1facaf91c#.tv3dlursc
23:31 dalek rakudo-star-daily: a45663e | coke++ | log/ (9 files):
23:31 dalek rakudo-star-daily: today (automated commit)
23:31 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/a45663e648
23:37 RabidGravy Almost finished Audio::Hydrogen (bar the documentation) and now wondering if I fix up Audio::PortAudio whether we can make a drum machine in Perl 6
23:38 RabidGravy I need someone to give me money just to shave yaks
23:40 RabidGravy anyway bed time here
23:40 RabidGravy toodles!
23:59 themonkeybob11 joined #perl6
23:59 cdg joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo