Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-04-21

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:01 TimToady samcv: be sure your script pulls the latest; I just pr'd Grammar::Debugger to add some of those fields, for instance
00:01 samcv cool
00:01 samcv yeah ofc
00:01 * TimToady always figures it's better to say a thing too many times than too few :)
00:02 samcv yep
00:03 cpage_ joined #perl6
00:05 TreyHarris It looks like most well-behaved classes ignore any named argument they don't recognize, but some do barf. When you only define BUILD, though, that's the behavior you get, so that's what should be considered default behavior, yes? (Wondering how to write the test "I implement this flag" before I get to the behavior that can exercise it, but I guess I can't and should just accept that.)
00:07 samcv ok cool got my automated script to scrape all these that RabidGravy said failed the META license test
00:07 samcv so many variations
00:07 samcv also idk what 'perl' license means. perl 5 ? perl 6? heh
00:08 ugexe "yes"
00:08 samcv ;)
00:08 samcv here's the list https://gist.github.com/samcv/9177c43f2a78049248fcb954c63d28e5
00:09 samcv ugh so many saying just "Artistic" and many of those i've seen have 2.0, but. no way to automate that without dling any license file in the project and checking that.
00:09 ugexe no urls then i assume?
00:09 samcv url's?
00:09 mcmillhj joined #perl6
00:09 samcv to the meta's? well.
00:09 ugexe as the license some people use a url to the license text
00:09 samcv my script has them. that's just the printout
00:10 samcv anarchy!
00:10 TimToady well, anything that /Artistic.*2/ can probably change to 'Artistic-2.0', which I believe is the standard espoused by the website
00:10 samcv yeah
00:10 samcv exactly
00:11 ugexe i can't filter urls effectively, so i'm all for some ENUM of values
00:11 samcv hmm?
00:11 TimToady perl probably means it was originally "same as Perl itself", which at the time would only have been Artistic
00:11 samcv yeah. though. many say Artistic. but mean Artistic 2.0. but i'm sure some mean Artistic 1.
00:11 TimToady well, Artistic | GPL actually
00:11 TimToady it was a quantum superposition
00:12 samcv :)
00:12 samcv Artistic-1.0-Perl OR GPL-1.0
00:12 TimToady but since Perl 6 is still "perl", we could try to tweak them to Artistic 2.0, with a love note saying they should do something else if this is unacceptable
00:12 samcv using SPDX spec notation
00:12 samcv hahaha
00:13 Actualeyes joined #perl6
00:15 TreyHarris I'm trying to port a package with many Perl 5 classes with named boolean switches in the constructors. Since they were standard blessed hashes, their failure to define an accessor method for those flags means doesn't register any inten; I can define the switches as public attributes or as hidden attributes only settable at constructor time. What makes sense to me is to make them all attributes with "is ro" if
00:15 TreyHarris their behavior can't be changed usefully after construction, 'is rw' if they can. That's the right way to do it, yes?
00:15 TreyHarris s/means.*intent/doesn't indicate any intent/
00:17 japh__ joined #perl6
00:18 samcv ugexe, updated the gist to have url's and url's to meta files https://gist.github.com/samcv/9177c43f2a78049248fcb954c63d28e5
00:20 TimToady "Artistic-1.0-Perl OR GPL-1.0" is not quite right, since the README itself allows you to use any subsequent version of the GPL
00:20 samcv hm
00:20 TimToady but then, I think GPL-1.0 also contains that provision
00:20 TimToady so maybe it doesn't matter
00:20 samcv isn't that in the GPL-1.0?
00:20 samcv then it'd be Artistic-1.0-Perl OR GPL-1.0 WITH foobarclausename
00:20 samcv or something like that
00:21 TreyHarris Also: is there any basic rule of thumb about when to replace underscores in P5 names with hyphens?
00:21 samcv uhm. do it if you want to make it more perl6y?
00:21 TimToady well, Perl always added a lot of foobar clauses to the GPL :)
00:21 samcv you don't have to, not really any rules
00:22 samcv TimToady, https://dev.perl.org/licenses/ it seems to just say GPL 1 or Artistic
00:22 TreyHarris samcv: I'm just trying to do a "straight but Perl 6-ish" port. I guess Test::More -> Test is the canonical case of that, so the answer is "yes" on underscores to hyphens and "yes" on attributes
00:23 samcv i usually used dashes for perl 6 stuff and sometimes name variables with underscores when they are going to be used in non perl 6 programming languages. but that's just me
00:23 TimToady we generally reserve underscores for internal names in p6
00:23 samcv do we though?
00:23 samcv hm
00:23 TimToady well, "reserve" is perhaps too strong
00:24 TimToady we encourage hyphens for public-facing APIs, let's put it that way
00:24 samcv yeah
00:24 japh____ joined #perl6
00:25 TimToady the presence of any underscores can be taken as a mild warning of <mumble>
00:26 TreyHarris TimToady: undrstd.
00:30 gdonald joined #perl6
00:48 Cabanossi joined #perl6
00:49 kurahaupo joined #perl6
01:01 samcv nice. i automated it!
01:01 samcv first automated PR down https://github.com/zostay/perl6-IO-Glob/pull/6
01:01 samcv now i will uh. just let it go crazy!
01:02 samcv and it checks to make sure json is correct before doing it
01:04 shdb joined #perl6
01:04 samcv so should be fairly safe
01:04 mcmillhj joined #perl6
01:08 TreyHarris erm... isn't there a shorthand to toggle a `has Bool $.blinking is rw` attribute that doesn't require saying the attribute name twice?
01:08 samcv toggle it programatically without typing it into the program?
01:08 samcv not sure the question
01:09 mst $_ = !$_ for $obj.blinking; or something?
01:09 TreyHarris like $p.blinking = not $p.blinking, but without saying "$p.blinking" twice.
01:09 TreyHarris I thought there was a concise and clear way I saw once that was better than just writing it out. But if not, no worries.
01:14 TreyHarris I've had to learn too many languages in the past 16 months--I feel like the semester I took Spanish, Japanese and Russian. I keep "remembering" features from the wrong language.
01:18 Cabanossi joined #perl6
01:20 sufrostico joined #perl6
01:21 samcv so many PR https://gist.github.com/samcv/b7809f40477812328914fff08efeb6bd
01:22 samcv that was fun though. once i tried to relax and that i had already built in json validity safechecks and other things that it wouldn't do something embarassing to 30+ repos
01:28 BenGoldberg m: my $x = False; [not=] $x; say $x;
01:28 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Prefix not requires an argument, but no valid term found␤at <tmp>:1␤------> 3my $x = False; [not7⏏5=] $x; say $x;␤    expecting any of:␤        prefix␤»
01:29 BenGoldberg m: my $x = False; $x not= ; say $x;
01:29 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3my $x = False; $x7⏏5 not= ; say $x;␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier␤ …»
01:29 BenGoldberg m: my $x = False; $x not= (); say $x;
01:29 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3my $x = False; $x7⏏5 not= (); say $x;␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier…»
01:30 skids samcv: merged X::Protocol, Control::Bail, Proc::Screen.  Also, the urls stop showing up halfway down the gist.
01:30 BenGoldberg m: my $x = False; $x .= not; say $x;
01:30 camelia rakudo-moar ce37b3: OUTPUT: «True␤»
01:31 BenGoldberg m: class Blinkable { has $.blinking }; my Blinkable $obj .= new; $obj.blinking.=not; dd $obj;
01:31 camelia rakudo-moar ce37b3: OUTPUT: «Cannot modify an immutable Any␤  in block <unit> at <tmp> line 1␤␤»
01:31 BenGoldberg m: class Blinkable { has $.blinking is rw }; my Blinkable $obj .= new; $obj.blinking.=not; dd $obj;
01:31 camelia rakudo-moar ce37b3: OUTPUT: «Blinkable $obj = Blinkable.new(blinking => Bool::True)␤»
01:31 BenGoldberg TreyHarris ^
01:42 labster joined #perl6
01:48 ilbot3 joined #perl6
01:48 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
01:48 samcv skids, the ones without url's don't have PR yet
01:48 Cabanossi joined #perl6
01:48 samcv because they didn't have artistic and 2 in the license field
01:48 samcv the other ones will have to be done more carefully
02:08 noganex_ joined #perl6
02:17 Cabanossi joined #perl6
02:19 TimToady m: my $x = False; $x ?^= True; say $x; $x ?^= True; say $x;
02:19 camelia rakudo-moar ce37b3: OUTPUT: «True␤False␤»
02:19 TimToady you can use exclusive or as well
02:21 japh__ joined #perl6
02:26 BenGoldberg m: use Benchmark;
02:26 camelia rakudo-moar ce37b3: OUTPUT: «===SORRY!===␤Could not find Benchmark at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-2/share/perl6/site␤    /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-2/share/perl6␤    CompUnit::R…»
02:27 jrac1001 joined #perl6
02:30 MasterDuke_ star: use Benchmark
02:30 camelia star-m 2016.10: OUTPUT: «===SORRY!===␤Could not find Benchmark at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/star-2016.10/share/perl6/site␤    /home/camelia/star-2016.10/share/perl6/vendor␤    /home/camelia/star-2016.10/share/perl6␤    CompUnit::Repository::Ab…»
02:30 MasterDuke_ BenGoldberg: trying to do some benchmarking?
02:34 TimToady m: my $x = False; $x .= not for ^1000000; say now - INIT now
02:34 camelia rakudo-moar ce37b3: OUTPUT: «2.5071128␤»
02:34 TimToady m: my $x = False; $x ?^= True for ^1000000; say now - INIT now
02:34 camelia rakudo-moar ce37b3: OUTPUT: «1.27069904␤»
02:36 TimToady m: my int $x = 0; $x +^= 1 for ^1000000; say now - INIT now
02:36 camelia rakudo-moar ce37b3: OUTPUT: «0.60105261␤»
02:40 ChoHag joined #perl6
02:47 japh____ joined #perl6
02:49 mcmillhj joined #perl6
03:00 japh__ joined #perl6
03:02 titsuki_ joined #perl6
03:04 BenGoldberg joined #perl6
03:07 Actualeyes joined #perl6
03:17 japh____ joined #perl6
03:27 Sgeo joined #perl6
03:40 samcv phase 2 attack of the automated PR has begun
03:40 samcv now if it has artistic or perl in the license it checks to make sure there's only one license file, and that, that file is at max one line copyright line different from my copy
03:43 kevin joined #perl6
03:44 Guest8657 Hi all, is there any module in perl6 can parse excel file
03:46 Cabanossi joined #perl6
03:46 perlawhirl joined #perl6
03:46 perlawhirl__ joined #perl6
03:46 perlawhirl_ joined #perl6
03:46 perlawhirl___ joined #perl6
03:47 samcv good question Guest8657
03:47 samcv TimToady, looks especially nice if we sort it by length heh https://gist.github.com/samcv/b7809f40477812328914fff08efeb6bd
03:48 samcv i guess that's the lazy way to sort it by whether or not there's a url there
03:55 samcv still 50 more repos i need to cover though
03:57 u-ou hello
03:59 samcv hi u-ou :)
03:59 u-ou (:
04:00 wamba joined #perl6
04:03 japh__ joined #perl6
04:10 no-n tfw your program is tidy and resonable but then you need to add more features
04:12 samcv :-D
04:12 no-n :)
04:17 Cabanossi joined #perl6
04:17 samcv how many PR until github shuts you down?. lol.
04:18 samcv maybe they have an algorithm?
04:18 samcv since idk what prevents people creating Pull requests or issues with spam in it. hm. or mabye it's not really an issue
04:19 no-n hehe
04:21 perlawhirl_ fwiw, i fixed up mine < Net::Netmask Pod::To::Markdown::Fenced wig >
04:25 perlawhirl_ left #perl6
04:28 samcv oh cool
04:30 samcv thank you perlawhirl :)
04:31 Possum joined #perl6
04:34 labster joined #perl6
04:46 perlawhi1l joined #perl6
05:01 Cabanossi joined #perl6
05:02 japh__ joined #perl6
05:02 Geth ¦ doc: 4bc72d5114 | (Samantha McVey)++ | doc/Language/modules.pod6
05:02 Geth ¦ doc: Add updated information on putting license in META6.json
05:02 Geth ¦ doc:
05:02 Geth ¦ doc: https://design.perl6.org/S22.html#license
05:02 Geth ¦ doc: review: https://github.com/perl6/doc/commit/4bc72d5114
05:07 Geth ¦ doc: eb608b1a1f | (Samantha McVey)++ | .travis.yml
05:07 Geth ¦ doc: Add fast_finish to .travis.yml
05:07 Geth ¦ doc:
05:07 Geth ¦ doc: Should enable build status before ignored build statuses have finished
05:07 Geth ¦ doc: review: https://github.com/perl6/doc/commit/eb608b1a1f
05:09 japh____ joined #perl6
05:17 perlawhirl___ left #perl6
05:18 azawawi joined #perl6
05:18 azawawi good-morning
05:20 japh____ joined #perl6
05:22 Possum joined #perl6
05:31 Cabanossi joined #perl6
05:36 japh__ joined #perl6
05:40 Possum joined #perl6
05:43 masak good morning, #perl6
05:43 masak m: my $program = q[say "lol, so unsafe!"]; EVAL $program
05:43 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤EVAL is a very dangerous function!!! (use the MONKEY-SEE-NO-EVAL pragma to override this error,␤but only if you're VERY sure your data contains no injection attacks)␤at <tmp>:1␤------> 3 q[say "lol,…»
05:43 samcv hii
05:44 masak m: use MONKEY-SEE-NO-EVAL; my $program = q[say "lol, so unsafe!"]; EVAL $program # bah
05:44 camelia rakudo-moar ce37b3: OUTPUT: «lol, so unsafe!␤»
05:44 masak m: my $program = q[say "lol, so unsafe!"]; my &eval = &EVAL; eval $program
05:44 camelia rakudo-moar ce37b3: OUTPUT: «lol, so unsafe!␤»
05:44 * samcv freaks out and runs around screaming
05:44 masak ah, so *that's* how you do it
05:44 masak two birds with one stone, really
05:44 xtreak joined #perl6
05:44 samcv hahahha
05:44 masak (a) I get the non-silly spelling back
05:44 masak (b) I trivially circumvent the hysterical error
05:45 masak this almost deserves a blog post, although I fear it might be a slightly grumpy one
05:46 samcv hahaha
05:46 samcv m: ("'foo'" ~ '.EVAL').EVAL.say
05:46 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling /home/camelia/EVAL_1␤Undeclared routine:␤    foo used at line 1␤␤»
05:47 samcv m: Q<'foo'.EVAL>.EVAL.say
05:47 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling /home/camelia/EVAL_1␤Undeclared routine:␤    foo used at line 1␤␤»
05:47 masak fwiw, in the book "JavaScript: The Definitive Guide", it says that (in JS) `eval()` oughta have been a unary (prefix) operator, not a function. this is why.
05:47 samcv m: 'foo'.EVAL.say
05:47 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Undeclared routine:␤    foo used at line 1␤␤»
05:47 masak (because you basically cannot statically analyze first-class function values)
05:48 masak TimToady: hm, why was it at one point believed that only `:=` would work for assigning functions in Perl 6, not `=`?
05:49 masak (this is back to the Pugs or pre-Pugs days. ISTR that Pugs proved in practice that `=` worked. but I'm unclear on why it was not obvious at the time that it'd work.)
05:50 ufobat joined #perl6
05:50 RabidGravy joined #perl6
05:50 moritz I guess the thinking was that & variables wouldn't have a level of container
05:53 moritz but I mostly remember that I didn't understand the reasoning at that time
05:53 samcv m:  my $n = 5; my $var = "foo"; for ^$n { $var = "‘‘" ~ $var ~ "’’" ~ ".EVAL" }; $var.say; ($var ~ '.EVAL' x $n -1 ).EVAL.say
05:53 camelia rakudo-moar ce37b3: OUTPUT: «‘‘‘‘‘‘‘‘‘‘foo’’.EVAL’’.EVAL’’.EVAL’’.EVAL’’.EVAL␤foo␤»
05:53 samcv nice.
05:53 samcv hahaha
05:54 samcv m:  my $n = 5; my $var = "foo"; for ^$n { $var = "‘‘" ~ $var ~ "’’" ~ ".EVAL" }; $v2 = ($var ~ '.EVAL' x $n -1 ); $v2.say; $v2.EVAL.saysay
05:54 camelia rakudo-moar ce37b3: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Variable '$v2' is not declared␤at <tmp>:1␤------> 3 $var = "‘‘" ~ $var ~ "’’" ~ ".EVAL" }; 7⏏5$v2 = ($var ~ '.EVAL' x $n -1 ); $v2.say␤»
05:54 samcv m:  my $n = 5; my $var = "foo"; for ^$n { $var = "‘‘" ~ $var ~ "’’" ~ ".EVAL" }; my $v2 = ($var ~ '.EVAL' x $n -1 ); $v2.say; $v2.EVAL.saysay
05:54 camelia rakudo-moar ce37b3: OUTPUT: «‘‘‘‘‘‘‘‘‘‘foo’’.EVAL’’.EVAL’’.EVAL’’.EVAL’’.EVAL.EVAL.EVAL.EVAL.EVAL␤No such method 'saysay' for invocant of type 'Str'␤  in block <unit> at <tmp> line 1␤␤»
05:54 samcv m:  my $n = 5; my $var = "foo"; for ^$n { $var = "‘‘" ~ $var ~ "’’" ~ ".EVAL" }; my $v2 = ($var ~ '.EVAL' x $n -1 ); $v2.say; $v2.EVAL.say
05:54 camelia rakudo-moar ce37b3: OUTPUT: «‘‘‘‘‘‘‘‘‘‘foo’’.EVAL’’.EVAL’’.EVAL’’.EVAL’’.EVAL.EVAL.EVAL.EVAL.EVAL␤foo␤»
05:54 samcv so many evals
05:55 samcv m: my $n = 5; my $var = "foo"; for ^$n { $var = "‘“" ~ $var ~ "”’" ~ ".EVAL" }; my $v2 = ($var ~ '.EVAL' x $n -1 ); $v2.say; $v2.EVAL.say
05:55 camelia rakudo-moar ce37b3: OUTPUT: «‘“‘“‘“‘“‘“foo”’.EVAL”’.EVAL”’.EVAL”’.EVAL”’.EVAL.EVAL.EVAL.EVAL.EVAL␤foo␤»
05:55 samcv slightly easier to read like this. but. really not XD
06:04 mr-foobar joined #perl6
06:10 domidumont joined #perl6
06:12 RabidGravy samcv, so when I asked you *not* to send me PRs about this license thing ...
06:12 samcv i'm sorry RabidGravy, i automated it, and it applied it to all of them. sorry about that
06:18 moritz RabidGravy: you can like, close them :-)
06:18 RabidGravy I have
06:18 samcv they did get closed ;)
06:19 RabidGravy I am also going to remove all the modules from the ecosystem at 9PM BST unless I see some evidence that this has been discussed among a group wider than half a dozen people on here
06:20 TimToady sorry, we don't play the nuclear blackmail game here
06:21 moritz we have 304 nicks in here, so maybe ~250 people who had the opportunity to speak up
06:21 RabidGravy I know, it's not a threat, I just don't think this is the way to proceed
06:21 moritz then propose alternative processes to deal with such things
06:21 moritz ideally some that aren't a huge overhead
06:21 japh____ joined #perl6
06:23 xtreak joined #perl6
06:24 samcv RabidGravy, i'm sorry for the PR. and i looked at them and changes from "perl" to "Artistic-2.0" or from "Artistic" to "Artistic-2.0" offer more information about the modules. i mean there could be a way that we could have package managers resolve names that may not be exact matches, but "perl" and "Artistic" don't show full information
06:24 TimToady Perl 6 has succeed to the extent it has because it has been a convergent (on average) process over the years.
06:25 samcv also open to suggestions about how to preced of course. and i've blacklisted you on my script
06:25 TimToady we haven't forced rapid convergence, (obviously, in retrospect), but we do want to keep a gentle pressure in that direction
06:26 TimToady if this was not gentle enough, then we need to figure out a better way, as moritz points out
06:26 samcv agreed
06:27 TimToady perhaps "blacklisted" has some undesirable negative connotations :)
06:27 samcv was not meant that way. but it will skip any repos of user jonathanstowe on github now
06:27 moritz "not-nag-listed" :-)
06:27 samcv added an exception?
06:27 nadim joined #perl6
06:29 TimToady actually, given how opinionated we all are, I'm surprised we've managed the degree of convergence we have, even if it did take a decade and a half (so far) :)
06:30 samcv :)
06:33 samcv https://docs.perl6.org/language/modules#index-entry-META6.json-META6.json i've updated the license section of here to provide more guidance. mostly says the same as the synopsis. need to clean up formatting a bit but
06:33 samcv or template now has a license field so hopefully that will help people out as well making new modules
06:33 darutoko joined #perl6
06:35 domidumont joined #perl6
06:38 imcsk8 joined #perl6
06:41 domidumont joined #perl6
07:01 Geth ¦ Inline-Perl5: 45cd7ec289 | (Samantha McVey)++ | META6.json
07:01 Geth ¦ Inline-Perl5: Use SPDX identifier in license field of META6.json
07:01 Geth ¦ Inline-Perl5:
07:01 Geth ¦ Inline-Perl5: For more details see https://design.perl6.org/S22.html#license
07:01 Geth ¦ Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/45cd7ec289
07:01 Geth ¦ Inline-Perl5: 8cb8c3254f | niner++ (committed using GitHub Web editor) | META6.json
07:01 Geth ¦ Inline-Perl5: Merge pull request #95 from samcv/license
07:01 Geth ¦ Inline-Perl5:
07:01 Geth ¦ Inline-Perl5: Use SPDX identifier in license field of META6.json
07:01 Geth ¦ Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/8cb8c3254f
07:02 japh__ joined #perl6
07:02 samcv left #perl6
07:02 samcv joined #perl6
07:03 raschipi joined #perl6
07:07 cpage_ joined #perl6
07:13 parv joined #perl6
07:15 astj joined #perl6
07:22 TEttinger I'm surprised nobody's made an Autistic License that is just like the Artistic License but has a clause that specifies it must be taken literally
07:23 TEttinger it's redundant with it being a legal document, but it never hurts to be clear
07:26 wamba joined #perl6
07:27 rindolf joined #perl6
07:29 TheAthlete joined #perl6
07:32 qeesung joined #perl6
07:42 raschipi TEttinger: aiming to increase redudancy is an infinite loop.
07:53 TEttinger you're in #perl6, there are how many redundant implementations of it?
07:58 raschipi Yes, but if increasing redudancy was our *aim*, everyone would have to start multiple nem implementations...
07:58 raschipi new implementations...
08:03 * tyil nibbles on samcv
08:04 xtreak joined #perl6
08:04 raschipi I'm joking, of course, but I think you meant it's better to be explicit instead of implicit, not that just increasing redudancy is a good thing in itself.
08:06 xtreak joined #perl6
08:07 abraxxa joined #perl6
08:07 TEttinger no I think I meant it to tie back to the characteristic of many people with autism who have difficulty understanding metaphors or non-formal documents and prefer things specified pedantically for clarity
08:07 TEttinger which is not a disadvantage for programmers
08:07 TEttinger or lawyers!
08:08 samcv aren't licenses already pretty precise?
08:08 raschipi I think we just said the same thing in too different ways, there's redudancy for you.
08:08 TEttinger hehe
08:08 samcv :O
08:08 u-ou too?
08:08 samcv also
08:08 raschipi two*
08:09 TEttinger samcv: I think there are lots of shoddy licenses out there. I encountered one
08:09 samcv WTF license?
08:09 samcv http://www.wtfpl.net/txt/copying/
08:09 raschipi Arguing for the everything explicit in #perl6, that's asking for a flamewar.
08:10 samcv i'm still not sure what it actually grants as the license… though i know what the spirit of it is. i still don't know
08:10 eater why not force everyone to use Artistic-2.0? "If you run this program under perl6 it is licensed under Artistic-2.0"
08:10 u-ou what license do I need to use if I release some Perl 6 code?
08:10 TEttinger like this one is just terrible http://oryxdesignlab.com/license
08:10 samcv u-ou, Artistic 2.0 is the most common one
08:10 samcv that's what rakudo moarvm and nqp are licensed as, and the majority of our licensed modules
08:10 TEttinger (that license appears to prevent any usage of the things you buy from oryx)
08:11 parv u-ou, depends mostly on your own motives & anybody else's involved
08:11 samcv i would argue the WTF license doesn't grant anything new. and people already "do what the fuck they want to"
08:11 TEttinger AGPL, watch the world burn
08:12 samcv but i've seen argued that GPL and AGPL at least in europe still allow linking to programs of any license without forceing them to be GPL
08:12 samcv though in other juristictions it could be different
08:12 TEttinger AGPL is a pretty fiendish one though
08:13 TEttinger especially with stuff like Opa, which had an AGPL standard lib for a long time
08:13 samcv yes. but at least in europe. if it's linked then you only need to release the source of the library itself that was modified
08:13 TEttinger so any code that used strings, or numbers, etc. became AGPL. and it was for web dev
08:13 TEttinger so your crypto, needs to be OSS
08:13 pmurias joined #perl6
08:13 raschipi working as intended.
08:13 zakharyas joined #perl6
08:14 TEttinger no surprise, Opa is dead
08:14 japh__ joined #perl6
08:14 masak moritz: "no level of container" makes a modicum of sense, I guess
08:15 masak or rather, I don't understand why it was thought it wouldn't/shouldn't have one, but... if that was the case, then binding'd be the only option
08:15 samcv TEttinger, see https://joinup.ec.europa.eu/community/eupl/news/why-viral-licensing-ghost
08:15 samcv As a conclusion, it looks that in most cases, linking two programs or linking an existing software with your own work does not – at least in Europe – produce a derivative or extends the coverage of the linked software licence to your own work
08:15 samcv ^ the gist of it
08:15 TEttinger I'm not in Europe
08:16 samcv me either
08:16 samcv in other places in is not quite as certain
08:16 TEttinger also, this is just hilarious http://opalang.org/
08:17 TEttinger there's no download link, just some build instructions with a significant omission for windows
08:17 samcv but it hinges on what is a derivitive work TEttinger
08:17 samcv in any jurisdiction
08:18 TEttinger mm
08:18 samcv which is the language the GPL and AGPL use
08:18 TEttinger also any software that needs, as part of its build process, for you to run `sudo ln -s /sbin/md5 /usr/local/bin/md5sum`
08:18 TEttinger maaaaay have a problem
08:18 samcv uhm
08:18 samcv i don't see why
08:19 samcv how is that a derivitive work...
08:19 TEttinger oh that was the Opa thing
08:19 samcv oh
08:19 TEttinger Opa changed from AGPL stdlib to just AGPL compilr
08:19 samcv i should make a "don't do anything" license. as a parady of the do what the fuck you want to license
08:19 samcv which will say you can't do anything. even look at the software
08:19 samcv or think about it
08:20 samcv or maybe "don't do anything you want to"
08:20 raschipi can't copy it even to your mind.
08:20 samcv which is equally meaningless to the wtf license
08:20 samcv haha
08:20 samcv because what does "don't do anything you want to" even mean...
08:20 samcv what if you don't want to do something, are yo uthen allowed to do it?
08:21 parv samcv: is that not for every closed source software & tractors?
08:21 samcv and conversely with the WTF license
08:21 samcv haha
08:21 TEttinger I should make a license that requires anyone who seeks to enforce a patent against the licensor represent themselves in court with a blood alcohol level of 1%
08:21 samcv LOL
08:21 samcv idk if that's legal
08:21 TEttinger if they don't drive
08:21 samcv just make it at least 3/4 of the legal limit
08:21 TEttinger prohibition was repealed samcv
08:21 samcv for a court room
08:21 samcv but. yo ucan't be drunk in court...
08:22 samcv if you fail a breath test they'll throw you own in contempt
08:22 japh__ joined #perl6
08:22 TEttinger public drunkenness yeah
08:22 jast after a blood alcohol level of 1% I'm fairly sure you'll never drive again
08:22 samcv court is in public
08:22 TEttinger hmm, what would be a better requirement
08:22 samcv no not true jast
08:22 TEttinger oh!
08:22 samcv but it is not healthy
08:22 TEttinger must present entire case standing on head
08:23 samcv dunno then no way for case to go forward
08:23 TEttinger if you fail, you must concede
08:23 samcv don't think judge would allow
08:23 samcv LOL
08:23 samcv TEttinger, or how to get parts of your license thrown out in court easily
08:23 samcv RE these things. lol
08:23 TEttinger yes.
08:24 TEttinger but standing on your head must be legal in court, they need to reenact things like assaults where someone's wrestling
08:24 raschipi The other day a judge threw someone in contempt in Brazil because they were using flip-flops. The Superior Court awarded them reparation from the judge that did it.
08:24 samcv haha
08:24 raschipi A judge won't enforce things they don't want to.
08:25 Cabanossi joined #perl6
08:25 jast samcv: AFAIK the lethal dose is around 0.3-0.4% for "unpracticed" drinkers. there have been occasional measurement results of up to 0.7% I believe, but 1% seems a bit much
08:26 TEttinger i suppose in that case you would weigh your options and decline to sue
08:26 jast historical find of 0.77%: http://www.tagesspiegel.de/weltspiegel/alkoholgewoehnung-mann-mit-knapp-7-7-promille-aufgefunden/1371216.html :)
08:27 samcv After a short sobering, the drunkard had already left the hospital.
08:28 samcv seems fine to me
08:28 samcv but i would argue jast 1% would likely the person be unconscious without a very high tolerance
08:28 samcv and could be dangerous. so would be hard to argue in court
08:29 jast yeah, and note the "I've never seen a value this high in my 28 years of doing this job" and "you might survive this once but it'll cause a lot of damage"
08:29 samcv so to meet the requirements you'd have to spend months gaining a tolerance to fight in court
08:30 jast and it'd still be almost 30% more than has ever (?) been encountered
08:31 samcv .ask Zoffix is there anyway we could have `dir :d` or `dir :f` to get all directories or all files etc?
08:31 yoleaux samcv: I'll pass your message to Zoffix.
08:32 robertle joined #perl6
08:32 domidumont joined #perl6
08:33 samcv i can do dir.grep({.d}) but dir :d would be much more convenient
08:34 moritz dir.grep("d" => True) might work
08:35 moritz .grep(*.d)
08:35 samcv but it's a very commonly wanted thing i would think
08:35 samcv to want all folders or all files
08:36 moritz but there's more to it
08:36 moritz what about symlinks?
08:36 moritz should it follow them? treat them as dirs if it points to a dir?
08:36 samcv there is more to it. but.... :d would be like .grep(*.d)
08:37 samcv or dir :d, :f would do dirs and files. would perform like the .d or .f things do
08:37 samcv it just works exactly the same way things already do
08:39 El_Che hi
08:40 moritz ho
08:40 nadim hej
08:40 El_Che 'Trump has to go'
08:40 El_Che oh, we're not doing that :)
08:41 domidumont joined #perl6
08:41 u-ou does $s does Role run all of Role's initialisers on $s?
08:41 gdonald joined #perl6
08:41 u-ou so that you get all of the role's variables reset?
08:41 u-ou I hope that makes sense
08:42 u-ou if you do it multiple times, does it keep resetting variables through the initialisers?
08:42 samcv pyeah it does u-ou
08:43 samcv that's the thing about roles which make them cool
08:43 u-ou yeah, they are cool
08:43 samcv it carries over many more things than `is` does
08:43 u-ou so you don't have to do self.stats = Stats.new, you can just do self does Stats
08:46 u-ou m: role Stuff { has $.i is rw = 0 }; class Thing does Stuff { method inc { $.i++ }; method get { $.i }; method reset { self does Stuff } }; my $t = Thing.new; $t.inc for ^10; $t.get.say; $t.reset; $t.get.say
08:46 camelia rakudo-moar ce37b3: OUTPUT: «10␤0␤»
08:48 u-ou so, every time 'does' is used the initialisers run?
08:48 u-ou i.e. = 0
08:56 domidumont joined #perl6
08:59 espadrine joined #perl6
08:59 u-ou weird. if i change method get to $!i i get 10 again
08:59 u-ou m: role Stuff { has $.i is rw = 0 }; class Thing does Stuff { method inc { $.i++ }; method get { $!i }; method reset { self does Stuff } }; my $t = Thing.new; $t.inc for ^10; $t.get.say; $t.reset; $t.get.say
08:59 camelia rakudo-moar ce37b3: OUTPUT: «10␤10␤»
09:03 u-ou but why? :I
09:06 gregf_ joined #perl6
09:08 timotimo oh you really don't want to "does" your object multiple times
09:08 timotimo m: role Omg { }; my $i = 10; for ^10 { say $i.perl; $i does Omg }
09:08 camelia rakudo-moar ce37b3: OUTPUT: «10␤10␤10␤10␤10␤10␤10␤10␤10␤10␤»
09:08 timotimo bad example
09:09 timotimo m: role Omg { }; class Test { }; my $i = Test.new; for ^10 { say $i.perl; $i does Omg }
09:09 camelia rakudo-moar ce37b3: OUTPUT: «Test.new␤Test+{Omg}.new␤Test+{Omg}+{Omg}.new␤Test+{Omg}+{Omg}+{Omg}.new␤Test+{Omg}+{Omg}+{Omg}+{Omg}.new␤Test+{Omg}+{Omg}+{Omg}+{Omg}+{Omg}.new␤Test+{Omg}+{Omg}+{Omg}+{Omg}+{Omg}+{Omg}.new␤Test+{Omg}+{Omg}+{Omg}+{Omg}+{Omg}+{Omg}+{Omg}.new…»
09:09 timotimo you're creating a new class every time
09:09 u-ou ahhhh
09:09 timotimo that'll also cause deoptimization because we can't be sure about types involved in existing code any more
09:10 u-ou so to reset everything you've mixed in you just have to reset everything you've mixed in
09:11 timotimo you can keep the original object around and use "but" instead of "does"
09:12 wamba joined #perl6
09:13 u-ou m: role R {}; class C {}; my $i = C.new; for ^10 { say $i.perl; $i = $i but R }
09:13 camelia rakudo-moar ce37b3: OUTPUT: «C.new␤C+{R}.new␤C+{R}+{R}.new␤C+{R}+{R}+{R}.new␤C+{R}+{R}+{R}+{R}.new␤C+{R}+{R}+{R}+{R}+{R}.new␤C+{R}+{R}+{R}+{R}+{R}+{R}.new␤C+{R}+{R}+{R}+{R}+{R}+{R}+{R}.new␤C+{R}+{R}+{R}+{R}+{R}+{R}+{R}+{R}.new␤C+{R}+{R}+{R}+{R}+{R}+{R}+{R}+{R}+{R}.…»
09:14 u-ou oh, "the original object"
09:16 Ven joined #perl6
09:17 timotimo oh, but that won't keep changes around of course
09:17 u-ou I'm probably going to just write a "reset" method for my role :P
09:17 timotimo i wonder how to properly delegate to a method of one name in all roles, i don't think we had something for that yet
09:24 sena_kun joined #perl6
09:25 xtreak joined #perl6
09:26 eater self but Stuff?
09:28 u-ou what's the diff. between does and but?
09:28 u-ou I think it's just that but clones the object and does does not
09:34 bjz joined #perl6
09:48 salv0 joined #perl6
09:50 AlexDaniel joined #perl6
09:51 Ven joined #perl6
09:52 tbrowder .tell ugexe zef fails to install Text::Abbrev
09:52 yoleaux tbrowder: I'll pass your message to ugexe.
09:52 wamba joined #perl6
10:00 Cabanossi joined #perl6
10:04 Geth ¦ ecosystem: the-eater++ created pull request #323: Add travis tests for newly added packages
10:04 Geth ¦ ecosystem: review: https://github.com/perl6/ecosystem/pull/323
10:29 xinming joined #perl6
10:30 xtreak joined #perl6
10:37 bjz joined #perl6
10:38 ilogger2 joined #perl6
10:46 Cabanossi joined #perl6
10:47 samcv opened an eco issue https://github.com/perl6/ecosystem/issues/324 so we can track the modules which have nonstandard license keys, now that i'm done with the automable stage. full summary and detail in the summary at the top
10:47 samcv i must go to sleep now. night everybody o/
10:55 salv0 joined #perl6
11:02 Ven joined #perl6
11:21 w4and0er96 assume `my @array = < 3 1 4 5>; ` i wanna know how `@array[*-1] == 5`, what is `*` means and how can i use it
11:21 mr-foobar joined #perl6
11:21 moritz w4and0er96: *-1 creates a callback, just like sub ($x) { $x - 1 }
11:22 moritz w4and0er96: and if you pass such a callback to the [] indexing operator, it calls it with the number of elements as an argument
11:22 moritz so it becomes @array[@array.elems - 1], basically
11:26 w4and0er96 is it a special syntactic sugar? or where else can i use such trick
11:27 moritz m: say map *-1, 1..5;
11:27 camelia rakudo-moar 736be4: OUTPUT: «(0 1 2 3 4)␤»
11:27 moritz w4and0er96: wherever you want to construct a simple function
11:27 moritz m: say map *.uc, <a b c>
11:27 camelia rakudo-moar 736be4: OUTPUT: «(A B C)␤»
11:28 w4and0er96 thx, maybe i got some about it
11:39 Woodi hi #perl6
11:41 Woodi question: if I buy software licence (with code) then what I can do with it ? looks that just buying is MUCH less trouble then the best OOS licence...
11:42 Woodi Oracle and MS just sells per cpu or even core. what about "pay $2^m" where m is number of managers you have in company ? ;)
11:42 samcv open source software is free though. and depending on the license you can modify and include in software that you charge money for without needing to release the source
11:44 Woodi just looks OOS licences are main problem with OOS :)  maybe we do that to yourself ?
11:44 eater .f scr
11:44 eater eh
11:45 samcv Woodi, non open source don't allow you the source PERIOD
11:45 samcv and the licenses don't let you sell it for money
11:46 samcv in certain ways
11:46 samcv so they are more restrictive period. regarding MIT licenses or Artistic licenes
11:46 samcv Artistic 2.0 is pretty nice
11:46 Woodi so selling source code to distributor to resell is impossible business ? :)
11:48 Woodi why painters don't have so much troubles ?
11:48 Geth ¦ doc: 466cc01ac1 | (Samantha McVey)++ | META.info
11:48 Geth ¦ doc: Use SPDX identifier in license field of META.info
11:48 Geth ¦ doc:
11:48 Geth ¦ doc: Use the standardized identifier for the license field.
11:48 Geth ¦ doc: For more details see https://design.perl6.org/S22.html#license
11:48 Geth ¦ doc: review: https://github.com/perl6/doc/commit/466cc01ac1
11:48 Woodi I guess purpose of Artistic license is to have similiar case...
11:49 samcv you can sell proprietary software with open source parts in it easily
11:50 pmurias samcv: there are non open source things that allow you access to the source
11:50 yoleaux 18 Apr 2017 00:58Z <MasterDuke_> pmurias: i think NQP_VERBOSE_EXCEPTIONS=1 is what gives better jvm errors
11:50 samcv just keep the proprietary stuff not open source if you want to remain ability to pursue people distributing it or something idk. depends what profit model is
11:50 samcv pmurias, that's not possible
11:50 samcv do you mean free software?
11:51 sena_kun is it just me or zef install File::Ignore doesn't work on latest rakudo?
11:51 samcv open source... definition means you can read it
11:51 samcv uh sena_kun passed for me uh
11:51 samcv 3 days ago?
11:51 samcv oh wait. nope
11:52 samcv it fails!
11:52 sena_kun samcv, well, I'll open an issue. Thanks!
11:52 samcv forgot the bug here http://hack.p6c.org/~samcv/install_log_live.txt but search for "Testing [FAIL]: File::Ignore"
11:52 samcv if you have the power add it to here https://github.com/perl6/ecosystem/issues/318
11:52 samcv if you're in p6 group. i need to sleep
11:52 sena_kun samcv, sure.
11:52 pmurias samcv: is "you can change the source code but must give as 5% of your profits for anything you use it" Open Source?
11:52 samcv or just reply if not
11:52 sena_kun samcv, sleep well.
11:52 samcv yes pmurias
11:53 samcv open means you can read it
11:53 samcv free means that you can freely copy and alter it
11:53 samcv also. that's not a license that's a contract
11:53 samcv what you described
11:54 samcv very different legally. one is copyright law other is contract law
11:54 samcv also night o/
11:54 samcv i should have been to bed hours ago
11:55 samcv also this has  agood answer https://softwareengineering.stackexchange.com/questions/107883/agpl-what-you-can-do-and-what-you-cant
11:55 samcv but gpl 3 is not that bad, but companies don't like it because of uh. they don't understand fully when it is and isn't covered. so. but that makes sense
11:55 samcv anyway
11:56 samcv it talks about contract and copyright differences (as long as i linked the right thing). night
11:58 sena_kun the list is updated
12:01 samcv also for extra points, search for `===> Testing [FAIL]` on that log txt http://hack.p6c.org/~samcv/install_log_live.txt and add them too ;)
12:01 sena_kun is there anyone who can give me a hint about new braid(?) policy? I mean the "define_slang" thing. It was implemented about two months ago(as I remember), but I was too slow to update my slang that time.
12:01 samcv Zzz
12:01 sena_kun samcv, roger!
12:02 jnthn I somewhat fear the File::Ignore thing is going to turn out to be a Rakudo regression
12:02 jnthn Because I've installed it not all that long ago
12:03 jnthn And even if I go back in the module's history some way, stuff still fails
12:04 jnthn So it's not a regression in the module due to recent changes
12:04 sena_kun regressions are unavoidable, I guess. though, for two months of difference rakudo feels slightly faster for me now, so everyone++
12:07 jnthn m: say 'resultA.txt' ~~ /'result-' <[AB]-[/]> '].txt'<?before "/" | $> /
12:07 camelia rakudo-moar 736be4: OUTPUT: «Nil␤»
12:07 jnthn commitable6: 2017.02 say 'resultA.txt' ~~ /'result-' <[AB]-[/]> '].txt'<?before "/" | $> /
12:07 committable6 jnthn, ¦2017.02: «Nil»
12:07 jnthn ah, d'oh
12:07 Ven joined #perl6
12:07 nowan joined #perl6
12:08 jnthn commitable6: 2017.02 say 'result-A.txt' ~~ /'result-' <[AB]-[/]> '].txt'<?before "/" | $> /
12:08 committable6 jnthn, ¦2017.02: «Nil»
12:08 jnthn oh hmm
12:08 jnthn yeah, that's wrongly generated, jsut spotted the ]
12:15 jnthn It's taking a little time to golf, but I've got an idea what might be going on
12:16 wamba joined #perl6
12:19 mr-foobar joined #perl6
12:25 sena_kun >Cannot import symbol DOM from Template::Anti, because it already exists in this lexical scope
12:25 jnthn This is super weird
12:25 sena_kun it seems that there is a lot of broken modules. :|
12:25 jnthn The mere presence of an action method with an empty body causes a later match to be wrong
12:26 grondilu joined #perl6
12:26 jnthn m: https://gist.github.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e
12:26 camelia rakudo-moar 736be4: OUTPUT: «「[AB].txt」␤ matcher => 「AB」␤ matcher => 「].txt」␤»
12:27 jnthn commitable6: HEAD https://gist.github.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e
12:27 committable6 jnthn, It looks like a URL, but mime type is ‘text/html; charset=utf-8’ while I was expecting something with ‘text/plain’ or ‘perl’ in it. I can only understand raw links, sorry.
12:27 jnthn Slacker!
12:27 jnthn committable6: HEAD https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:27 committable6 jnthn, Successfully fetched the code from the provided URL.
12:27 committable6 jnthn, ¦HEAD(736be4d): «「[AB].txt」␤ matcher => 「AB」␤ matcher => 「].txt」»
12:27 jnthn committable6: 2017.02 https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:27 committable6 jnthn, Successfully fetched the code from the provided URL.
12:27 committable6 jnthn, ¦2017.02: «「[AB].txt」␤ matcher => 「AB」␤ matcher => 「.txt」»
12:27 jnthn Note the ] that has sneaked in to the final matcher capture
12:28 jnthn bisectable6: https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:28 bisectable6 jnthn, Successfully fetched the code from the provided URL.
12:28 bisectable6 jnthn, Bisecting by output (old=2015.12 new=736be4d) because on both starting points the exit code is 0
12:28 bisectable6 jnthn, bisect log: https://gist.github.com/119eb26d8ca245bf59ec05bc014c9fc2
12:28 bisectable6 jnthn, There are 20 candidates for the first “new” revision. See the log for more details
12:29 jnthn Aww
12:29 jnthn committable6: 2017.03 https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:29 committable6 jnthn, Successfully fetched the code from the provided URL.
12:29 committable6 jnthn, ¦2017.03: «「[AB].txt」␤ matcher => 「AB」␤ matcher => 「.txt」»
12:29 jnthn committable6: 2017.04 https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:29 committable6 jnthn, Successfully fetched the code from the provided URL.
12:29 committable6 jnthn, ¦2017.04: «「[AB].txt」␤ matcher => 「AB」␤ matcher => 「].txt」»
12:31 Cabanossi joined #perl6
12:31 jnthn committable6: e0e0800 https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:31 committable6 jnthn, Successfully fetched the code from the provided URL.
12:31 committable6 jnthn, ¦e0e0800: «「[AB].txt」␤ matcher => 「AB」␤ matcher => 「.txt」»
12:31 domidumont joined #perl6
12:31 jnthn committable6: fbf19d88dac7 https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:31 committable6 jnthn, Successfully fetched the code from the provided URL.
12:31 committable6 jnthn, ¦fbf19d8: «Cannot test this commit (Commit exists, but a perl6 executable could not be built for it)»
12:31 jnthn hmmm
12:31 jnthn That was the uncurse merge
12:31 jnthn Which I'm suspecting but can't easily prove
12:32 jnthn committable6: 63e76d7 https://gist.githubusercontent.com/jnthn/f26b1ed53e6ee12d7f2f88256523af0e/raw/f7266905428bd8a5844d2911df9e02d79854e3a0/mismatch.p6
12:32 committable6 jnthn, Successfully fetched the code from the provided URL.
12:32 committable6 jnthn, ¦63e76d7: «Cannot test this commit (Commit exists, but a perl6 executable could not be built for it)»
12:32 * jnthn files a rakudobug with what he's managed to figre out
12:32 jnthn *figure
12:33 bjz_ joined #perl6
12:33 sena_kun jnthn++
12:33 xtreak joined #perl6
12:33 jnthn sena_kun++ # reporting it :)
12:35 Ven_ joined #perl6
12:35 sena_kun jnthn, I just merely tried to install Ddt to fix my Slang module, and File::Ignore(the dependency of Ddt) was broken and... Well, the dependency chain goes here. Yet I still don't know how to fix my module.
12:35 japh____ joined #perl6
12:42 jnthn Filed it; hoping TimToady++ might have an idea what's up :)
12:43 domidumont joined #perl6
12:45 Actualeyes joined #perl6
12:45 Geth ¦ doc: 6172df409c | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/IO.pod6
12:45 Geth ¦ doc: Mention interaction between indir...
12:45 Geth ¦ doc:
12:45 Geth ¦ doc: ...$*CWD and lazily evaluted results returned from indir
12:45 Geth ¦ doc: review: https://github.com/perl6/doc/commit/6172df409c
12:50 sufrostico joined #perl6
12:51 parrot_bird joined #perl6
12:52 darutoko- joined #perl6
12:54 mcmillhj joined #perl6
12:54 Ven_ joined #perl6
12:59 kurahaupo joined #perl6
13:01 Cabanossi joined #perl6
13:26 astj joined #perl6
13:30 sena_kun .tell samcv I have raided install_log_live.txt a bit, but, hmm... "cat install_log_live.txt | grep 'Testing \[FAIL\]' | sort | uniq | nl" gives me 132. Of course, some of them are failing because of missing native library, but it is approximately 70-100 modules to re-check and add to issue description. I wonder if it can be automated somehow.
13:30 yoleaux sena_kun: I'll pass your message to samcv.
13:31 * grondilu mans nl
13:33 sena_kun grondilu, it should be, hmm, wc -l, but I'm more used to nl somehow.
13:34 Hor|zon joined #perl6
13:35 Ven joined #perl6
13:42 skids joined #perl6
13:46 Cabanossi joined #perl6
13:48 astj joined #perl6
13:53 SmokeMachine anyone ever tried to use native call with OpenCL on mac?
13:54 Ven_ joined #perl6
13:55 SmokeMachine im trying to run the PerlCL: https://github.com/kmwallio/PerlCL/blob/master/play.p6
13:56 cowens joined #perl6
14:05 mcmillhj joined #perl6
14:06 darutoko joined #perl6
14:10 ugexe tbrowder: I'm surprised Text::Abbrev ever worked - `unit module Abbrev;`
14:10 yoleaux 09:52Z <tbrowder> ugexe: zef fails to install Text::Abbrev
14:12 tbrowder ugexe: I didn't check it closely, thsnks.
14:13 w4and0er96 is there some usual use of `$_` and `@_`
14:13 w4and0er96 new to perl, I find it too odd to understand
14:15 b2gills If you put an object in 「$_」 you can call methods on it without mentioning it 「.method」 is short for 「$_.method」
14:16 cowens $_ is default variable it is targeted by some functions and syntax by default
14:16 cowens I think Perl 6 calls it the “subject”
14:16 cowens @_ is where your arguments to a function are stored if you don’t specify a signature
14:19 Ven joined #perl6
14:19 b2gills There is also 「$/」 which is mostly used for regex results. 「$<key>」 is short for 「$/<key>」 and 「$0」 is short for 「$/[0]」
14:19 grondilu m: say sub { $_ }("hello")
14:19 camelia rakudo-moar 736be4: OUTPUT: «Too many positionals passed; expected 0 arguments but got 1␤  in sub  at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
14:20 grondilu m: say { $_ }("hello")
14:20 camelia rakudo-moar 736be4: OUTPUT: «hello␤»
14:20 grondilu works for blocks but not subroutines, though
14:21 wamba joined #perl6
14:21 cowens m: say sub { @_ }("hello")
14:21 camelia rakudo-moar 736be4: OUTPUT: «[hello]␤»
14:21 b2gills m: {say @_; say $_}('hello')#If you have both @_ and $_ in a block, then @_ takes precedence
14:21 camelia rakudo-moar 736be4: OUTPUT: «[hello]␤(Any)␤»
14:26 b2gills w4and0er96: In case you didn't know we have docs online https://docs.perl6.org/syntax/$_ please let us know if you have trouble understanding anything in them so that we can improve them
14:28 w4and0er96 ok i'll try to understand it, thank you all
14:28 b2gills Those of us who understand the language can only easily see logical errors in the docs, not what is missing, so we need new people to let us know.
14:30 dct joined #perl6
14:32 samcv sena_kun, sounds good to me
14:32 yoleaux 13:30Z <sena_kun> samcv: I have raided install_log_live.txt a bit, but, hmm... "cat install_log_live.txt | grep 'Testing \[FAIL\]' | sort | uniq | nl" gives me 132. Of course, some of them are failing because of missing native library, but it is approximately 70-100 modules to re-check and add to issue description. I wonder if it can be automated somehow.
14:33 samcv feel free to restructure to allow easier updatinng
14:33 * samcv &
14:34 sena_kun samcv, well, I have some free time anyway, so I will think about it. The github issue's form looks a bit strange for me, but anyway. I will restructure and update the issue then later.
14:35 samcv yeah it is weird. and i totally agree it could be a lot better
14:37 * samcv heads back to bed
14:38 sena_kun samcv, sleep well! # hint: just `poweroff` that damn internet-connected thing already!
15:07 ugexe anyone know github:softmoth / Tim Smith irc handle?
15:08 TreyHarris :m class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); "x: {.x} y: {.y}" given $p;
15:08 TreyHarris agh
15:08 TreyHarris m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); "x: {.x} y: {.y}" given $p;
15:08 camelia rakudo-moar b2a64a: OUTPUT: «WARNINGS for <tmp>:␤Useless use of "x: {.x} y: {.y}" in expression "x: {.x} y: {.y}" in sink context (line 1)␤»
15:08 tadzik I think softmoth used to hang around here, no?
15:08 tadzik .seen softmoth
15:08 yoleaux I saw softmoth 20 Oct 2015 06:17Z in #perl6: <softmoth> Explicitly specifying modules (what looks like Crust::Runner's current approach) puts the burden on the end user, which is also brittle and tedious, but it works and puts the solution at the same level as the error will show up.
15:09 tadzik yeah, years ago :)
15:09 ugexe heh
15:09 TreyHarris m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); my $out = "x: {.x} y: {.y}" given $p;
15:09 camelia rakudo-moar b2a64a: ( no output )
15:10 TreyHarris Is that the most concise way to interpolate several stringy attributes of the same object?
15:10 TreyHarris m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); my $out = "x: {.x} y: {.y}" given $p; say $out;
15:10 camelia rakudo-moar b2a64a: OUTPUT: «x: 3 y: 5␤»
15:11 Zoffix joined #perl6
15:12 Zoffix m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); say $p.Capture;
15:12 camelia rakudo-moar 89f2ae: OUTPUT: «\(:x(3), :y(5))␤»
15:12 TreyHarris And, .sprintf doesn't support named parameters--am I missing the way to do this if I need additional format control?
15:12 TreyHarris Zoffix: sorry, I wasn't literally talking about like that. Assume
15:12 avuserow TreyHarris, try using `with` instead of `given`
15:12 TreyHarris m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); my $out = "My x-val is {.x}, and as for y: {.y}" given $p; say $out;
15:12 camelia rakudo-moar 89f2ae: OUTPUT: «My x-val is 3, and as for y: 5␤»
15:12 Zoffix TreyHarris: looks pretty consise to me...
15:13 avuserow m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); my $out = "My x-val is {.x}, and as for y: {.y}" with $p; say $out;
15:13 camelia rakudo-moar 89f2ae: OUTPUT: «My x-val is 3, and as for y: 5␤»
15:13 Zoffix `with` won't work with all objects
15:14 Zoffix m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); my $out = sprintf "My x-val is %s, and as for y: %s", |$p.Capture<x y>; say $out;
15:14 camelia rakudo-moar 89f2ae: OUTPUT: «My x-val is 3, and as for y: 5␤»
15:14 TreyHarris Zoffix: agreed. But what if I want to do formatting, is there a pythonish named-parameter variant of sprintf I'm not seeing lurking somewhere?
15:14 TreyHarris So I can embed the names in the format rather than in the args?
15:15 Zoffix m: class Point { has $.x; has $.y; }; my $p = Point.new(:3x, :5y); my $out = {"My x-val is $:x, and as for y: $:y"}(|$p.Capture); say $out
15:15 camelia rakudo-moar 89f2ae: OUTPUT: «My x-val is 3, and as for y: 5␤»
15:17 TreyHarris Zoffix: yep, I've got lots of ways to do straight interpolation. But if I want column and alignment control, sprintf with a capture is the best I'm going to do?
15:18 perlpilot TreyHarris: There's always the Form module.
15:19 Zoffix TreyHarris: .Capture won't always give all the attrs.  I'd just use sprintf '%s.... %s', .x, .y, .z with $foo
15:19 Zoffix buggable: eco Form
15:19 buggable Zoffix, Found 37 results: Math::FourierTransform, Text::Diff, BioPerl6, BioInfo, DateTime::Format. See https://modules.perl6.org/#q=Form
15:20 Zoffix buggable: dude, learn to give exact matches, bruh
15:20 TreyHarris Zoffix: yeah. I have a table of formats I need to select on with varying number of columns depending on the underlying implementation
15:20 Zoffix No docs.
15:21 TreyHarris I can convert the table into multis returning strings across all those implementations, but I'd kinda like to keep them together
15:23 devmikey joined #perl6
15:23 iyra joined #perl6
15:24 TreyHarris perlpilot: Form? I don't see it in ecosystem... I remember it from the apocalypse and exegesis....
15:24 TreyHarris m: use Form;
15:24 camelia rakudo-moar 89f2ae: OUTPUT: «===SORRY!===␤Could not find Form at line 1 in:␤    /home/camelia/.perl6␤    /home/camelia/rakudo-m-inst-1/share/perl6/site␤    /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤    /home/camelia/rakudo-m-inst-1/share/perl6␤    CompUnit::Reposi…»
15:25 Zoffix TreyHarris: it *is* in the ecosystem
15:25 japh__ joined #perl6
15:25 Zoffix TreyHarris: https://modules.perl6.org/repo/Form
15:25 TreyHarris Zoffix: oh crap, I was searching on '\bForm', forgot that despite my -i when you use a capital with ack it turns -i off
15:26 TreyHarris Zoffix: sorry, that was like one of the first things I looked for before asking anything here, sorry :-/
15:26 perlpilot TreyHarris: but, as Zoffix said ... no docs.  You'd have to read the docs from Perl 5's Perl6::Form
15:26 TreyHarris perlpilot: That's fine, I've used it before.
15:28 buggable joined #perl6
15:28 eater m: multi sub prefix:<7>(Any --> Any) { say "yo" }; 7 4
15:28 camelia rakudo-moar 89f2ae: OUTPUT: «yo␤»
15:28 eater :D
15:29 Zoffix eater: I'll raise ya
15:29 Zoffix m: sub infix:<⁣> { $^a + $^b }; say 2⁣2;
15:29 camelia rakudo-moar 89f2ae: OUTPUT: «4␤»
15:29 Zoffix :)
15:29 eater :')
15:30 eater Zoffix btw what do you think about that MR I sent, too harsh or okay?
15:30 TreyHarris What's the right way to write a method whose multiple underlying OS-dependent native implementations will return either an iterable thingy or a list all at once? Flatten the iterator ones, turn the array ones into iterators, neither and just return what you get assuming people will use it in a way that works either way?
15:30 Zoffix buggable: eco Form
15:31 buggable Zoffix, Form 'A Perl 6 implementation of Perl 6-style string formatting.': https://github.com/perl6/form 37 other matching results: https://modules.perl6.org/#q=Form
15:31 Zoffix yey
15:31 TreyHarris Zoffix: nice, thanks
15:31 buggable joined #perl6
15:32 Zoffix m: say List ~~ Iterable
15:32 camelia rakudo-moar 89f2ae: OUTPUT: «True␤»
15:32 TreyHarris Zoffix: right. Is this where "Slip" comes in handy?
15:32 Zoffix TreyHarris: you mean a Seq by iterable thingy? I'd convert it all to one return value, so it'd be predictable.
15:33 Zoffix Slip is a List that flattes itself into outer iterables
15:33 Zoffix m: say Slip ~~ List
15:33 camelia rakudo-moar 89f2ae: OUTPUT: «True␤»
15:33 Zoffix eater: didn't have time to review any of it; other than the $line < 6 stuff I mentioned this morning.
15:34 eater Zoffix: that's fine :) It's currently pretty horrible (faking a Test environment and stuff) but yeah take your time
15:34 Zoffix TreyHarris: just stick a .List or .Seq as a coercer
15:35 azawawi joined #perl6
15:35 TreyHarris Zoffix: some OSes implement a readdir-like one-at-a-time interface, others implement an array-return interface
15:35 azawawi Hi
15:36 TreyHarris I could make the readdir ones lazy
15:36 Zoffix eater: well, I don't think I'll be reviewing it. Just merge it. It's just for travis stuff, right? I don't see much need to deliberate it in PR form. Merge it. Iron out the bugs. Done
15:36 Zoffix eater: I sent you an invite to perl6 GitHub org, so you should be able to merge your PR yourself
15:36 eater Zoffix: thanks :D
15:37 Zoffix TreyHarris: yeah, and return those as Seq. And for those that are all-at-a-time, I'd coerce them to Seqs just to keep up the consistency with the return value.
15:37 * Zoffix goes to do things
15:37 Zoffix \o
15:37 Zoffix left #perl6
15:37 TreyHarris Zoffix++
15:38 TreyHarris Er, now anyone lurking knows that I agree with Zoffix anyway :-)
15:39 itaipu joined #perl6
15:40 eater :D
15:43 iyra can someone please tell me the most efficient way of using a regex to parse a line starting with : but not a line starting with \:?
15:45 ChoHag /^:/ ?
15:45 sena_kun m: ":haha".starts-with(':')
15:45 camelia rakudo-moar 89f2ae: ( no output )
15:45 sena_kun m: say ":haha".starts-with(':')
15:45 camelia rakudo-moar 89f2ae: OUTPUT: «True␤»
15:45 sena_kun m: say "\:haha".starts-with(':')
15:45 camelia rakudo-moar 89f2ae: OUTPUT: «True␤»
15:45 sena_kun m: say "\\:haha".starts-with(':')
15:45 camelia rakudo-moar 89f2ae: OUTPUT: «False␤»
15:46 sena_kun If this check is everything you want, of course.
15:46 iyra thanks a lot, that helps!
15:46 iyra I just realised after I posted it that it's obvious :)
15:46 sena_kun iyra, yw
15:47 sena_kun and simple string methods are much, much faster than any regex-related work, afaik
15:53 TreyHarris sena_kun: in most cases. Not all. When ratcheting can be usefully applied to reject large swaths of work, the regex will be faster than the string operation unless you write extra stuff that does the equivalent of ratcheting.
15:54 TreyHarris but "starts-with" is definitely not such a case unless the string you pass to start-with is very long (and maybe not even then, lemme see how it's implemented...)
15:55 sena_kun TreyHarris, well, I guess you are right. I am not an expert in such questions, just a useless young folk who sometimes can do some easy-tiredsome work. :)
15:56 sena_kun s/tiredsome/tiresome/
15:58 sena_kun buggable, eco Tardis
15:58 buggable sena_kun, Nothing found
15:58 sena_kun eeeeeh.
16:13 sena_kun how that great and cool and useful channel with Zoffix's bots is called again? I need to assault buggable a bit.
16:13 sena_kun ah, stop, nevermind.
16:15 sena_kun buggable, eco 007
16:15 buggable sena_kun, 007 'Small experimental language with a license to macro': https://github.com/masak/007
16:15 sena_kun well, it doesn't work in private for me, so the channel still will be greatly appreciated.
16:19 MasterDuke_ sena_kun: i think #zofbot
16:19 sena_kun MasterDuke_, thanks a lot
16:22 imcsk8 joined #perl6
16:24 astj joined #perl6
16:27 john51_ joined #perl6
16:30 robertle joined #perl6
16:31 Cabanossi joined #perl6
16:44 iyra how can I sort a hash by key, using a custom sort function (lambda)?
16:48 sena_kun .tell samcv I have much or less updated https://github.com/perl6/ecosystem/issues/318 - it was done automatically, so troubles may occur, but now we have some pattern to investigate further. And I believe that it is not, well, "our" issue, to be honest. There are some modules that has already working PRs with fixes, but authors just don't merge them. Some libraries are easily abandoned. We need some policy from our side about it, imho,
16:48 yoleaux sena_kun: I'll pass your message to samcv.
16:48 sena_kun though I cannot come up with any just now.
16:49 sena_kun .tell samcv also, there are some false positives in your link, please, check it and consider removing of some entries(I've made appropriate comments there).
16:49 yoleaux sena_kun: I'll pass your message to samcv.
16:49 sena_kun s/link/links/
16:52 sena_kun let's call it a day. thanks for everyone's help today! \o
16:53 sena_kun joined #perl6
16:53 Actualeyes left #perl6
16:54 sena_kun .tell samcv p.s. and I doubt that travis log's are needed. There are false positives("job exceed...", you know what I mean) and false negatives(the package is "green", but with a new rakudo it still fails).
16:54 yoleaux sena_kun: I'll pass your message to samcv.
17:01 TreyHarris m: my %h = gather {for (1..20) { take $_ => 'f' }}; %h.sort({$^a.key <=> $^b.key});
17:01 camelia rakudo-moar 89f2ae: ( no output )
17:01 TreyHarris m: my %h = gather {for (1..20) { take $_ => 'f' }}; %h.sort({$^a.key <=> $^b.key}); say %h.perl;
17:01 camelia rakudo-moar 89f2ae: OUTPUT: «{"1" => "f", "10" => "f", "11" => "f", "12" => "f", "13" => "f", "14" => "f", "15" => "f", "16" => "f", "17" => "f", "18" => "f", "19" => "f", "2" => "f", "20" => "f", "3" => "f", "4" => "f", "5" => "f", "6" => "f", "7" => "f", "8" => "f", "9" => "f"}␤»
17:01 Cabanossi joined #perl6
17:01 TreyHarris m: my %h = gather {for (1..20) { take $_ => 'f' }}; say %h.sort({$^a.key <=> $^b.key});
17:01 camelia rakudo-moar 89f2ae: OUTPUT: «(1 => f 2 => f 3 => f 4 => f 5 => f 6 => f 7 => f 8 => f 9 => f 10 => f 11 => f 12 => f 13 => f 14 => f 15 => f 16 => f 17 => f 18 => f 19 => f 20 => f)␤»
17:01 TreyHarris iyra: ^^ ignore the first
17:03 iyra thanks a lot TreyHarris :)
17:04 TreyHarris iyra: there may be a simpler P6ical way, but that's the Perl 5-ish way. If you wanted to sort by values, not keys, you shouldn't use that method though. See https://docs.perl6.org/type/Hash for examples of that.
17:05 TreyHarris iyra: and, unlike in Perl 5, if you're using a Hash merely for its keys, you should be using Bag, Set, BagHash or BagSet instead.
17:07 MasterDuke_ m: my %h = gather {for (1..20) { take $_ => 'f' }}; say %h.sort(*.key)
17:07 camelia rakudo-moar 89f2ae: OUTPUT: «(1 => f 10 => f 11 => f 12 => f 13 => f 14 => f 15 => f 16 => f 17 => f 18 => f 19 => f 2 => f 20 => f 3 => f 4 => f 5 => f 6 => f 7 => f 8 => f 9 => f)␤»
17:07 MasterDuke_ m: my %h = gather {for (1..20) { take $_ => 'f' }}; say %h.sort(+*.key)
17:07 camelia rakudo-moar 89f2ae: OUTPUT: «(1 => f 2 => f 3 => f 4 => f 5 => f 6 => f 7 => f 8 => f 9 => f 10 => f 11 => f 12 => f 13 => f 14 => f 15 => f 16 => f 17 => f 18 => f 19 => f 20 => f)␤»
17:10 TreyHarris MasterDuke_: I do not understand. Why does hyperwhatever cause a non-cmp sort? Or is something else happening?
17:11 MasterDuke_ it defaults to string comparison
17:11 MasterDuke_ m: my %h = gather {for (1..20) { take $_ => 'f' }}; say %h.sort({$^a.key cmp $^b.key});
17:11 camelia rakudo-moar 89f2ae: OUTPUT: «(1 => f 10 => f 11 => f 12 => f 13 => f 14 => f 15 => f 16 => f 17 => f 18 => f 19 => f 2 => f 20 => f 3 => f 4 => f 5 => f 6 => f 7 => f 8 => f 9 => f)␤»
17:14 jnthn The assignment to %h stringifies the keys
17:14 jnthn So while sort may use cmp, which will happily sort integers, the keys are not integers any more by that point.
17:15 jnthn m: my %h{Int} = gather {for (1..20) { take $_ => 'f' }}; say %h.sort(*.key)
17:15 camelia rakudo-moar 89f2ae: OUTPUT: «(1 => f 2 => f 3 => f 4 => f 5 => f 6 => f 7 => f 8 => f 9 => f 10 => f 11 => f 12 => f 13 => f 14 => f 15 => f 16 => f 17 => f 18 => f 19 => f 20 => f)␤»
17:17 MasterDuke_ better explanation
17:17 TreyHarris I understand that bit. But why does a string-keyed hash sort numerically when **.key is used?
17:17 nadim joined #perl6
17:18 TreyHarris Oh! That's +*.key.... my eyesight.... gah
17:18 MasterDuke_ +*, not **
17:18 mcmillhj joined #perl6
17:18 jnthn :)
17:18 TreyHarris And I was embarrassingly about to try using bisectable6 to figure out when that started working b/c it doesn't work on my installation.
17:19 * TreyHarris sighs
17:31 Cabanossi joined #perl6
17:39 astj joined #perl6
17:48 roguelazer joined #perl6
17:49 labster joined #perl6
17:53 ufobat_ joined #perl6
18:07 dct joined #perl6
18:22 shdb joined #perl6
18:23 iyra joined #perl6
18:37 domidumont joined #perl6
18:42 timotimo a little much to backlog today, so i'll skip some parts
18:47 El_Che #perl6. The good parts
19:02 gdonald joined #perl6
19:03 * moritz just offers #perl6. The comprehensive guide.
19:14 timotimo what options do i have on an ios phone to offer a website and have it pretend to be an app?
19:15 timotimo i've found the "add to home screen" button in safari, which is a start
19:16 El_Che that's it
19:17 timotimo m(
19:18 El_Che there are certainly frameworks to turn a webpage into a "real" app, but you'll need to pay to get it into the closed garden
19:18 timotimo my mom wants a super simple thing, and i'm def not going to shell out what 60 dollars or so for a developer's license and find a macbook to work with
19:18 timotimo haha, i'll develop it for Nintendo DS and give her my old device :D
19:19 El_Che well, it depends if you love your mom or not :)
19:20 timotimo don't question my love for my mommy
19:21 El_Che true
19:21 timotimo i'm going to do javascript for her sake
19:21 El_Che she can play mario as well
19:21 El_Che so everyone wins!
19:21 timotimo arguably a fate worse than death
19:31 timotimo XML is broken because it's using IO in a signature
19:32 timotimo oh
19:32 timotimo it wasn't XML
19:32 dct joined #perl6
19:33 timotimo er, or it was XML and the function in question just wasn't tested in XML itself
19:34 timotimo what the heck
19:36 r3m left #perl6
19:38 iyra can someone please help me understand what $x.Int returns if $x can't be converted to an integer, and how to check for it?
19:39 timotimo m: say "hello".Int.perl
19:39 camelia rakudo-moar 3cff74: OUTPUT: «Failure.new(exception => X::Str::Numeric.new(source => "hello", pos => 0, reason => "base-10 number must begin with valid digits or '.'"), backtrace => Backtrace.new)␤»
19:40 timotimo m: say ("hello" // -1)
19:40 camelia rakudo-moar 3cff74: OUTPUT: «hello␤»
19:40 timotimo oops
19:40 timotimo m: say ("hello".Int // -1)
19:40 camelia rakudo-moar 3cff74: OUTPUT: «-1␤»
19:40 timotimo m: say ("hello".Int ~~ Nil)
19:40 camelia rakudo-moar 3cff74: OUTPUT: «True␤»
19:40 timotimo any of those ways will be fine, iyra
19:41 iyra thanks :)
19:41 TimToady PSA: the File::Ignore module is working again (and maybe any other modules that were failing due to use of the <( )> construct)
19:41 TimToady .tell sena_kun File::Ignore is working again
19:41 yoleaux TimToady: I'll pass your message to sena_kun.
19:46 Cabanossi joined #perl6
19:46 iyra timotimo, what is a good way of checking if multiple variables can be converted to Int or not? I have 7 or 8 variables to check this way
19:47 [Coke] should they be separate variables or in an array/
19:48 iyra i have them as separate variables
19:48 eater theres not zef init :(
19:48 AlexDaniel m: say ("58", "25c", "60).any.Int ~~ Nil
19:48 camelia rakudo-moar 3cff74: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at <tmp>:1␤------> 3say ("58", "25c", "60).any.Int ~~ Nil7⏏5<EOL>␤    expecting any of:␤        double quotes␤        t…»
19:48 AlexDaniel m: say ("58", "25c", "60").any.Int ~~ Nil
19:48 camelia rakudo-moar 3cff74: OUTPUT: «True␤»
19:48 AlexDaniel m: say ("58", "25", "60").any.Int ~~ Nil
19:48 camelia rakudo-moar 3cff74: OUTPUT: «False␤»
19:48 [Coke] m: my @a = 1.0,3/2,4/2,1.5,π; say @a.map{$_.narrow}.perl;
19:48 iyra thanks!
19:48 camelia rakudo-moar 3cff74: OUTPUT: «Cannot resolve caller map(Array: ); none of these signatures match:␤    ($: Hash \h, *%_)␤    (\SELF: &block;; :$label, :$item, *%_)␤    (HyperIterable:D $: &block;; :$label, *%_)␤  in block <unit> at <tmp> line 1␤␤»
19:49 AlexDaniel iyra: maybe junctions again
19:49 iyra junctions are one thing I think are most confusing about perl 6 for me, anyway
19:49 [Coke] m: my @a = 1.0,3/2,4/2,1.5,π; say @a.map({$_.narrow}).perl;
19:49 camelia rakudo-moar 3cff74: OUTPUT: «(1, 1.5, 2, 1.5, 3.14159265358979e0).Seq␤»
19:49 [Coke] there's a difference between .narrow and ~~ Int
19:50 [Coke] so, depending on which question you're trying to answer...
19:50 [Coke] m: my @a = 1.0,3/2,4/2,1.5,π; say @a.grep({$_.narrow ~~ Int}).perl;
19:50 camelia rakudo-moar 3cff74: OUTPUT: «(1.0, 2.0).Seq␤»
19:50 iyra testing converting to Int is what I care about, but I don't really care about the result
19:51 AlexDaniel junctions then \o/
19:51 [Coke] then you want that last one - is the .narrow'd result ~~ Int.
19:51 iyra thanks
19:51 [Coke] You probably don't want junctions.
19:51 [Coke] (unless you only care about one of the variables)
19:52 [Coke] (or all of them)
19:54 gdonald joined #perl6
19:58 itaipu joined #perl6
20:05 TreyHarris m: my @a = 1.0,3/2,4/2,1.5,π,i,i*i; say @a.map({$_.narrow.WHAT})
20:05 camelia rakudo-moar 9ed89d: OUTPUT: «((Int) (Rat) (Int) (Rat) (Num) (Complex) (Int))␤»
20:08 TreyHarris m: my @a = 1.0,3/2,4/2,1.5,π,i,i*i; say @a.map({($_.WHAT, $_.narrow.WHAT)})
20:08 camelia rakudo-moar 9ed89d: OUTPUT: «(((Rat) (Int)) ((Rat) (Rat)) ((Rat) (Int)) ((Rat) (Rat)) ((Num) (Num)) ((Complex) (Complex)) ((Complex) (Int)))␤»
20:13 astj joined #perl6
20:14 iyra AlexDaniel, it's strange, I can't get something like this to work:  if (($year, $month, $day, $hour, $min, $sec).any.Int ~~ Nil) { ... }
20:15 iyra I get error: "No such method 'Int' for invocant of type 'Any'
20:15 iyra " instead
20:15 AlexDaniel iyra: one of your variables is Any
20:16 geekosaur betting they were expecting undefined to be Nil instead of Any
20:21 devmikey joined #perl6
20:22 iyra yeah, thanks, some of my variables were undefined..
20:25 timotimo phew, i was somehow working with an outdated version of exemel even though i was kind of certain i had gotten the newest one
20:25 timotimo crisis averted
20:29 iyra why can't I index hashes using strings? For example, if i have: my %langs = { 'en' => 'English', 'ja' => 'Japanese' }; then why doesn't %langs<"en"> return the value? Instead it return (Any)
20:29 ilbelkyr you want %langs<en>, or %langs{"en"}
20:29 iyra I have to use %langs<en> but I don't know how to do that if I'm using a string variable to index (such as %langs<$my_language_code>)
20:30 iyra ah, okay, thanks
20:30 iyra I thought they were equivalent for some reason
20:31 TreyHarris m: my $foo = "hiya"; my %h; %h<$foo> = 3; say %h.perl
20:31 camelia rakudo-moar 9ed89d: OUTPUT: «{"\$foo" => 3}␤»
20:31 TreyHarris iyra: <...> indexing is for literals
20:31 TreyHarris {} indexing for anything else
20:32 geekosaur <> is like single quotes, << >> is like double quotes, { } is any expression
20:32 iyra interesting, thanks for the explanation
20:32 geekosaur or « » if you hate texas :p
20:33 timotimo you're unfortunately* not allowed to use any unicode quoting pair here :P
20:33 TEttinger joined #perl6
20:35 espadrine joined #perl6
20:36 TreyHarris m: my $foo = "hiya"; my %h; %h<$foo> = 3; %h<<$foo>> = 9; %h{$foo ~ "there"} = 2; say %h.perl
20:36 camelia rakudo-moar 9ed89d: OUTPUT: «{"\$foo" => 3, :hiya(9), :hiyathere(2)}␤»
20:38 TreyHarris m: my $foo = "hiya"; my %h<<$foo ~ "there">> = 7; say %h.perl
20:38 camelia rakudo-moar 9ed89d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Shaped variable declarations not yet implemented. Sorry. ␤at <tmp>:1␤------> 3y $foo = "hiya"; my %h<<$foo ~ "there">>7⏏5 = 7; say %h.perl␤»
20:38 TreyHarris oops
20:38 TreyHarris m: my $foo = "hiya"; my %h; %h<<$foo ~ "there">> = 7; say %h.perl
20:38 camelia rakudo-moar 9ed89d: OUTPUT: «{:hiya(7), :there(Any), "~" => Any}␤»
20:38 mcmillhj joined #perl6
20:39 iyra if $year is a string, is it valid to make $year into an Int (assuming it works) by doing $year = $year.Int? or will $year still by of type Str?
20:39 TreyHarris the point is, the three aren't interchangeable except for <<$var>> and {$var}...anything more complicated than that is no longer equivalent
20:40 geekosaur m: my $y = '5'; $y .= Int; dd $y
20:40 camelia rakudo-moar 9ed89d: OUTPUT: «Int $y = 5␤»
20:40 iyra thank you :D
20:42 geekosaur although if you declared it as my Str $year then it'd throw an error
20:45 iyra TreyHarris, an example in the docs is: DateTime.new(:year<10000>, :month<2>).days-in-month; but I seem to be getting errors when I do something like: DateTime.new(:year<$year>, :month<$month>).days-in-month; even though I know $year and $month are integers
20:45 samcv .
20:45 yoleaux 16:48Z <sena_kun> samcv: I have much or less updated https://github.com/perl6/ecosystem/issues/318 - it was done automatically, so troubles may occur, but now we have some pattern to investigate further. And I believe that it is not, well, "our" issue, to be honest. There are some modules that has already working PRs with fixes, but authors just don't merge them. Some libraries are easily abandoned. We need some policy from our side about it,
20:45 iyra I also tried with {} instead of <> with no luck
20:45 yoleaux imho,
20:45 yoleaux 16:49Z <sena_kun> samcv: also, there are some false positives in your link, please, check it and consider removing of some entries(I've made appropriate comments there).
20:45 samcv .
20:45 yoleaux 16:54Z <sena_kun> samcv: p.s. and I doubt that travis log's are needed. There are false positives("job exceed...", you know what I mean) and false negatives(the package is "green", but with a new rakudo it still fails).
20:46 samcv .tell sena_kun thanks!
20:46 yoleaux samcv: I'll pass your message to sena_kun.
20:48 TimToady TreyHarris: even those aren't interchangeable
20:48 TimToady m: my %h = :1a, :2b, :3c, 'a b c' => 42; my $var = "a b c"; say %h«$var»; say %h{$var}
20:48 camelia rakudo-moar 9ed89d: OUTPUT: «(1 2 3)␤42␤»
20:49 TreyHarris iyra: that's because :year<2017> isn't a hash index, it's a pair literal. you write DateTime.new(year => $yearvar)
20:49 TimToady m: my %h = :1a, :2b, :3c, 'a b c' => 42; my $var = "a b c"; say %h«'$var'»; say %h{$var}
20:49 camelia rakudo-moar 9ed89d: OUTPUT: «(Any)␤42␤»
20:49 TreyHarris TimToady: yes...but I was worried that would confuse iyra even more.
20:49 TimToady m: my %h = :1a, :2b, :3c, 'a b c' => 42; my $var = "a b c"; say %h«"$var"»; say %h{$var}
20:49 camelia rakudo-moar 9ed89d: OUTPUT: «42␤42␤»
20:52 TreyHarris m: DateTime.new(year => "2001")
20:52 camelia rakudo-moar 9ed89d: ( no output )
20:52 TreyHarris m: say DateTime.new(year => "2001")
20:52 camelia rakudo-moar 9ed89d: OUTPUT: «2001-01-01T00:00:00Z␤»
20:52 TreyHarris iyra: and for the record, DateTime is cool so this works
20:53 iyra do other functions work in the same way with named arguments? or is it just datetime's new method?
20:53 TreyHarris didn't the bot at one point print an evaluation of the last expression in sink context?
20:54 TreyHarris iyra: see the documentation for Cool.
20:54 iyra thanks, I'll take a look
20:55 TreyHarris In Perl 5 you generally didn't need to worry about what was a number and what wasn't--except when you did. Cool is how Perl 6 does the same (in a way requiring less special-casing)
20:56 timotimo and in perl6 looking at a variable can't make it flip what it thinks it is
20:57 TreyHarris iyra: See NumStr if you absolutely must control this (but you almost certainly don't need to)
20:58 [Coke] zoffix, do you still plan to make 'xtest' pass?
21:02 TreyHarris m: my $x = "1999"; say ++$x; say $foo.WHAT
21:02 camelia rakudo-moar 9ed89d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Variable '$foo' is not declared␤at <tmp>:1␤------> 3my $x = "1999"; say ++$x; say 7⏏5$foo.WHAT␤»
21:02 TreyHarris ack
21:02 TreyHarris m: my $x = "1999"; say ++$x; say $x.WHAT
21:02 camelia rakudo-moar 9ed89d: OUTPUT: «2000␤(Str)␤»
21:03 TreyHarris That's slightly surprising to me
21:05 TreyHarris Ahh, all is explained in https://docs.perl6.org/routine/succ
21:07 TreyHarris If I _wanted_ a strictly lexicographic succ to "1999", i.e., "199:", could I get it easily without stripping the string apart?
21:07 iyra joined #perl6
21:09 timotimo don't know of a way to make that happen with any single method we have
21:12 TreyHarris timotimo: it doesn't seem useful. i was just curious.  Before Cool, like way back in pre-Synopsis days, initially the idea would have been that multi dispatch would have chosen to succ numerically because the string looks numeric, right, so you would have been able to force it by specifying which succ you wanted, but with succ as a method on Str that checks if it looks numeric, you can't?
21:14 timotimo true
21:19 kent\n joined #perl6
21:20 emeric joined #perl6
21:22 nadim joined #perl6
21:23 itaipu joined #perl6
21:23 robertle what are people doing to determine test coverage? I found MVM_COVERAGE_LOG, but how di I convert the output to something more understandable? is there anything else?
21:25 timotimo there's moarvm's tools/parse_coverage or whatever it's called
21:25 Zoffix joined #perl6
21:25 timotimo it's ... kinda rough still
21:25 Zoffix robertle: there's a slightly dated blog post describing the procedure: https://perl6.party/post/Perl-6-Core-Hacking-Can-Has-Moar-Cover
21:26 Zoffix robertle: this is the updated version of the script mentioned in the blog post that I used to generate coverage for https://perl6.WTF https://gist.github.com/zoffixznet/09a7eb791e52548e5889a1a2e0d3dfa3
21:26 Zoffix robertle: and that's just for core stuff. More work needs to make it show coverage for any script
21:27 Zoffix robertle: I think to make it show coverage, it could work by just tweaking the coverage reporter script to look for lines from file? Like right now it looks for setting files: https://github.com/MoarVM/MoarVM/blob/master/tools/parse_coverage_report.p6#L128
21:29 timotimo well, it could just ignore #?file lines, right?
21:29 timotimo then you'd still have to run it once for each file of you rcode
21:30 timotimo though what you could totally do is concatenate your code files and put the #?file lines in there manually, and also concatenate the moar --dump output for each file there
21:30 timotimo that's what i mean by rough :D
21:31 timotimo hm, did i write my more precise coverage stuff before or after the release ...
21:32 Zoffix timotimo: after
21:34 timotimo um, i didn't even merge it to master yet!
21:34 timotimo that's a bad miss %)
21:35 Zoffix m: .[*-1]++, dd $_.».chr.join with '1999'.ords.Array
21:35 camelia rakudo-moar 9ed89d: OUTPUT: «"199:"␤»
21:35 Zoffix oh oh
21:35 * Zoffix rakes the toolbox for .substr-rw
21:36 robertle tools/parse_coverage_report.p6 looks promising, but I seem unable to run it correctly: https://gist.github.com/anonymous/5f33670dede996c2a4d3aae5fcfcb2d0
21:36 robertle what's the "annotations" argument meant to do?
21:36 timotimo it uses what moar --dump outputs to get a clear picture of what lines even have code in 'em
21:36 timotimo so the percentage can actually reach 100%
21:36 Zoffix m: my $x = '1999'; $x.substr-rw($x.chars-1, 1) = $x.comb.tail.ord.&[+](1).chr; dd $x
21:36 camelia rakudo-moar 9ed89d: OUTPUT: «Str $x = "199:"␤»
21:36 Zoffix hehe neat
21:37 timotimo can't you (*-1,1) for substr-rw?
21:37 Zoffix Oh, probably
21:37 timotimo actually, isn't that also equivalent to (*-1)?
21:37 Zoffix m: my $x = '1999'; $x.substr-rw(*-1) = $x.comb.tail.ord.&[+](1).chr; dd $x
21:37 camelia rakudo-moar 9ed89d: OUTPUT: «Str $x = "199:"␤»
21:37 Zoffix timotimo++
21:37 timotimo because if you only have one arg it's "to the end of string"
21:37 timotimo yay
21:37 timotimo oh but wait there's more
21:38 Zoffix m: my $x = '1999'; $x.substr-rw(*-1) .= ord.=&[+](1).=chr; dd $x
21:38 camelia rakudo-moar 9ed89d: OUTPUT: «Str $x = "199\x[6]7"␤»
21:38 Zoffix heh
21:38 timotimo yes!
21:38 timotimo wait, no :D
21:39 timotimo m: my $a = "hello"; my $x = $a.substr-rw(2); $x .= uc; $x .= flip; say $a
21:39 camelia rakudo-moar 9ed89d: OUTPUT: «hello␤»
21:39 timotimo m: my $a = "hello"; my $x := $a.substr-rw(2); $x .= uc; $x .= flip; say $a
21:39 camelia rakudo-moar 9ed89d: OUTPUT: «heOLL␤»
21:39 timotimo m: my $a = "hello"; my $x := $a.substr-rw(2); $x .= uc.= flip; say $a
21:39 camelia rakudo-moar 9ed89d: OUTPUT: «heOLL␤»
21:39 timotimo why doesn't it work properly in your case?
21:39 Zoffix m: my $x = '1999'; $_ = chr .ord + 1 with $x.substr-rw: *-1; dd $x
21:39 camelia rakudo-moar 9ed89d: OUTPUT: «Str $x = "199:"␤»
21:40 timotimo that's the cleanest so far, nice!
21:40 timotimo but wait
21:40 Zoffix timotimo: it assigns the .ord to string and then continues with the 6 or whatever
21:40 timotimo let's try .ord.succ
21:40 Zoffix m: my $x = '1999'; $_ = .ord.succ.chr with $x.substr-rw: *-1; dd $x
21:40 camelia rakudo-moar 9ed89d: OUTPUT: «Str $x = "199:"␤»
21:40 robertle so how do I create this annotations file for some perl6 code? this seems to work at a slightly lower level
21:40 TreyHarris geekosaur: I may have been netsplit because I can't find it in scrollback, but lucs tells me you answer my "$x .= not" question. Thanks
21:40 timotimo you'll have to perl6 --target=mbc --output=something.moar mycode.p6
21:41 timotimo then you can moar --dump something.moar
21:41 robertle which is confusing, the output produced by MVM_COVERAGE_LOG seems to reference lines in my code! why do I need the annotations?
21:41 timotimo they are kind of optional
21:41 robertle ok, will try
21:41 timotimo the coverage parser tool could run without
21:41 timotimo it won't give proper percentages in that case, though
21:41 Zoffix robertle: I don't think you *need* them. You'll just get unreachable lines marked as uncovered
21:41 timotimo because it'll think every empty line or comment is not being covered by your tests
21:42 timotimo but it seems like if you don't specify the annotation file it'll complain
21:42 timotimo robertle: an empty file will work just fine btw
21:42 Zoffix It will just `note` a warning message without the annotations: https://github.com/MoarVM/MoarVM/blob/master/tools/parse_coverage_report.p6#L140
21:43 Zoffix left #perl6
21:44 timotimo robertle: could you change a line for me in the coverage tool?
21:44 robertle timotimo: totally
21:45 timotimo try putting Any:D in front of $ann where ...
21:45 timotimo in line 125
21:46 robertle better, now I can run it without the --annotations arg! thank!
21:46 timotimo okay, i'll commit that to moarvm
21:46 robertle but no matter whether I do that or pass an empty file, it finishes now and says "Coverage report read: 76099 lines covered."
21:46 nadim Hi all, is there a way to dump a grammar? .perl gives it's name, s .gist say it is a grammar, and stringification ruturns  Any.
21:46 robertle but the resulting coverage report is empty, somehow it must fail to match the lines in the coverage input to the source provided?
21:47 robertle another minor thig: if the "coverage" output directory does not exist, it is not created but the tool exits with a semi-helpful message
21:47 robertle the message is actually not that bad all things considered, but...
21:48 timotimo btw, you will want to pull master from moarvm now, it has a fix that makes the line coverage more precise
21:48 timotimo (it used to skip some lines)
21:48 timotimo hah, it would only have accepted annotations from SETTING: anyway
21:48 robertle hah! I noticed that! I though it skips lines that can be inferred from the previous ones, where tehre is no possible branches...
21:49 timotimo okay can you put a line like this in the beginning of the source file you're trying to cover:
21:49 timotimo #line 1 SETTING:src/blah
21:52 robertle only for parse_coverage_report.p6 or do I need that when creating the coverage list itself?
21:52 timotimo oh, every line from the annotations file and from the coverage report will be offset by one
21:53 MasterDuke_ nadim: what do you mean "dump a grammar"? a grammar is a class. or do you mean dump the results of parsing something with a grammar?
21:54 robertle timotimo: still no data in the final coverage report
21:54 nadim I wrote Data::Dump::Tree, it dumps Matches but it is the definition of the grammar itself I'd like to dump
21:56 MasterDuke_ what does D::D::T do for "regular" classes?
21:56 nadim it dumps its guts
21:57 jnthn We don't keep the source code around to compile time, so there's no way to dump the source
21:57 jnthn Though I think for regexes we do keep it around as a special case
21:57 jnthn Which is a bit of a dubious exception
21:57 timotimo robertle: one more try:
21:57 nadim anyway to gets to its components programmatically?
21:57 timotimo can you put the same kind of line in the end of your file? with a different mock-filename, please
21:57 jnthn Like what rules it has?
21:58 jnthn Those are methods, so .^methods
21:58 MasterDuke_ jnthn: just `regex`s, or `rule`s and `token`s also? for keeping the source that is
21:58 jnthn MasterDuke_: I'm not sure
21:58 timotimo m: regex a { hello there }; say &a.perl;
21:58 camelia rakudo-moar 9ed89d: OUTPUT: «5===SORRY!5===␤Undeclared routine:␤    a used at line 1␤␤Other potential difficulties:␤    Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the sp…»
21:58 timotimo m: regex a { hello there }; say a.perl;
21:58 camelia rakudo-moar 9ed89d: OUTPUT: «5===SORRY!5===␤Undeclared routine:␤    a used at line 1␤␤Other potential difficulties:␤    Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the sp…»
21:58 robertle timotimo: sure! are you positive that it's a single colon after SETTING? I noticed other (core) entries in my coverage that have SETTING::...
21:58 nadim but ethods will not give the structure I guess
21:58 jnthn No
21:59 jnthn that said
21:59 timotimo oh you're right, it has to be two :
21:59 nadim OK, I put that idea back in the freezer
21:59 jnthn You can do .file and .line on a method I think
21:59 jnthn And then if the source file exists track it down
21:59 timotimo m: my regex blah { "hello there" }; say &blah.perl;
21:59 camelia rakudo-moar 9ed89d: OUTPUT: «regex blah { "hello there" }␤»
21:59 timotimo ^- there it is
22:00 timotimo m: say / foo .* bar /.perl
22:00 camelia rakudo-moar 9ed89d: OUTPUT: «/ foo .* bar /␤»
22:00 timotimo there as well
22:00 MasterDuke_ m: my rule blah { "hello there" }; say &blah.perl;
22:00 camelia rakudo-moar 9ed89d: OUTPUT: «rule blah { "hello there" }␤»
22:00 MasterDuke_ m: my token blah { "hello there" }; say &blah.perl;
22:00 camelia rakudo-moar 9ed89d: OUTPUT: «token blah { "hello there" }␤»
22:01 TreyHarris and TimToady's '?= True' solution--but I think I'll take the 50% execution time hit for the clearer '.= not' solution. Though given that "$obj.truth .= not" is 12 times the execution that "$obj.truth = not $obj.truth" (!?!), maybe I'll just use the wordy one after all.
22:02 TreyHarris er, '?^= True' that should have been
22:02 dct joined #perl6
22:02 samcv does anyone know what caused gentoo to fail instlaling rakudo?
22:02 samcv and if there is a fix?
22:03 timotimo no clue, do you have some output to look at?
22:03 TimToady m: say '1999' ... '~~~~'  # TreyHarris: but note this
22:03 camelia rakudo-moar 9ed89d: OUTPUT: «(1999 199: 199; 199< 199= 199> 199? 199@ 199A 199B 199C 199D 199E 199F 199G 199H 199I 199J 199K 199L 199M 199N 199O 199P 199Q 199R 199S 199T 199U 199V 199W 199X 199Y 199Z 199[ 199\ 199] 199^ 199_ 199` 199a 199b 199c 199d 199e 199f 199g 199h 199i 199j 199…»
22:03 nadim timotimo: doesn't work with a Grammar, it says "Any"
22:03 samcv ./libmoar.so: undefined reference to `mp_set_long'
22:03 timotimo can you show a bit of example code, nadim?
22:03 samcv ebuild https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-lang/rakudo/rakudo-2017.03.ebuild
22:03 samcv tyil, is having issues
22:03 TimToady m: say '1999' ... '::::'
22:03 camelia rakudo-moar 9ed89d: OUTPUT: «(1999 199: 19:9 19:: 1:99 1:9: 1::9 1::: 2999 299: 29:9 29:: 2:99 2:9: 2::9 2::: 3999 399: 39:9 39:: 3:99 3:9: 3::9 3::: 4999 499: 49:9 49:: 4:99 4:9: 4::9 4::: 5999 599: 59:9 59:: 5:99 5:9: 5::9 5::: 6999 699: 69:9 69:: 6:99 6:9: 6::9 6::: 7999 799: 79:…»
22:03 samcv and i remember someone else came in a week ago
22:03 Geth ¦ doc: 61e749f14c | (Zoffix Znet)++ | 5 files
22:03 Geth ¦ doc: Fix white-space and nbsp xtests
22:03 Geth ¦ doc: review: https://github.com/perl6/doc/commit/61e749f14c
22:03 timotimo m: grammar Test { rule A { hey }; rule B { yo } }; for Test.^methods -> $m { say $m.perl }
22:03 camelia rakudo-moar 9ed89d: OUTPUT: «rule A { hey }␤rule B { yo }␤method subparse (Grammar $: \target, :$rule, :$args, Mu :$actions, *%_) { #`(Method|33440992) ... }␤method parsefile (Grammar $: Cool $filename, :$enc, *%_) { #`(Method|33441144) ... }␤method parse (Grammar $: \target…»
22:03 tyil samcv: it happens on .02 and .01 as well
22:04 timotimo nadim: when you do it like this, it'll work
22:04 jnthn samcv: At a wild guess, is it using a packaged libtommath?
22:04 tyil same error, all on the moarvm package
22:04 samcv that's what i thought jnthn
22:04 jnthn What happens if we make it use the bundled one?
22:04 samcv is there any other ebuild though?
22:04 samcv i don't see any --use-* things in that ebuild
22:04 TreyHarris TimToady: because a range doesn't iterate over "succ"?
22:05 timotimo hm, does --backends=moar, work?
22:05 TimToady not when the strings are the same length
22:05 TreyHarris ohh
22:05 TimToady m: say '000' ... '???'
22:05 camelia rakudo-moar 9ed89d: OUTPUT: «(000 001 002 003 004 005 006 007 008 009 00: 00; 00< 00= 00> 00? 010 011 012 013 014 015 016 017 018 019 01: 01; 01< 01= 01> 01? 020 021 022 023 024 025 026 027 028 029 02: 02; 02< 02= 02> 02? 030 031 032 033 034 035 036 037 038 039 03: 03; 03< 03= 03> 0…»
22:05 jnthn samcv: I have no idea, I just have a hazy memory about that function not being in some older version of libtommath
22:05 samcv yep
22:05 samcv that is 100% accurate
22:05 TimToady so there's hex in a weird notation
22:06 TimToady m: say '000' ... '777'
22:06 camelia rakudo-moar 9ed89d: OUTPUT: «(000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037 040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057 060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 0…»
22:06 TimToady but it's more for octal and such
22:06 timotimo Date:   Wed Dec 10 18:59:31 2014 +0100
22:06 timotimo add mp_get_long_long() and mp_set_long_long()
22:06 timotimo oh, no, wait
22:07 timotimo Date:   Sun Nov 13 19:17:46 2011 +0100
22:07 timotimo Add set_long and get_long functions
22:07 timotimo that's really old
22:07 timotimo what the heck is gentoo shipping? :)
22:07 jnthn samcv: https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-lang/moarvm/moarvm-2017.03.ebuild#n45
22:07 jnthn It's doing it in the MoarVM ebuild
22:08 timotimo yeah, bad idea. that'll also get you an expmod that can infinitely recurse (or iterate?)
22:08 samcv version 1.0?
22:08 samcv idk https://packages.gentoo.org/packages/dev-libs/libtommath
22:08 samcv looking.
22:08 TreyHarris Why do the .= not and ?^= True solutions take so much longer than the fully-written-out one? Because simple assignment doesn't have lots of dispatching possibilities?
22:08 timotimo +SRC_URI="https://github.com/libtom/libtommath/releases/download/v${PV}/ltm-${PV}.tar.xz"
22:09 timotimo so that must be a 1.0 tarball then?
22:09 timotimo but v1.0 is from 2016 .. ?!
22:09 timotimo -- Moritz Lenz contributed a fix to mp_mod()
22:09 tyil 1.0 seems the latest available in ports
22:09 timotimo and provided mp_get_long() and mp_set_long()
22:09 timotimo i know that guy!
22:09 tyil but 0.4 is marked as the latest stable
22:09 robertle timotimo: got it! it's a bit fickle, but that does work!
22:09 timotimo oh, look
22:09 tyil 0.42 *
22:10 timotimo yeah, 0.42 is from 2010
22:10 tyil Im compiling 1.0 rn
22:10 nadim m: grammar XXX { token TOP { abc } } ; say &XXX.perl ;
22:10 tyil see if that helps
22:10 camelia rakudo-moar 9ed89d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Illegally post-declared type:␤    XXX used at line 1␤␤»
22:10 timotimo robertle: yeah, we'll rework the tool so it can be used for usercode
22:10 timotimo the reason why it requires SETTING::src/ is because i didn't want the reports to show what lines in the test suite were covered
22:10 samcv who is in an admin on the perl6 group? we need to enable travis for https://travis-ci.org/perl6/ecosystem
22:11 timotimo it is done
22:11 samcv \o/
22:11 tyil moar builds with libtommath 1.0
22:11 tyil lets see if nqp and rakudo itself also work now
22:11 timotimo tyil: cool, we should tell the maintainer of the ebuild to require that version
22:11 nadim m: grammar MY::GR { token TOP { abc } } ; say &MY::GR.perl ;
22:11 camelia rakudo-moar 9ed89d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Cannot use pseudo package MY in package name␤at <tmp>:1␤------> 3grammar MY::GR7⏏5 { token TOP { abc } } ; say &MY::GR.per␤    expecting any of:␤        generic role␤»
22:12 timotimo nadim: no, you don't get methods like that
22:12 tyil timotimo: I'll send out a mail to him
22:12 timotimo also, GR doesn't have a & sigil
22:12 timotimo m: grammar My::Gr { token TOP { abc } }; say My::Gr.perl
22:12 camelia rakudo-moar 9ed89d: OUTPUT: «My::Gr␤»
22:12 timotimo m: grammar My::Gr { token TOP { abc } }; say My::Gr.^methods.grep(*.name eq "TOP").perl
22:12 camelia rakudo-moar 9ed89d: OUTPUT: «(token TOP { abc },).Seq␤»
22:13 timotimo TYVM, TYIL
22:13 TreyHarris TimToady: my recollection of how you originally envisioned numeric/str polymorphism was correct, right? Multi dispatch via value dispatch that would make a looks-like-number string closer to the numeric multi than the string multi?
22:13 nadim right, it's a class with methods
22:13 timotimo but the error you were getting was because you're not allowed to use MY like that
22:13 nadim which means we can't dump anything that makes sense
22:13 timotimo has to be My or my or MEH
22:14 nadim timotimo: I didn't even know MY was special :)
22:14 timotimo it's a pseudopackage that has your lexical variables in it
22:14 dct joined #perl6
22:14 nadim timotimo++
22:14 timotimo m: my $test; sub inner { my $innertest; say MY::.keys }; inner()
22:14 camelia rakudo-moar 9ed89d: OUTPUT: «($_ $/ $innertest $*DISPATCHER $! $¢)␤»
22:15 timotimo MY only has the one that are defined in the current lexical scope
22:16 tyil timotimo: sent, lets see how quickly it updates :>
22:16 timotimo \o/
22:17 samcv tyil, link?
22:17 tyil samcv: its an email
22:17 samcv also would be good if it didn't --use-libffi as well. since that backend is less well tested
22:17 samcv ok. fw me
22:17 tyil its already sent
22:17 tyil :'D
22:17 samcv that's why it's called a forward
22:17 samcv :)
22:18 tyil are you implying I keep records of sent mail?
22:18 samcv yes
22:18 tyil you are correct
22:18 nadim jnthn: I send a pull request for Grammar::Tracer some times ago, there's another pull request there btw, I think I'll just create another module. I was thinking about having it under Grammar::Tracer::something namespace, is that ok for you?
22:18 TreyHarris TimToady: I ask just because I wondered if the ultimate (/current) solution has any functional disadvantages you miss, despite its advantages
22:18 tyil samcv: cutie@gmail.com right?
22:18 jnthn nadim: I think you wanted to take the output format in a direction I disagreed with, so that's probably best.
22:18 samcv oh btw everyone i'm running another full module build http://hack.p6c.org/~samcv/install_log_live2.txt right now
22:19 samcv no
22:19 samcv samantham@posteo.net
22:19 tyil >ham
22:19 tyil nice
22:19 nadim jnthn: it's just a different output format, I prefer mine because it is much more compact, it's just a question of taste, functionally it is the same
22:20 tyil samcv: sent
22:20 jnthn nadim: Maybe we could make it an option?
22:20 timotimo nadim: is there an example where i can see that output format in action?
22:20 nadim sure, 1mn to post a screenshot
22:20 jnthn use Grammar::Tracer (format => 'foo') or something
22:22 bjz joined #perl6
22:23 tyil samcv: if I make any module, I'll be sure to use "perl" as the license name
22:23 samcv XD
22:23 wamba joined #perl6
22:24 TreyHarris samcv: I just created a new package with mi6--it creates an Artistic License 2.0 by default but doesn't give any license info in the metadata.
22:25 samcv thanks for the heads up TreyHarris
22:25 Geth ¦ doc: 06cb6c9a93 | (Zoffix Znet)++ | doc/Type/IO/Path.pod6
22:25 Geth ¦ doc: Fix for space-after-comma xtest
22:25 Geth ¦ doc: review: https://github.com/perl6/doc/commit/06cb6c9a93
22:25 Geth ¦ doc: 144f0be23e | (Zoffix Znet)++ | 2 files
22:25 Geth ¦ doc: Fix typo in xtest filename
22:25 Geth ¦ doc: review: https://github.com/perl6/doc/commit/144f0be23e
22:26 TreyHarris samcv: your massive PR was scanning for LICENSE files when there was no metadata though, wasn't it?
22:26 samcv no. not *no* metadata. just wrong or nonstandard naming
22:26 nadim timotimo: http://imgur.com/3SnOKm9  that's the grammar that was in one of the advent calender entries
22:26 samcv will have to do ones for no metadata as well though
22:27 TreyHarris samcv: ahh. in this case then you'd not have fixed it then. it creates a LICENSE file with Artistic 2 filled out
22:27 samcv but for now i'm correcting ones from like "perl" >> "Artistic-2.0" or "The Artistic License 2.0" >> "Artistic-2.0" or
22:27 timotimo nadim: not a bad look
22:27 samcv a url to the license and replace it with the license identifier
22:27 nadim I am actually thinking about outputing it via Data::Dump::Tree to get some filtering and highlighting options but I am afraid the buffering will make it slow for large ASTs
22:28 nadim timotimo: if the string get capped it lookes even better
22:28 timotimo right, with backtracking and such it might very well give a few thousand lines of output easily
22:28 samcv TreyHarris, next step would be applying the script i have to ones with *no* license field, and checking the license file in the project etc
22:28 * TreyHarris nods.
22:28 samcv the PR i sent out, took the field in the metadata, and corrected it. and if the metadata was not precise "artistic" or "perl" would check the license file and ensure there was only one license/licence/copying file and also check the text matched
22:29 Geth ¦ doc: 9efb25fda1 | (Zoffix Znet)++ | doc/Language/io-guide.pod6
22:29 Geth ¦ doc: Reword
22:29 Geth ¦ doc: review: https://github.com/perl6/doc/commit/9efb25fda1
22:29 nadim timotimo: I am trying to optimize Date::Dump::Tree but my last effort made little to no difference, althought in my example I reduced the number of total call with 3-4%
22:29 eater how does NativeCall work with an Enum as argument?
22:29 TreyHarris I think the other thing I've seen--certainly on CPAN--is no license file but a LICENSE section of POD (usually only used for "Module::Name is made available under the same licensing terms as Perl itself.")
22:29 samcv eater, you need to make an enum. you should try gpxtrixie
22:30 samcv gptrixie*
22:31 nadim timotimo: it's worth a shot, I'll create a few classes for the tracer, I could also add some statistics about what matched and what didn't and how many times in the dump
22:32 nadim jnthn: if you want it as an option, you have the pull request already, although it may need to be rebased
22:33 cpage_ joined #perl6
22:34 timotimo nadim: i wonder if it'd be interesting to have a view at the target string showing little flags where different regexes were trying to parse
22:34 robertle timotimo: one last quetion: how do I get parse_coverage_report to look at multiple source? or merge the results?
22:36 TreyHarris Oh, dear... a user (not a bot I don't think, the wording varies) is responding to every single mesage sent by anyone on Twitter asking @United for customer service pointing them at my story with a different disability-rights hashtag every time. This is troubling since I didn't authorize it. (If it's any of you, don't tell me, it's probably best I don't know, but please stop it, it isn't helping.)
22:36 TreyHarris !!!
22:36 TreyHarris ...and that was the wrong channel, I'm SO sorry
22:37 timotimo yeah, it's hard when people on twitter just go ahead and do whatever while referencing you
22:37 timotimo there's a person talking about perl6 and NSA and xkeyscore and i'm like "okay, but ... what?"
22:38 TreyHarris timotimo: :-P
22:38 * TreyHarris hides under a big Perl-shaped rock.
22:38 timotimo camelia lets you hide under her wings
22:38 timotimo (two meters wingspan, after all!)
22:39 timotimo sorry, it's three meters
22:39 nadim timotimo: it certainly would be nice, Damian had a regex debugger that I like, may be something like that would be nice, do you know which one I mean?
22:39 timotimo https://en.wikipedia.org/wiki/Homona_coffearia - um, why didn't i know before that a camellia exists that is actually a moth?
22:39 timotimo nadim: no clue. for reference, i do zero perl5 at all
22:39 gfldex is &slurp lazy?
22:40 timotimo nope
22:40 timotimo we don't have lazy strings yet
22:41 r3m joined #perl6
22:41 gfldex m: my @fs = <file1.ext file2.ext file3.ext>; dd [//] try (@fs».IO».slurp);
22:41 camelia rakudo-moar 9ed89d: OUTPUT: «Failure.new(exception => X::AdHoc.new(payload => "Failed to open file /home/camelia/file3.ext: no such file or directory"), backtrace => Backtrace.new)␤»
22:41 TreyHarris would bare slurp be lazy even if we did? I'd think that would be an option or a different method
22:42 gfldex does [//] shurt circuit?
22:42 timotimo even if it does, it can't properly thunk the list you're writing, so any code you write after the [//] will be evaluated to create the list [//] will operate on (is my assumption)
22:43 iyra joined #perl6
22:44 iyra I hope I'm not being too much of a bother, can anyone help me understand why this is returning False? "TITLE: a" ~~ m/^':'(\w+)' '(.+)$/
22:44 timotimo because there's no ':' at the beginning of a line
22:44 iyra ah crap, you're right, thanks..
22:44 timotimo :)
22:44 nadim timotimo: for reference http://search.cpan.org/~dconway/Regexp-Debugger-0.001020/lib/Regexp/Debugger.pm
22:45 timotimo heatmapped visualization log!
22:46 timotimo nadim: is there a screenshot or screencast you can recommend?
22:47 Garland joined #perl6
22:47 gfldex m: my @fs = <file1.ext file2.ext file3.ext>; my $s =  slurp([//] try (@fs».IO».open));
22:47 camelia rakudo-moar 9ed89d: OUTPUT: «Failed to open file /home/camelia/file3.ext: no such file or directory␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
22:47 timotimo searching google for rxrx screencast gives me a bunch of random semi-screencast-related videos
22:47 gfldex that's likely more sensible
22:47 cpage_ joined #perl6
22:49 gfldex m: my @fs = «$*HOME/.gitconfig $*HOME/.config/git/config»; my $s = slurp([//] try (@fs».IO».open));
22:49 camelia rakudo-moar 9ed89d: OUTPUT: «Failed to open file /.config/git/config: no such file or directory␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
22:49 gfldex that's what I actually want to do
22:50 gfldex m: say $*HOME
22:50 camelia rakudo-moar 9ed89d: OUTPUT: «"/home/camelia".IO␤»
22:50 gfldex m: my @fs = «$*HOME/.gitconfig $*HOME/.config/git/config»; dd @fs; my $s = slurp([//] try (@fs».IO».open));
22:50 camelia rakudo-moar 9ed89d: OUTPUT: «Array @fs = ["/home/camelia", "/.gitconfig", "/home/camelia", "/.config/git/config"]␤Failed to open file /.config/git/config: no such file or directory␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
22:51 timotimo why is camelia allowing you to try to open stuff at all?
22:51 timotimo it should be prevented by the restricted setting
22:51 timotimo m: open("hello")
22:51 camelia rakudo-moar 9ed89d: OUTPUT: «open is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting line 1␤  in sub open at src/RESTRICTED.setting line 9␤  in block <unit> at <tmp> line 1␤␤»
22:51 gfldex m: my @fs = $*HOME «~« </.gitconfig /.config/git/config>; my $s = slurp([//] try (@fs».IO».open));
22:51 camelia rakudo-moar 9ed89d: OUTPUT: «Cannot resolve caller slurp(IO::Handle); none of these signatures match:␤    (IO::ArgFiles:D $io = { ... }, :$bin, :$enc = "utf8", |c is raw)␤    (Cool:D $path, :$bin = Bool::False, :$enc = "utf8", |c is raw)␤  in block <unit> at <tmp> line 1␤␤»
22:51 timotimo m: slurp("hello")
22:51 camelia rakudo-moar 9ed89d: OUTPUT: «Failed to open file /home/camelia/hello: no such file or directory␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
22:52 timotimo yeah, no, it should definitely restrict that
22:52 timotimo huh, slurp was never in there in the first place? is this fine?
22:53 TreyHarris m: say glob('*')
22:53 camelia rakudo-moar 9ed89d: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    glob used at line 1␤␤»
22:54 timotimo it's "dir"
22:54 TreyHarris say dir
22:54 TreyHarris m: say dir
22:54 camelia rakudo-moar 9ed89d: OUTPUT: «(".cpanm".IO ".local".IO ".npm".IO ".perl6".IO ".perlbrew".IO ".rcc".IO ".ssh".IO "Perlito".IO "evalbot".IO "log".IO "nqp-js".IO "p1".IO "p2".IO "perl5".IO "std".IO ".bash_history".IO ".bashrc".IO "mbox".IO ".lesshst".IO "evalbot.log".IO ".cpan".IO "dale…»
22:55 TreyHarris m: slurp(".cpanm")
22:55 camelia rakudo-moar 9ed89d: OUTPUT: «'.cpanm' is a directory, cannot do '.open' on a directory␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
22:56 TreyHarris m: slurp(".bashrc") and say "yes"
22:56 camelia rakudo-moar 9ed89d: OUTPUT: «yes␤»
22:56 TreyHarris m: slurp("nosuch") and say "yes"
22:56 camelia rakudo-moar 9ed89d: OUTPUT: «Failed to open file /home/camelia/nosuch: no such file or directory␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
22:56 TreyHarris yeah, it's broken, Jim. try reversing the polarity.
22:57 geekosaur a tually I answered it in a different context
22:58 geekosaur [21 20:40:00] <geekosaur> m: my $y = '5'; $y .= Int; dd $y     an answer to    [21 20:39:33] <iyra> if $year is a string, is it valid to make $year into an Int (assuming it works) by doing $year = $year.Int? or will $year still by of type Str?
23:00 TreyHarris geekosaur: answered what? why .= not is so much slower than  "$obj.truth = not $obj.truth"? if so I don't see the through-line connecting the two
23:01 geekosaur oh. I didn't even touch that one, so I have no idea what lucs meant
23:01 geekosaur just got back from the store and noticed the highlight
23:01 geekosaur and that's the only thong I said that was in anyway relevant
23:01 geekosaur *thing
23:01 gfldex there seams to be no candidate for &slurp(IO::Handle:D)
23:02 timotimo wonder if there should be; how are the other subs? do we have &lines(IO::Handle:D) for example?
23:03 ChoHag joined #perl6
23:03 gfldex lines defaults to $*ARGFILES
23:04 timotimo oh, does lines take any arguments ever?
23:04 gfldex and forwards to *.lines, so lines(IO::Handle:D) should work
23:04 BenGoldberg joined #perl6
23:05 timotimo argfiles is going to get a little overhaul anyway. do we have a slurp for argfiles?
23:05 gfldex in fact &slurp seams to be the only IO sub that is so strict
23:06 gfldex anyway, good *
23:06 Cabanossi joined #perl6
23:06 * gfldex self.sleep()
23:08 timotimo gnite gfldex!
23:11 Geth ¦ doc: bb972365ea | (Zoffix Znet)++ | 15 files
23:11 Geth ¦ doc: Fix spelling xtest
23:11 Geth ¦ doc:
23:11 Geth ¦ doc: Used `sort` on words files, so the diff shows some of the results of
23:11 Geth ¦ doc: sorting along with new words added.
23:11 Geth ¦ doc: review: https://github.com/perl6/doc/commit/bb972365ea
23:20 Garland I've been getting an internal error that requests a report to rakudobug, but I can't make it happen consistently. I tried re-running it with -ll-exception like it said to, but I don't get an error at all.
23:21 Garland <Internal error while creating backtrace: Cannot set attribute values when cloning a type object   in method throw at SETTING::src/core/Exception.pm line 63
23:22 timotimo huh, interesting
23:23 Garland If I change this line at all, the error also disappears:
23:23 Garland for @!subscribers.race( batch => 1 ) -> $sub {
23:24 AlexDaniel ah-ha, .race!
23:24 timotimo oh
23:24 timotimo yeah, race is kinda broken at the moment
23:24 timotimo as is .hyper
23:24 timotimo at least i think so?
23:24 Garland hyper doesn't have the issue
23:24 AlexDaniel I think jnthn was working on it
23:24 timotimo last time i tried (months ago) it tended to just give empty lists for no reason
23:25 Garland or at least, it didn't set off the long internal error
23:25 TreyHarris Anyone know of a good test suite to look at that mocks native calls?
23:25 AlexDaniel (e.g. https://6guts.wordpress.com/2017/03/16/considering-hyperrace-semantics/ )
23:25 Garland Even removing a space makes the error disappear eg: for @!subscribers.race( batch => 1) -> $sub {
23:26 Garland where the space after the 1 is removed.
23:27 AlexDaniel .tell jnthn fwiw https://irclog.perlgeek.de/perl6/2017-04-21#i_14466196
23:27 yoleaux AlexDaniel: I'll pass your message to jnthn.
23:29 nadim timotimo: https://www.youtube.com/watch?v=zcSFIUiMgAs&amp;feature=plcp
23:31 nadim timotimo: and I had a few ideas about how to make it slightly better https://rt.cpan.org/Public/Dist/Display.html?Name=Regexp-Debugger
23:32 Garland Here's a link to the full error chain as well: https://www.dropbox.com/s/fexjtd1lswfu4y8/internal%20error%20perl6?dl=0
23:32 Garland For whoever needs it
23:40 skids joined #perl6
23:41 timotimo i think i'm going to bed real soon now
23:41 timotimo have a good one!
23:45 TimToady joined #perl6
23:59 iyra what's the usual way to check if a hash already exists in a list of hashes?

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

Perl 6 | Reference Documentation | Rakudo