Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-06-17

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:06 japhb nebuchadnezzar: Can you explain "it's forbidden to modify upstream directly"?
00:06 tinyblak joined #perl6
00:07 tinyblak_ joined #perl6
00:14 BenGoldberg joined #perl6
00:21 uncleyear joined #perl6
00:22 laouji joined #perl6
00:24 tinyblak joined #perl6
00:29 laouji joined #perl6
00:30 jack_rabbit joined #perl6
00:39 tinyblak joined #perl6
00:42 laouji joined #perl6
00:56 Akagi201 joined #perl6
00:57 FROGGS[mobile] joined #perl6
01:00 rurban joined #perl6
01:07 lizmat joined #perl6
01:13 FROGGS[mobile] joined #perl6
01:15 Gardner joined #perl6
01:19 * lizmat waves from Portland, OR
01:19 TimToady got through the gorge, didja?
01:21 ilbelkyr joined #perl6
01:27 lizmat yup, unscathed   :-)
01:27 lizmat amazing how everything before The Dalles is yellow and desert like
01:28 lizmat and everything after that is green and lush
01:32 lizmat we even got hit by two dust devils on the highway, an amazing experience
01:32 lizmat (near Spokane)
01:33 TimToady yeah, I don't suppose you get many of those in .nl :)
01:35 lizmat nope, although I have seen one once on a very hot windless day
01:36 * lizmat will try to get through the GLR speculation when I'm a bit less tired
01:47 ilbot3 joined #perl6
01:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
01:51 skids https://gist.github.com/skids/5d7a9cdd20bf6c303eb6 # please add to RT.  RT won't let me edit tickets.
01:53 aborazmeh joined #perl6
01:53 aborazmeh joined #perl6
01:54 lizmat skids: if you mail to rakudobugs@perl.org with "[perl #117043]" in the subject, it should be added automagically to the RT ticket
01:54 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=117043
01:54 skids OK I'll try but it has not worked for me in the past.
01:56 lizmat if it doesn't work for you, I'll try it as well, ok?
02:03 timotimo hmm ... isn't "samewith" sort of like recursion as a tail-call?
02:03 timotimo (and with that thought i leave towards bed)
02:05 lizmat good night, timotimo!
02:06 skids lizmat: OK I sent it, and sometime tonight when mx.develooper.com actually bothers to take my connection, we'll see whether RT just ignores it.
02:06 lizmat :-)
02:21 noganex_ joined #perl6
02:27 mattp_ joined #perl6
02:33 uncleyear joined #perl6
02:38 rmgk_ joined #perl6
02:38 lizmat dinner&
02:39 araujo_ joined #perl6
03:11 bin_005 joined #perl6
03:31 amurf joined #perl6
03:40 zacts joined #perl6
04:02 kst` joined #perl6
04:26 laouji joined #perl6
04:38 diana_olhovik_ joined #perl6
04:38 labster http://www.perlfoundation.org/perl6/index.cgi?when_will_perl_6_be_released
04:47 baest_ joined #perl6
04:53 labster m: say(class X { } X.new)
04:53 camelia rakudo-moar d6430c: OUTPUT«(X) Any.new␤»
04:54 labster whaaaa?????
04:54 TimToady that's not doing what it appears to be doing
04:55 TimToady try putting a semicolon where you need one
04:55 labster indeed.  I'm playing with RT#76236, so I expected it to do something wrong.
04:55 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=76236
04:55 TimToady 2nd X is cross operator there
04:56 TimToady m: say class X {} X .new
04:56 camelia rakudo-moar d6430c: OUTPUT«(X) Any.new␤»
04:56 TimToady m: say class Y {} X .new
04:56 camelia rakudo-moar d6430c: OUTPUT«(Y) Any.new␤»
04:57 labster so is this notabug/DIHWIDT territory?
04:57 TimToady we never intuit ; after } except at the end of a line, where we always do
04:57 TimToady yes, notabug
04:57 TimToady just happens to not detect the problem this time
04:58 TimToady it means something wonky, but it does mean something
04:58 TimToady .oO(Code is too wonky at line 42...)
04:59 labster We really need that feature, TimToady
05:00 labster That operator you keep using, it does not mean what you think it means at line 67.
05:02 TimToady Heh, that's an ancient page... "Created...on Dec 30."  no year given...
05:03 dalek roast: 58f6cd1 | usev6++ | S05-metasyntax/regex.t:
05:03 dalek roast: Fix test for RT #125302
05:03 dalek roast: review: https://github.com/perl6/roast/commit/58f6cd1f56
05:03 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125302
05:05 TimToady maybe we should rename FatRat to ROUS
05:07 TimToady .oO(Well, I also have a surprise.  I am not left associative either!)
05:08 labster m: say( class X { has Int $.id; method BUILD { $.id = 666 } } X.new )
05:08 camelia rakudo-moar d6430c: OUTPUT«(X) Any.new␤»
05:09 TimToady Y.new would also work :)
05:10 labster wait, is it crossing the class keyword?
05:11 TimToady yes, with a $_.new
05:11 labster m: say( class X { has Int $.id; method BUILD { $.id = 666 } } Y.new )
05:11 camelia rakudo-moar d6430c: OUTPUT«Error while constructing error object:Could not locate compile-time value for symbol Comp::AdHoc␤===SORRY!===␤Error while compiling, type X::Comp::AdHoc␤  payload: Unable to parse expression in argument list; couldn't find final ')' ␤ at line 2, ne…»
05:12 TimToady er, I meant Z
05:12 labster Ah, right, that would.
05:13 labster In summary: don't do this.
05:14 TimToady in summary, P6 has very consistent rules for use of closing braces that will surprise you if you expect inconsistency
05:14 labster and since we're expecting an operator and not a term, we don't see X as a term.
05:14 TimToady right
05:20 TimToady m: my @x := flat 1, [\*] 1..*; say @x[^10]
05:20 camelia rakudo-moar d6430c: OUTPUT«1 1 2 6 24 120 720 5040 40320 362880␤»
05:22 TimToady .tell smls see http://irclog.perlgeek.de/perl6/2015-06-17#i_10760273 for the real reason your expression wasn't lazy
05:22 yoleaux TimToady: I'll pass your message to smls.
05:27 kaare_ joined #perl6
05:47 TimToady .tell smls thing is, 1, [\*] 1..* is now considered 2 elements, and you asked for 10, so of course it was trying to completely evaluate the second element of your list, which happens to be infinite
05:47 yoleaux TimToady: I'll pass your message to smls.
05:48 rindolf joined #perl6
05:50 Sqirrel joined #perl6
05:57 psch o/
05:57 psch not sure how to get Failure seen in moars p6typecheckrv
05:58 psch apparently i can't stuff a QAST::Op that does the lookup in there, because that doesn't get serialized correctly..?
05:58 kurahaupo1 joined #perl6
05:59 tinyblak joined #perl6
06:00 tinyblak joined #perl6
06:02 tinyblak_ joined #perl6
06:03 psch on the jvm i just called getlexcaller and it was fine :P
06:03 psch although probably slow :/
06:03 diana_olhovik_ joined #perl6
06:04 zacts so, does perl6 support functional programming styles?
06:04 zacts and higher order functions and things?
06:04 zacts I hope this isn't too naive of a question... o_O
06:04 lizmat m: "I think so".say
06:04 camelia rakudo-moar d6430c: OUTPUT«I think so␤»
06:05 psch m: reduce(&infix:<+>, ^5).say
06:05 camelia rakudo-moar d6430c: OUTPUT«10␤»
06:05 psch m: say [+] ^5 # or this
06:05 camelia rakudo-moar d6430c: OUTPUT«10␤»
06:05 psch reduce is my knee-jerk "that's functional, right?" :S
06:05 zacts was that a reduce using + as an input function / operator?
06:06 vendethiel m: sub myadd($a, $b) { $a+$b+$a }; [[&myadd]] ^10; # or that
06:06 camelia rakudo-moar d6430c: ( no output )
06:06 vendethiel m: sub myadd($a, $b) { $a+$b+$a }; say [[&myadd]] ^10; # or that
06:06 camelia rakudo-moar d6430c: OUTPUT«1013␤»
06:06 vendethiel zacts: yes
06:06 zacts oh cool
06:06 zacts neat!
06:06 zacts thanks
06:06 psch zacts: to expand, ^5 is equivalent to 0..^5, i.e. a range from 0 excluding the endpoint
06:07 zacts psch: so how about any form of lazy eval?
06:07 psch m: my @fibs = 1, 1 ... * + *; say @fibs[^10]
06:07 camelia rakudo-moar d6430c: OUTPUT«1 1␤»
06:07 psch oh
06:07 psch m: my @fibs = 1, 1, * + * ... *; say @fibs[^10]
06:07 camelia rakudo-moar d6430c: OUTPUT«1 1 2 3 5 8 13 21 34 55␤»
06:07 zacts oh cool
06:07 zacts so you can represent the set of all fibonacci numbers in perl6
06:08 zacts as an abstraction?
06:08 zacts and use lazy eval on them?
06:08 psch zacts: sorta, yeah.  it's a sequence
06:08 zacts ah ok
06:08 zacts that's neat
06:08 psch zacts: the ... form the sequence, with 1, 1 being the initial elements
06:08 zacts anyway, that's all my questions for now. thanks!
06:08 psch zacts: and * + * is a WhateverCode that takes two elements from the sequence, until * which is Whatever, i.e. as many as you need, lazily
06:09 zacts oh cool
06:10 psch "the previous two elements", to be precise
06:13 dalek rakudo/nom: 90bbe0b | lizmat++ | src/core/control.pm:
06:13 dalek rakudo/nom: Not sure why it wasn't a sub in the first place
06:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90bbe0b667
06:25 gfldex joined #perl6
06:27 nebuchadnezzar japhb: hello, sure, any modification to upstream source must be made by patches in debian/patches, building the source package will complain about modification to upstream source: https://www.debian.org/doc/manuals/maint-guide/modify.en.html#fixupstream
06:30 nebuchadnezzar japhb: otherwise, you need to build a new orig.tar.gz, like in some packages which provide a _dfsg.orig.tar.gz because they remove non DFSG compliant files
06:36 dalek rakudo/nom: 2c58ee1 | lizmat++ | src/core/ (2 files):
06:36 dalek rakudo/nom: Remove samewith() usage from core
06:36 dalek rakudo/nom:
06:36 dalek rakudo/nom: Looking at how samewith() works, it felt better to not use in the core
06:36 dalek rakudo/nom: from a performance pov.  Also, maybe samewith() should be implemented
06:36 dalek rakudo/nom: as a macro, or perhaps as a statement in the grammar.  Or maybe not at
06:36 dalek rakudo/nom: all.  In any case, it still feels wrong having to specify the name of
06:36 dalek rakudo/nom: the method inside the method in general, so maybe we do need something
06:36 dalek rakudo/nom: like samewith() (but better performing).
06:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2c58ee1faf
06:38 RabidGravy joined #perl6
06:40 RabidGravy marnin'
06:40 masak \o
06:41 labster Well, a car is on fire next door, don't see that every day.  Did $sports_team win?
06:42 lizmat labster: 100% it's not yours?
06:42 labster No, not my car.
06:42 _mg_ joined #perl6
06:42 labster The air smells like dioxin though.
06:43 lizmat well, close the windows, switch off the airco, stop breathing!
06:43 lizmat btw, how *do* you know how dioxins smell?
06:43 moritz .oO( I love the smell of dixone in the morning )
06:45 moritz https://en.wikipedia.org/wiki/Seveso_disaster#Studies_on_immediate_and_long-term_health_effects
06:45 labster It's the smell of magic smoke leaving the computer.
06:46 labster In this case, the magic smoke was making the car run.
06:46 SevenWolf joined #perl6
06:51 labster Fire is extinguished now, don't want to leave you hanging.
06:52 * lizmat gets some shuteye
06:54 labster good night lizmat
06:55 FROGGS joined #perl6
06:56 masak 'night, lizmat
06:59 araujo joined #perl6
07:02 darutoko joined #perl6
07:13 psch welp, i need this explained to me /o\
07:13 psch "At Frame 1, Instruction 5, op 'wval', operand 0, MAST::Local of wrong type (4) specified; expected 8"
07:13 psch https://gist.github.com/peschwa/f399cf10914f1d287a74
07:13 masak sounds a bit like a #moarvm question.
07:13 psch trying to port the jvm change to moar
07:14 psch masak: yeah, i guess you're right
07:14 psch both backends are involved, though, as evident from the gist
07:18 RabidGravy would a thing that takes a bunch of "get_/set_" methods and turns them into a single attribute be sensibly called an "Attribute Adapter", "Accessor Facade" or some such?
07:20 moritz yes
07:20 moritz or "Accessor Condensor"
07:20 RabidGravy hardest part of making software is making up names for things for me
07:21 masak making up names is non-trivial, yes.
07:21 moritz as they say, the two hardes parts of making software are naming, cache invalidatoin and off-by-one errors :-)
07:21 RabidGravy :-)
07:21 moritz *hardest
07:21 masak a slight consolation is that you don't have to get it right the first time :)
07:24 laouji joined #perl6
07:34 zakharyas joined #perl6
07:40 Ven joined #perl6
07:40 moritz (off-topic) for $work, I'm building some continuous deployment pipelines. Here's an example dependency graph: http://moritz.faui2k3.org/tmp/continuous-deployment.png
07:41 moritz it's quite some fun
07:41 masak moritz: oh, so you're one of those "dev ops" I keep hearing about? :)
07:41 Ven \o, #perl6!
07:42 masak o/
07:43 moritz masak: kinda. For some time now I've managed the dev team <-> ops team interface
07:43 moritz masak: and I'm trying to drive automation of our most unnerving, repetitive tasks
07:43 moritz I guess that makes the devops, yes
07:44 masak moritz++
07:44 masak sitting at an interface in a workplace is often very educational.
07:45 moritz and so far, we've managed to automate deployment to our staging environment ("qsu" in that picture, for "Qualitätssicherungsumgebung")
07:45 moritz though DB schema changes still must be done manually
07:45 lolisa joined #perl6
07:46 masak "Quality assurance context"?
07:46 moritz umgebung = environment
07:46 masak ah, ok. yeah, that sounds better.
07:47 masak moritz: for DB schema changes -- though I know it might not be an option in this case -- have you seen http://sqitch.org/ ?
07:47 moritz masak: yes, I have
07:48 moritz masak: "but it's not so simple" :/
07:48 moritz we have some tooling to automatically generate SQL/DDL diffs
07:48 moritz but sometimes, custom migrations are also needed; so we'd have to integrate switch with that tooling
07:48 moritz then, rollbacks
07:48 masak *nod*
07:48 moritz we have changes that can't meaningfully be rolled back
07:49 moritz so we'll have to develop some checkpointing mechanism
07:49 moritz and make sure we don't automatically migrate over a checkpoint
07:49 moritz or at least don't roll back over a checkpoint
07:50 masak "checkpoint" here seemingly meaning "something that shan't be rolled back over"
07:51 moritz yes
07:51 moritz and maybe even two types of checkpoint
07:51 moritz one for not rolling back over
07:51 moritz one for not even upgrading automatically over
07:51 moritz (though the latter is more rare)
07:51 masak ok.
07:52 moritz and maybe a third one for "only do this at night" :-)
07:52 masak :)
07:52 masak reify those types. will make you happy.
07:52 masak huh. I've heard and used the term "pipe dream" for many years, but I've never connected it back to its 1900-era opium etymology. until now.
07:53 moritz masak++ # bringing up "pipe dream" in connection with Continuous Delivery
07:54 moritz it must be possible to mold that into a talk title
07:54 moritz "Continuous Delivery: Pipe Dreams and Reality"
07:56 masak haha
07:58 * masak is skimming S07-glr-draft
07:58 RabidGravy I'm having my regular daily stupid:
07:58 RabidGravy m: my @a = sub {}, sub {}; say all(@a) ~~ Callable
07:58 camelia rakudo-moar 2c58ee: OUTPUT«all(True, True)␤»
07:59 masak I'm not 100% sure I *want* a list concat operator in core Perl 6 -- it's easy to create one, just like with postfix:<!> -- but has infix:<++> been considered? there's prior art, in Haskell and probably other languages.
07:59 RabidGravy er, ook, it gives me False here
07:59 * DrForr survived the trip from hell, and is *even* back at work the day after.
07:59 masak RabidGravy: think that changed recently.
08:03 masak wow. 0b60530645545b0ed893edc5ce6778fb16656209 marks *another* bug in the code I kvetched about in my latest blog post!
08:03 masak I missed the discussion around that.
08:03 * masak backlogs
08:04 masak ...no discussion, it seems.
08:05 * FROGGS disagrees
08:05 FROGGS now we can discuss :o)
08:06 abraxxa joined #perl6
08:06 masak actually, TimToady made two commits to the method that day.
08:09 yqt joined #perl6
08:10 yqt joined #perl6
08:16 davido__ joined #perl6
08:21 uncleyear joined #perl6
08:27 masak FROGGS: well, I think TimToady's changes are both for the better.
08:30 masak unlike the thing I blogged about, though, they don't make me smack my forehead and go "d'oh! we should have known better than to walk into this one!"
08:30 masak rather the reverse, actually. connection sign() to Order seems to be a very creative process.
08:31 masak I would say that the current code relies on the (rather safe) assumption that every orderable, numifiable type has only one zero.
08:33 pat_js joined #perl6
08:34 [Sno] joined #perl6
08:37 bin_005 joined #perl6
08:38 moritz says the one who argued for distinct -0e0 and +0e0 :-)
08:39 masak hah!
08:40 masak touché.
08:40 masak those two *are* distinct value objects, yes. but they are the same *number*.
08:40 masak *that* was the subtle distinction I was arguing for.
08:41 masak since we're numifying here, the difference between -0e0 and +0e0 doesn't come into play.
08:41 moritz I know, just wanted to taunt you a bit
08:41 DrForr True, they are near positive and negative epsilon :)
08:41 masak DrForr: hie the hence with your nonstandard analysis! :P
08:42 * masak hugs the Archimedian property ever so tightly
08:42 masak thee*
08:43 uncleyear joined #perl6
08:47 masak dean*
08:48 [Tux] koffie
08:49 * moritz only knows the Archaeopteryx
08:51 espadrine joined #perl6
08:51 masak the Archimedean property says that if you lay enough copies of a shorter interval end-to-end, you can always exceed a given longer interval.
08:51 masak with things like epsilons, or infinitesimals, or infinities, this property does not hold on the number line.
08:52 moritz and neither does it in 3D :-)
08:52 masak modern calculus prefers to phrase things in terms of limits.
08:53 _mg_ joined #perl6
08:54 larion joined #perl6
08:59 abraxxa joined #perl6
09:02 aindilis joined #perl6
09:02 amurf joined #perl6
09:04 masak ...but (to bring it back to Perl 6) IEEE 754's consideration of +0e0 and -0e0 as being different *is* more reminiscient of infinitesimals than of anything else.
09:04 masak well, different but numerically equivalent :)
09:05 masak as far as I've been able to understand, the two major uses for -0e0 in the standard are limits/underflows, and cuts in the complex plane.
09:06 mrf joined #perl6
09:09 laouji joined #perl6
09:13 bin_005_l joined #perl6
09:18 larion joined #perl6
09:26 abraxxa joined #perl6
09:33 uncleyear joined #perl6
10:04 diana_olhovik_ joined #perl6
10:07 uncleyear joined #perl6
10:17 bin_005_l joined #perl6
10:34 davido__ joined #perl6
10:38 andreoss joined #perl6
10:48 andreoss m: subset Y of Int where 1..10; my Y @x; @x.push: 10; @x[0]++ ; @x.perl.say
10:48 camelia rakudo-moar 2c58ee: OUTPUT«Array[Y].new(11)␤»
10:48 andreoss m: subset Y of Int where 1..10; my Y @x; @x[0] = 10; @x[0]++ ; @x.perl.say
10:48 camelia rakudo-moar 2c58ee: OUTPUT«Type check failed in assignment to '@x'; expected 'Y' but got 'Int'␤  in block <unit> at /tmp/1211Xh_ZOc:1␤␤»
10:48 andreoss why pushed value is not type checked?
10:49 moritz because bug
10:49 moritz I guess that push doesn't create the right Scalar container for the new elemnt
10:52 amurf joined #perl6
10:52 andreoss reported
10:54 moritz andreoss++
10:59 uncleyear joined #perl6
11:00 itz_ I suppose error messages are more likely to be interactive and p6doc processing batch driventop
11:02 itz_ oops command line history--
11:07 larion joined #perl6
11:09 smls joined #perl6
11:10 telex joined #perl6
11:10 smls good *
11:10 yoleaux 05:22Z <TimToady> smls: see http://irclog.perlgeek.de/perl6/2015-06-17#i_10760273 for the real reason your expression wasn't lazy
11:10 yoleaux 05:47Z <TimToady> smls: thing is, 1, [\*] 1..* is now considered 2 elements, and you asked for 10, so of course it was trying to completely evaluate the second element of your list, which happens to be infinite
11:11 smls TimToady: ah :)
11:12 smls Hm, but why does it need to completely evaluate the elemant just to say/gist it?
11:12 smls doesn't postcirfumfix:[] preserve the lazyness of the List element it returns?
11:12 Akagi201 joined #perl6
11:16 _mg_ joined #perl6
11:21 _mg__ joined #perl6
11:35 cognominal joined #perl6
11:36 DrForr modules.perl6.org has two entries for 'Readline' (one is for 'ReadLine'), seeing if that's something wrong in the github repo.
11:39 DrForr Oh, interesting, just noted the different synopses.
11:46 uncleyear joined #perl6
11:48 lolisa joined #perl6
12:00 emperiz joined #perl6
12:03 coffee` joined #perl6
12:11 smls I think postfix:<++> doing .succ instead of +=1 is kind of a WAT
12:12 smls ++ looks like + which coerces to Numeric
12:14 hoelzro o/ #perl6
12:16 larion joined #perl6
12:19 colomon smls: postfix:<++> working on strings to give you non-numeric result is very well-established Perl behavior.  but I do see your point...
12:19 Ven joined #perl6
12:19 Sqirrel joined #perl6
12:21 uncleyear joined #perl6
12:21 DrForr The 'successor' does give you a hint that it's more generic than just integer types, S(x) works on more general sets.
12:22 larion joined #perl6
12:27 aborazmeh joined #perl6
12:27 aborazmeh joined #perl6
12:34 hoelzro bartolin: I figured out that chained assignment bug, if you're curious: https://rt.perl.org/Ticket/Display.html?id=125407
12:37 smls m: my Real() $x;
12:37 camelia rakudo-moar 2c58ee: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3nYmT_9ElY␤Coercion Real(Any) is insufficiently type-like to qualify a variable␤at /tmp/3nYmT_9ElY:1␤------> 3my Real() $x7⏏5;␤    expecting any of:␤        constraint␤»
12:37 smls ^^ why is this not allowed?
12:37 hoelzro m: Regex.new
12:37 camelia rakudo-moar 2c58ee: OUTPUT«Cannot make a Regex object using .new␤  in block <unit> at /tmp/MgJYU_9yW8:1␤␤»
12:38 hoelzro is Regex.new supposed to do anything? a roast test is failing because it's expecting Regex.new to not fail
12:41 amurf joined #perl6
12:50 gagalicious joined #perl6
12:50 yoleaux joined #perl6
12:51 dalek rakudo-star-daily: d5e0154 | coke++ | log/ (2 files):
12:51 dalek rakudo-star-daily: today (automated commit)
12:51 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/d5e0154975
12:53 itz joined #perl6
12:55 [Coke] moritz: I am being transitioned into devops here. I may rely on you for mental health. :)
12:59 smls What's the difference between   submethod BUILD($!attr) {*}   and   submethod BUILD($!attr) {}
12:59 smls is the * meaningful to the parser in some way?
13:00 smls also, why are we not allowed to leave off the block completely and terminate with a semicolon:
13:00 smls submethod BUILD($!attr);
13:05 hoelzro so the release is coming up tomorrow, and I happen to be the release manager
13:05 hoelzro does this month's release have a name yet?
13:10 smls m: say pi.WHAT
13:10 camelia rakudo-moar 2c58ee: OUTPUT«(Num)␤»
13:10 smls didn't pi use to be a Rat?
13:10 akakcolin joined #perl6
13:10 moritz nope
13:11 moritz [Coke]: congratulations, condolences, whatever you feel is appropriate :-)
13:12 moritz [Coke]: fwiw I found "Continuous Delivery" by Humble and Farley very helpful
13:13 nwc10 no, not even in Indiana
13:18 hoelzro also, I'm supposed to go through RT tickets that "might need resolving".  Could any past release managers clue me in on the criteria they used to select these?
13:20 moritz hoelzro: the question you have to ask yourself is "would this bug prevent me from use the compiler?"
13:20 moritz if yes, it needs resovling
13:20 hoelzro ok, good metric
13:20 hoelzro I take it going through tickets filed since the last release is probably far back enough?
13:21 moritz yes
13:21 hoelzro alright, cool
13:21 hoelzro how do we decide on a release name?
13:22 hoelzro or has that been decided already?
13:22 moritz I don't know of such a decision yet
13:22 moritz and you can decide it
13:23 moritz usually, you look for conference with P6 content (YAPC::NA!), and if there was one, the closes perl mongers group would be a good release name :-)
13:23 moritz if not, just pick any pm group you want, which hasn't had a release named after it
13:23 hoelzro oh, that's easy then, assuming we don't have a SaltLakeCity release =)
13:25 andreoss m: my %h{Int}; %h = 1=>"x" || 4=>"y"; say %h.perl;
13:25 camelia rakudo-moar 2c58ee: OUTPUT«Hash[Any,Int].new(1 => :x("y"))␤»
13:26 andreoss m: my %h{Int}; %h = (1=>"x)" // (4=>"y"); say %h.perl;
13:26 camelia rakudo-moar 2c58ee: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vyGAF0p8qO␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at /tmp/vyGAF0p8qO:1␤------> 3 %h = (1=>"x)" // (4=>"y"); say %h.perl;7⏏5<EOL>␤»
13:26 andreoss m: my %h{Int}; %h = (1=>"x") // (4=>"y"); say %h.perl;
13:26 camelia rakudo-moar 2c58ee: OUTPUT«Hash[Any,Int].new(1 => "x")␤»
13:26 moritz hoelzro: seems we don't. http://saltlake.pm.org/
13:26 andreoss m: my %h{Bool}; %h = (True=>"x") // (4=>"y"); say %h.perl;
13:26 camelia rakudo-moar 2c58ee: OUTPUT«Type check failed in binding key; expected 'Bool' but got 'Str'␤  in block <unit> at /tmp/KCdOEtmcWG:1␤␤»
13:27 andreoss how do i prevent hash key from stringification here?
13:27 andreoss besides of Bool::True
13:28 geekosaur andreoss, %h{Bool} means Str keys and Bool values. I think you want %h{Str,Bool} or something like that?
13:29 moritz or just "my Bool %h"
13:29 andreoss m: my %h{Bool, *}; %h = (True=>"x") // (4=>"y"); say %h.perl;
13:29 camelia rakudo-moar 2c58ee: OUTPUT«Hash[Any].new("True" => "x")␤»
13:29 andreoss m: my %h{Bool, *}; %h = (True=>"x") // (4=>"y"); say %h.keys».perl;
13:29 camelia rakudo-moar 2c58ee: OUTPUT«"True"␤»
13:29 moritz which automatically constrains the value type to Bool, and leaves the keys to be coercing Strs
13:30 andreoss my Y %h{Z}; keys are Z?
13:36 andreoss so I can't have typed keys (not just constrained against some type) inside Hash?
13:37 TimToady yes, you can have typed keys
13:37 * Ven just spent an hour "teaching" perl6 to some school peeps
13:38 Ven I should've gotten a bottle of water. my throat... But it all went well, and people were impressed by how it looks :) (even if they were scared by "perl" before)
13:38 masak Ven: \o/
13:38 masak Ven++
13:38 skids joined #perl6
13:38 masak Ven: let me tell you, I'd come to one of your Perl 6 classes. :)
13:39 Ven (live coded during an hour, I just failed on the grammars for some reason, dunno what went wrong)
13:39 andreoss TimToady: but they end up as Strs with .keys
13:39 Ven masak: you'd just be correcting my mistakes all over the place :P
13:39 hoelzro \o/
13:39 andreoss m: my %h{Bool, *}; %h = True=>"x"; say %h.keys[0].WHAT;
13:39 camelia rakudo-moar 2c58ee: OUTPUT«(Str)␤»
13:39 TimToady that's not how you write it
13:40 andreoss m: my Str %h{Bool}; %h = True=>"x"; say %h.keys[0].WHAT;
13:40 camelia rakudo-moar 2c58ee: OUTPUT«Type check failed in binding key; expected 'Bool' but got 'Str'␤  in block <unit> at /tmp/efCAknMRAw:1␤␤»
13:40 moritz => autoquotes
13:41 moritz m: my Str %h{Bool}; %h{True} = 'x'; say %h.keys[0].^name
13:41 camelia rakudo-moar 2c58ee: OUTPUT«Bool␤»
13:41 PerlJam good morning
13:41 masak Ven: ...probably. but I'd do it in a very appreciative way. :P
13:41 Ven :P
13:42 * Ven showed moritz++'s json::tiny, the blogs, jnthn++'s debugger, jnthn++'s oo-{monitors,actors}, and rosettacode at the end
13:43 andreoss moritz: it does when i use just True, with Bool::True it doesn't
13:43 andreoss or i'm wrong
13:43 PerlJam andreoss: Bool::True isn't a bareword
13:43 TimToady m: my Str %h{Bool}; %h = (True) => "x"; say %h.keys[0].WHAT;
13:43 camelia rakudo-moar 2c58ee: OUTPUT«(Bool)␤»
13:44 masak how do you define a bareword? something that isn't quoted but parses as a string?
13:44 TimToady m: my Str %h{Bool}; %h = True, "x"; say %h.keys[0].WHAT;
13:44 camelia rakudo-moar 2c58ee: OUTPUT«(Bool)␤»
13:44 masak in that case, I posit that the only place where Perl 6 allows barewords is before '=>'
13:45 TimToady I try to avoid the term "bareword", since that has a technical meaning in P5
13:45 TimToady it's just an identifier
13:45 TimToady and => quotes it retroactively here
13:45 masak it was that technical meaning I was curious about
13:45 TimToady "If a bare identifier has no other interpretation in the grammar, it is taken as a string."
13:46 masak o.O
13:46 TimToady it actually relies on a reduce/reduce error in yacc
13:46 masak O.O
13:46 Ven ooh, I used parse instead of subparse -.-
13:47 [Coke] hoelzro: if you do the nqp release, note that there's a PortFile in there for macports, but it's not part of ports yet, so if you do update it, there's no place to submit it yet.
13:48 [Coke] (whereas the moarvm port does need to be updated and submitted)
13:48 hoelzro [Coke]: so update the PortFile for NQP, but don't submit?
13:48 hoelzro but *do* submit the MoarVM PortFile?
13:48 TimToady anyway, by the P5 definition, P6 has no barewords.
13:50 [Coke] hoelzro: yes and yes, I think.
13:50 hoelzro alright
13:50 [Coke] I am happy to submit the moarvm file if needed. directions are in the moarvm repo.
13:51 [Coke] (nqp doesn't have anything in the release guide, but does have standalone directions, just wanted to prevent confusion)
13:52 PerlJam m: say (foo'bar => 42).perl
13:52 camelia rakudo-moar 2c58ee: OUTPUT«:foo'bar(42)␤»
13:52 PerlJam I guess I just need to update my idea of "identifier" to be more in line with perl 6 so that I will stop using the term "bareword"
13:53 PerlJam (or something ... I still think of them as barewords)
13:54 masak m: say (don't-stop-me-now => "I'm having such a good time").perl
13:54 camelia rakudo-moar 2c58ee: OUTPUT«:don't-stop-me-now("I'm having such a good time")␤»
13:54 masak say (:I'm-having-a-ball).perl
13:54 masak m: say (:I'm-having-a-ball).perl
13:54 camelia rakudo-moar 2c58ee: OUTPUT«:I'm-having-a-ball␤»
13:55 masak .u ⛹
13:55 yoleaux U+26F9 PERSON WITH BALL [So] (⛹)
13:55 PerlJam heh
13:55 TimToady o_O how come I never saw that character before?
13:56 masak maybe it's new?
13:56 TimToady at 26F9?
13:56 * PerlJam still hasn't seen it as my terminal isn't smart enough to be able to show it.
13:57 TimToady shows up here, so can't be that new...
13:57 TimToady m: say uniprop('⛹', 'age')
13:57 camelia rakudo-moar 2c58ee: OUTPUT«5.2␤»
13:58 TimToady I love that property :)
13:59 masak wow.
13:59 masak don't know if I've said it before, but vim commands are strangely consistent.
13:59 [Coke] m: say uniprop('a','age');
13:59 camelia rakudo-moar 2c58ee: OUTPUT«1.1␤»
13:59 [Coke] no one uses 1.0
13:59 TimToady 1.0 didn' thave ASCII yet
14:03 Ven joined #perl6
14:04 masak 1.0 only had '1'. not even '0', only the NUL character. :P
14:05 masak those were hard, bleak times. uphill both ways.
14:09 PerlJam English is hard sometimes.  It's taken me 30 minutes to write a 3 sentence email because I reread the email I'm responding to and realized that they may have asked a different question than what I originally thought, so I re-read the thread to make sure that I understood what they were asking in context.
14:10 andreoss is there  something better than .Bag.Hash.invert to get a hash of counted values?
14:11 TimToady a bag is supposed to be a hash already, from the standpoint of .invert; if not, it's a bug
14:12 TimToady m: say bag(<a b b c c c>).invert.perl
14:12 camelia rakudo-moar 2c58ee: OUTPUT«(1 => "a", 3 => "c", 2 => "b")␤»
14:12 hoelzro if I prepare MoarVM, NQP, and Rakudo tarballs tonight (my time), will someone help me upload them tomorrow morning?
14:12 smls Can someone double-check if this looks sensible? http://rosettacode.org/wiki/Vector#Perl_6
14:13 andreoss m: say bag(1.1, 2.3, 1.1).invert.perl
14:13 camelia rakudo-moar 2c58ee: OUTPUT«(2 => 1.1, 1 => 2.3)␤»
14:13 [Coke] hoelzro: I can help with the rakudo/nqp ones at least.
14:13 PerlJam hoelzro: me too if Coke's not around
14:13 [Coke] not sure I have moarvmprivs
14:13 andreoss m: say bag(True, False, True).invert.perl
14:13 camelia rakudo-moar 2c58ee: OUTPUT«(2 => Bool::True, 1 => Bool::False)␤»
14:13 hoelzro \o/
14:13 TimToady smls: re semi vs block stubbing, P6 reserves semicolon forms for declaring things that take the rest of the block as the body of the declarand
14:13 hoelzro I'll be honest, I'm a little nervous about doing this release =/
14:13 TimToady and {...} is clearer to the reader
14:14 hoelzro first time for everything, though
14:14 PerlJam hoelzro: why nervous?  What's the worst that could happen?
14:14 hoelzro PerlJam: I guess that the release doesn't go out on time
14:14 TimToady we could cut your pay in half :P
14:14 PerlJam smls: "substract" seems to have one too many esses
14:15 TimToady we could say "hoelzro is a froo froo!"
14:15 TimToady we could, I dunno, have a party
14:15 hoelzro TimToady: no, don't cut my pay! =P
14:15 smls PerlJam: fixed
14:15 TimToady we could, like, delay Christmas by a corresponding amount...
14:15 [Coke] Oh, we already have "is required" in one place. huh.
14:16 * PerlJam half expects to reload and see "ubstract" now  ;)
14:16 Begi joined #perl6
14:16 smls :P
14:16 smls TimToady: But isn't that what the unit keyword is for?
14:17 * TimToady is being hounded to pack so we can --> Jackson, WY
14:17 TimToady smls: well, unit has an extra meaning of hoisting the name declaration to the outside of the file, as it were
14:18 dalek rakudo/2015.06-prep: 0934682 | hoelzro++ | docs/ (2 files):
14:18 dalek rakudo/2015.06-prep: Add first draft of release announcement for 2015.06
14:18 dalek rakudo/2015.06-prep: review: https://github.com/rakudo/rakudo/commit/0934682d97
14:18 emperiz left #perl6
14:20 zoosha joined #perl6
14:20 PerlJam hoelzro++  you've gotten the hard part of the release out of the way (picking a name)
14:21 smls m: class A; has $.a
14:21 camelia rakudo-moar 2c58ee: OUTPUT«Saw 1 occurrence of deprecated code.␤================================================================================␤Semicolon form of 'class' without 'unit' seen at:␤  /tmp/yAJXM4rRjA, line 1␤Deprecated since v2015.4, will be removed with release…»
14:21 masak TimToady: re "rest of the block as the body of the declarand" -- where can I read more about this? should I think of semicolon almost as a right-associative infix operator?
14:22 smls TimToady: But the semicolon form without 'unit' has no meaning at all after the deprecation, does it?
14:22 masak oh, it was in the context of module declarations. never mind then.
14:22 [Coke] m: my bool $a;
14:22 camelia rakudo-moar 2c58ee: OUTPUT«5===SORRY!5===␤Type 'bool' is not declared. Did you mean any of these?␤    Bool␤    Cool␤␤at /tmp/65xBHpR5gT:1␤------> 3my bool7⏏5 $a;␤Malformed my␤at /tmp/65xBHpR5gT:1␤------> 3my7⏏5 bool $a;␤␤»
14:22 smls masak: routines too :P
14:23 PerlJam wait ... what?
14:23 smls m: sub a;
14:23 camelia rakudo-moar 2c58ee: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4ugZqJXdkm␤A unit-scoped sub definition is not allowed except on a MAIN sub;␤Please use the block form.␤at /tmp/4ugZqJXdkm:1␤------> 3sub a;7⏏5<EOL>␤»
14:23 hoelzro PerlJam: =)
14:23 masak m: class Cat {}; say "I was bitten by a ", Bat # :)
14:23 camelia rakudo-moar 2c58ee: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9Je_QoROEu␤Undeclared name:␤    Bat used at line 1. Did you mean 'Rat', 'Bag', 'Cat'?␤␤»
14:23 PerlJam ah, only on MAIN really
14:24 masak m: sub MAIN();
14:24 camelia rakudo-moar 2c58ee: ( no output )
14:25 masak needs to be `unit sub MAIN();`, no?
14:25 masak should be an error, no?
14:25 smls Haven't seen anyone write a brace-less sub MAIN, but seen lots and lots of {*} dangling at the end of routine declarations (nativecall code, submetod BUILD, ...)
14:26 masak smls: that's different.
14:26 andreoss m: sub xxx returns Hash[Int,Int] { Hash[Int,Int].new(1,2) }; xxx().perl.say
14:26 camelia rakudo-moar 2c58ee: OUTPUT«Hash[Int,Int].new(1 => 2)␤»
14:26 smls Doesn't that make the meaning of ; terminated declarations incorrectly huffmanized?
14:26 smls :)
14:26 masak smls: but it's interesting that you conflate those. as a Perl 6 person, I don't.
14:26 smls I don't conflate, I contrast
14:26 andreoss m: sub xxx returns Hash[Int,Int] { 1 => 2 }; xxx().perl.say
14:26 camelia rakudo-moar 2c58ee: OUTPUT«Type check failed for return value; expected 'Hash[Int,Int]' but got 'Pair'␤  in any return_error at src/vm/moar/Perl6/Ops.nqp:639␤  in sub xxx at /tmp/1sR7gqq3hS:1␤  in block <unit> at /tmp/1sR7gqq3hS:1␤␤»
14:26 smls I think?
14:26 cognominal $a.?method    calls method if it exists for $a.  What is the chainable idiom for the expression to return False if  $a gives False in boolean context?
14:26 uncleyear joined #perl6
14:27 PerlJam smls: I don't get your point in that case.
14:27 masak cognominal: `$a && $a.method`
14:27 cognominal that's not chainable
14:28 masak could you specify what you mean by "chainable" here?
14:28 smls The point was that by no longer allowing  "sub MAIN;"  to mean what it does, one could instead allow  submethod BUILD($!attr);  to mean  submethod BUILD($!attr) {*};
14:28 masak it's possible to chain `&&`s
14:28 cognominal masak: $a.?amethod.?another.?yetanother
14:28 smls "sub MAIN;" would then have to be written "unit sub MAIN;"  or similar
14:29 domidumont joined #perl6
14:29 andreoss can i avoid such repetition as above?
14:29 cognominal that syntax is used for that in some languages : coffeescript I think and langs derived from it.
14:29 [Coke] is there a hook that is run after an object goes through new/BUILD ?
14:30 cognominal m: say Nil?.foo
14:30 camelia rakudo-moar 2c58ee: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Jee_hgnMVA␤Bogus postfix␤at /tmp/Jee_hgnMVA:1␤------> 3say Nil7⏏5?.foo␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement m…»
14:30 masak cognominal: well, having a `&.` dotty for that would make sense to me.
14:30 andreoss [Coke]: you could use ENTER {} and LEAVE {}
14:30 masak I don't think dotty ops can be defined in user space yet.
14:31 [Coke] andreoss: I need it for -all- objects, all BUILDs.
14:31 smls masak: $foo&.method  is currently parsed as  all($foo, $_.method)  I think
14:31 [Coke] (trying to add a trait to attributes, need a place to deal with the trait during object creation)
14:32 masak smls: only because there is no dotty op that would win the LTM.
14:32 smls cognominal: .?method  exists, but it means "call the method if it can be found on the object", not "call the method if the object is defined"
14:32 smls which is subtly different
14:33 cognominal I am wrong, lsc uses ?. for that. So there is no conflict with .?
14:33 smls ah, you already said that.
14:34 domidumont joined #perl6
14:34 cognominal I think ?. would be used way more often than .?      But anyway, there is not conflict.
14:35 smls m: say ($_ andthen *.uc) for Any, "foo"
14:35 camelia rakudo-moar 2c58ee: OUTPUT«(Any)␤FOO␤»
14:35 cognominal On the other hand, you must not be dyslexic, but that is true in many other places
14:36 smls yeah, the .? .+ .* method call forms don't seem to be used that much
14:36 masak there was something with them that I felt made them much less useful than they could be. I forget the details, though.
14:37 cognominal I also miss |> and <| in Perl 6 also I don't know what should be the exact precedence.
14:37 [Coke] seen jnthn?
14:37 [Coke] .seen jnthn?
14:37 yoleaux I haven't seen jnthn? around.
14:37 [Coke] .seen jnthn
14:37 yoleaux I saw jnthn 16 Jun 2015 17:58Z in #perl6: <jnthn> dinner &
14:37 AlexDaniel joined #perl6
14:40 masak famous last words.
14:43 PerlJam gah, english is hard part 2.   Despite my (IMHO) perfectly clear 3 sentence email, now they're asking for something that I said in sentence #1 again.
14:43 * PerlJam responds with a one sentence email that uses the same sentence structure as the querent.
14:43 tadzik try to resist sending the same email with reordered sentences :P
14:43 masak just re-send sentence #1.
14:44 masak but in all-caps this time.
14:44 * masak , life coach
14:44 tadzik on hoge
14:44 masak yes, send them a hoge.
14:46 dalek nqp: 9852c9e | hoelzro++ | src/HLL/Grammar.nqp:
14:46 dalek nqp: Don't clobber prec in precedence hash
14:46 dalek nqp:
14:46 dalek nqp: Fixes RT #80614
14:46 dalek nqp: Fixes RT #120704
14:46 dalek nqp: Fixes RT #125407
14:46 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=80614
14:46 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=120704
14:46 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125407
14:46 dalek nqp:
14:46 dalek nqp: The issue is that the operator precedence table from HLL::Grammar (used
14:46 dalek nqp: for both Grammar.O and Grammar.EXPR) has a hash of hashes, the values of
14:46 dalek nqp: which specify things like precedence and associativity. For example, the
14:46 dalek nqp: hash contains something like the following for the key '%list_assignment':
14:46 dalek nqp:
14:46 dalek nqp:     { :prec<i=>, :assoc<right>, :sub<e=> }
14:46 dalek nqp:
14:46 dalek nqp: The 'sub' key is the...umm, key here. After handling some things with
14:46 dalek nqp: %inO<prec> in HLL::Grammar.EXPR, %inO<sub> is assigned to %inO<prec> -
14:46 dalek nqp: changing the precedence of list assignment from 'i=' to 'e=' *globally*.
14:46 dalek nqp:
14:46 dalek nqp: Instead of modifying the precedence hashes returned through the matches,
14:46 dalek nqp: this patch checks subprecedence ('sub') before precedence ('prec') when
14:46 dalek nqp: fetching the precedence for an operator in the precedence table.
14:46 dalek nqp: review: https://github.com/perl6/nqp/commit/9852c9e12c
14:46 dalek rakudo/nom: 0934682 | hoelzro++ | docs/ (2 files):
14:46 dalek rakudo/nom: Add first draft of release announcement for 2015.06
14:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0934682d97
14:46 dalek rakudo/nom: 9b1e856 | hoelzro++ | tools/build/NQP_REVISION:
14:46 dalek rakudo/nom: Bump NQP revision to take advantage of precedence fix
14:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9b1e856cec
14:46 dalek roast: 07da8c0 | hoelzro++ | S03-operators/assign.t:
14:46 dalek roast: RT #80614 is no longer TODO
14:46 dalek roast:
14:46 dalek roast: It's TODONE!
14:46 dalek roast: review: https://github.com/perl6/roast/commit/07da8c09d9
14:46 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=80614
14:47 tadzik TODONE!
14:47 PerlJam while I'm slightly annoyed at the amount of stuff dalek just sent, I'm at the same time intrigued by it and want to know more  :)
14:49 [Coke] ok, I have "is required" parsing on attributes, setting a new "required" flag on the Attribute itself. Just need a place to hook in the check.
14:50 elimik31 joined #perl6
14:50 maettu left #perl6
14:51 geekosaur todo/tada
14:51 DrForr Has Perl6::Grammar been exposed appropriately yet?
14:52 masak what's a subprecedence?
14:53 masak DrForr: no :(
14:53 masak DrForr: I think it may well be exposed inappropriately, though. with some work.
14:53 dalek rakudo/attr-isrequired: 212c0c0 | coke++ | src/ (3 files):
14:53 dalek rakudo/attr-isrequired: Add a required attr to Attributes
14:53 dalek rakudo/attr-isrequired:
14:53 dalek rakudo/attr-isrequired: If "is required" is present, set the attr.
14:53 dalek rakudo/attr-isrequired:
14:53 dalek rakudo/attr-isrequired: not yet enforced
14:53 dalek rakudo/attr-isrequired: review: https://github.com/rakudo/rakudo/commit/212c0c0c05
14:54 DrForr That sounds fragile. I was going to try to finish up the last grammar bits this week so I could move on to perl6tidy.
14:56 uncleyear joined #perl6
14:57 masak DrForr: if you could wave a magic wand and make any API appear without any work on your part involved, what would it look like?
14:57 PerlJam Coke: maybe look how attribute initialization happens?  like when you've said "has $.foo = blah;"  Since blah would have to run each time the object is created, seems like that would be about the time to check for "is required"
14:57 zoosha joined #perl6
14:58 DrForr Uh, I'd have to be more awake than I am now in order to think about that.
15:01 [Coke] PerlJam: build_closure looked promising, but I didn't see where it was used.
15:01 hoelzro masak: something I didn't know about until I dug into those tickets
15:01 hoelzro I'm still not sure what it is =/
15:01 hoelzro it's something like precedence when considering something as a postfix/prefix operator, I think
15:01 masak hoelzro: if you find out, let me know.
15:01 DrForr I'd just as soon build my own AST, so just exposing the match tree would make me happy.
15:02 masak anyway, hoelzro++
15:02 hoelzro jnthn may know more, he wrote it =)
15:02 PerlJam hoelzro++ but you should have some extra karma for tracking down that bug!  :)
15:02 gfldex joined #perl6
15:02 masak DrForr: I can't help but think you might be very happy dealing with the future hypothetical Qtree for what you want to do.
15:02 hoelzro [Coke]++ # required trait
15:03 [Coke] ah, can make a closure that dies and then use --ll-exception, I guess.
15:03 DrForr masak: Link to an idea?
15:03 masak DrForr: hold on. maybe.
15:04 * hoelzro is surprised that "hoge" doesn't come up in Google Images with a Shiba wearing a pig costume
15:04 masak DrForr: http://strangelyconsistent.org/blog/macros-progress-report-after-a-long-break -- grep for "Secondly"
15:05 * DrForr reads the IRC log.
15:06 * masak is glad he wrote that post, but also wants to write more about this
15:06 masak it's like a brain/blog bottleneck right now.
15:07 DrForr QAST::Op sounds like the right level of abstraction for what I'm after, that way I can "just" return a decorated string, but that feels too low-level for macro use.
15:07 [Coke] ah, src/Perl6/Metamodel/BUILDPLAN.nqp looks promising
15:09 Begi my @liste = 'a', 'b', 'c'; my $letter = 'a'; first-index(@liste $letter);
15:09 JimmyZ_ joined #perl6
15:09 Begi Where is the problem ? Thanks.
15:10 PerlJam Begi: I believe that the compiler tells you where.
15:10 PerlJam m: my @liste = 'a', 'b', 'c'; my $letter = 'a'; first-index(@liste $letter);
15:10 camelia rakudo-moar 2c58ee: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2INDpAgOhJ␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/2INDpAgOhJ:1␤------> 3c'; my $letter = 'a'; first-index(@liste7⏏5 $letter);␤    expecting any of:␤       …»
15:10 itz m: say $*IN.t
15:10 camelia rakudo-moar 2c58ee: OUTPUT«Cannot find method 'isatty': no method cache and no .^find_method␤  in block <unit> at /tmp/ulzq4EfffT:1␤␤»
15:12 masak Begi: looks like there should be a comma (`,`) after @liste, before $letter
15:13 masak Begi: generally, when you call a sub, there should be a comma between arguments you pass in.
15:13 PerlJam Begi: also, assuming the lack of comma is a transcription error,  you've got the args to first-index() reversed.
15:14 JimmyZ_ masak: Do you know what Qtree is? And what will it improve?????
15:14 timotimo [Coke]: yes, buildplan is a good place to start
15:14 DrForr JimmyZ_: I don't think he means Quadtrees :)
15:15 * [Coke] is pretty sure he has a plan, but will have to finish this up post dayjob. woot
15:15 * sjn notes that "rakudobrew build parrot" doesn't work any more
15:16 sjn It bails with the error "Unknown option: gen-parrot"
15:16 JimmyZ_ sjn: it is known
15:16 sjn perhaps turn off the parrot option in rakudobrew?
15:17 tadzik Please open a ticket :)
15:17 sjn or at least add a short statement that it's for people who want to hack on it to make it work again :)
15:17 tadzik And query me, because I want to query you but my mobile client can't
15:17 DrForr masak: QAST already seems to exist and it looks ... at least viable. I'll check that out tonight.
15:18 moritz .tell colomon you seem to have several cron-started smoker instances running on hack.p6c.org. Please use something like "flock -n smoker.lock -c /home/colomon/SmokeResults/smoke_test" to protect against multiple executions
15:18 yoleaux moritz: I'll pass your message to colomon.
15:18 colomon moritz: sorry about that
15:18 yoleaux 15:18Z <moritz> colomon: you seem to have several cron-started smoker instances running on hack.p6c.org. Please use something like "flock -n smoker.lock -c /home/colomon/SmokeResults/smoke_test" to protect against multiple executions
15:18 moritz colomon: no problem :-)
15:18 colomon the problem is it seems to be completely impossible to actually run a full smoke test at the moment.
15:19 colomon so they keep adding up
15:19 colomon I suppose I should say, actually *complete* a full smoke test
15:19 moritz the oldest is from 1st of June
15:19 ugexe perhaps youd do better testing 1 module at a time
15:19 moritz so, protect with flock and/or set a timeout
15:19 colomon ugexe: that wouldn’t help
15:20 colomon setting a timeout is probably the thing.
15:20 colomon but that’s an area I don’t really know anything about.
15:20 ugexe colomon: it would keep naughty threads from certain modules that seem to always ruin the smoke test run from affecting the rest
15:20 colomon ugexe: no, the smoke test is not in parallel now
15:20 ugexe im well aware
15:21 ugexe that doesnt stop the perl6 process from being loaded the entire time to run panda
15:21 moritz colomon: man 1 timeout
15:22 flussence moritz++ # wow, I had *no* idea that existed and I've wanted something like it so often
15:22 moritz timeout -k 10m 5h yoursmokerprocess
15:22 colomon moritz++ indeed
15:23 colomon ugexe: I’m completely failing to see how that would help?  so you create a fresh p6 to run panda for just that module, which hangs.  that p6 is still loaded for the duration of the hang.
15:23 ugexe no, you are preventing a ton of modules from being loaded into the currently running perl6 process running panda
15:23 moritz flussence: I googled, and came across an SO answer
15:24 flussence every so often I find out about something I've already got installed that I never knew about :)
15:25 hoelzro since test 7 in t/spec/S17-lowlevel/lock.rakudo.moar always seems to fail, should I fudge that for the 2015.06 release?
15:25 moritz it's in coreutils (on Debian at least)
15:25 uncleyear joined #perl6
15:25 flussence (last month I found out `findmnt` existed, which is way more readable than `mount`)
15:26 moritz wow, flussence++ # findmnt
15:26 arnsholt Oh, neat!
15:26 arnsholt flussence++ indeed
15:27 PerlJam flussence++ indeed (learn something new every day)
15:27 flussence I'm guessing that's a "new" thing, cause it uses fancy unicode lines...
15:27 moritz so, probably not more than 10 years old :-)
15:28 PerlJam docs on my system are from 2010
15:28 colomon ugexe: I’m not sure that’s an accurate description of how the smoker works?  If you use panda to install a module, it doesn’t actually load the module in the process, does it?
15:30 colomon generally speaking, what’s hanging is a shelled call out to prove
15:30 ugexe have you ever noticed teters.perl6.org will get strings of 'N/A' tests always after the exact same modules sometimes?
15:31 colomon no, I don’t really look at testers.perl6.org
15:32 flussence is testers.perl6.org using the same data as smoke.perl6.org?
15:32 ugexe no, testers uses many  different hardware/machines
15:33 ugexe it is the 'cpan testers' equivilent
15:34 Begi Why can't I use the first-index() sub ? My error is the following : 'Undeclared routine'. Sorry, I'm a beginner.
15:36 PerlJam Begi: are you sure you're using Perl 6 to execute the code?
15:36 Begi PerlJam : Yes. I think I should restart my installation ?
15:37 ugexe is there even a subroutine for first-index?
15:38 Begi http://doc.perl6.org/routine/first-index
15:38 ugexe im talking about existing in the codebase
15:38 ugexe i see the method, but not the sub
15:38 flussence well I can't tab-complete it either, if that's any indication...
15:39 coffee` joined #perl6
15:42 [Coke] begi: you have some sample code you can put in a gist somewhere?
15:43 ugexe ah there it is
15:43 [Coke] m: say first-index { $^a % 2 }, 1..10;
15:43 camelia rakudo-moar 9b1e85: OUTPUT«0␤»
15:44 [Coke] m: my @a = 1..10; say first-index { $^a % 2 }, @a
15:44 camelia rakudo-moar 9b1e85: OUTPUT«0␤»
15:44 skids joined #perl6
15:44 PerlJam m: say first-index { $^a %% 2 }, 1..10;   # wonder how often someone will use % when they mean %% ?
15:44 camelia rakudo-moar 9b1e85: OUTPUT«1␤»
15:46 Begi Coke : Sorry ?
15:47 ugexe he is asking you to show an example that does not work
15:47 uncleyear joined #perl6
15:49 Begi my @liste = 'a', 'b', 'c';  my $letter = 'a'; first-index(@liste, $letter);
15:49 Begi m: my @liste = 'a', 'b', 'c';  my $letter = 'a'; first-index(@liste, $letter);
15:49 camelia rakudo-moar 9b1e85: ( no output )
15:49 PerlJam Begi: again, you've got the parameter order switched.
15:50 [Coke] PerlJam: pulled it from S32-list/first-index.t
15:50 ugexe strange he would get an undeclared routine error though
15:50 ugexe instead of complaining about the signature
15:51 grondilu moritz++ (timeout)
15:51 yqt joined #perl6
15:51 PerlJam m:  my @liste = 'a', 'b', 'c';  my $letter = 'a'; say first-index($letter, @liste);  # Begi
15:51 camelia rakudo-moar 9b1e85: OUTPUT«0␤»
15:52 Begi m:  my @liste = 'a', 'b', 'c';  my $letter = 'a'; say first-index($letter, @liste);
15:52 camelia rakudo-moar 9b1e85: OUTPUT«0␤»
15:52 ugexe maybe try the method version as well on your machine?
15:52 ugexe m: "abcde".comb.first-index("c").say
15:52 camelia rakudo-moar 9b1e85: OUTPUT«2␤»
15:53 Begi It works here, but it doesn't work at home...
15:53 PerlJam Begi: what version of rakudo are you running at home?
15:53 ugexe first-index was added over a year ago... so i hope its not *that* :)
15:54 PerlJam never can tell
15:54 diana_olhovik joined #perl6
15:54 Begi Perl6 version 2013.12 built on parrot 5.9.0
15:54 ugexe ouch
15:54 PerlJam ugexe: see?  :)
15:54 [Coke] if it was 2015.04 it'd be ancient. :)
15:55 Begi Oups,...
15:55 ugexe how did you install rakudo by the way... was it a package manager?
15:56 Begi Yes, but I don't remember which...
15:56 ugexe for another couple months it would probably be best to use 'rakudobrew' for installing perl6
15:56 ugexe the distro packaging stuff is being worked on i think but isnt there yet
15:58 Begi Ok. I'll try to install perl6 with rakudobrew
16:00 colomon moritz: hmm, timeout doesn’t seem to work?
16:00 ugexe *puts note in calender to run and report smoke test on 3 year old rakudo*
16:02 moritz colomon: can you be more specific? I just tried it with a small test script, and it worked fine
16:03 colomon moritz: tried it, it kept running past the 5m I specified
16:03 moritz http://perlpunks.de/paste/show/55819a51.559c.305 # timeout example
16:03 colomon trying it again at the moment with different options
16:04 colomon ah, got it to work that time
16:04 colomon timeout -k 2m 1m sh SmokeResults/smoke_test
16:04 ugexe but that one datetime module takes like 10 minutes! :)
16:05 colomon testing purposes only
16:05 ugexe we really need to fix pandas --exclude option so it will exlude its arguments as dependencies as well
16:06 dha joined #perl6
16:06 colomon I’ve been thinking of expanding emmentaler with a blacklist, to try to skip these modules which are always hanging
16:07 ugexe panda has that already but it only ignores the base module
16:08 ugexe but yes, a proper blacklist would save some of our CPU cycles
16:08 colomon right, which means if someone else’s module uses the hanging module, you still get the hang
16:08 ugexe hanging isn't even the worst. when they compeltely screw up the test run for all subsequent modules it makes working modules look like their health is bad
16:10 colomon ugexe: example?
16:10 ugexe colomon: is it always the same modules that do this on your smoke testers? or is it seemingly random
16:10 colomon historically it’s been reliably the same, but I haven’t really checked out the current batch of failures
16:11 ugexe you cant see the pattern because you can tlist by date. but here is what it looks like for a single module when it gets screwed up: http://testers.perl6.org/reports/45193.html
16:12 ugexe basically what happens is panda will bang through the tests (seemingly running them instantly, so probably just returning 0 instantly)
16:12 colomon how can you tell that from that report?
16:12 ugexe because under 'most recent reports' you get a chronilogical list
16:12 ugexe and when that report came in you could see the pattern
16:13 uncleyear joined #perl6
16:13 [Coke] i have done nothing with this yet, but this seems like a timewaster that will get most folks here: http://boingboing.net/2015/06/09/tis-100-game.html
16:14 Ven joined #perl6
16:17 ugexe colomon: on testers.perl6.org/recent.html look at Net::Curl for 2015.5.130.g.2.fdef.2.e If you look above it, you can see something went wrong (although Pod::Strip slipped through)
16:17 ugexe they show no build or test output. i know many of those modules work fine
16:18 amurf joined #perl6
16:19 uncleyea1 joined #perl6
16:23 colomon ugexe: I am not at all convinced, based on poking about a bit.
16:24 colomon ugexe: however, this is actually kind of easy to test.  give me a few....
16:29 muraiki joined #perl6
16:30 muraiki have you all seen the announcement about webassembly? https://brendaneich.com/2015/06/from-asm-js-to-webassembly/
16:30 muraiki I don't quite know what it means for p6, but does this mean if you got rakudo+nqp to work in webassembly, then p6 should "just work" on top of that?
16:31 psch doesn't it just mean we have to get moar working in webassembly?
16:32 psch i mean, the p6 working on top of rakudo and nqp is rakudo, and rakudo needs nqp, and nqp needs one of moar or jvm
16:32 muraiki yeah, this is where I have begun talking about things I don't understand :)
16:32 muraiki oh I see
16:36 rafaalata joined #perl6
16:37 rafaalata left #perl6
16:38 domidumont joined #perl6
16:39 ugexe you only have to watch testers.perl6.org most recent list regularly to be convinced
16:40 ugexe i would see froggs smoking giving these patterns, which would be reproduced if i did a smoke test. at least until froggs randomized his test order
16:40 Ven muraiki: oh wow :o)
16:43 japhb_ joined #perl6
16:43 salv00 joined #perl6
16:44 vendethiel- joined #perl6
16:47 itz http://design.perl6.org/S32/IO.html#.fileno seems defunct .. how do I get the file descriptor?
16:48 dj_goku joined #perl6
16:48 dj_goku joined #perl6
16:48 uncleyear joined #perl6
16:48 colomon hurm, emmentaler seems to be completely broken now?
16:50 colomon wait, needed to pull update
16:55 Alina-malina joined #perl6
16:58 colomon well, not what I was looking at before, but emmentaler still seems pretty broken-ish
16:58 lucasb joined #perl6
16:59 lucasb m: my %h = 'a'..'z' Z=> 1..26; say [+] %h<t w o  h u n d r e d  a n d  f i f t y  n i n e>
16:59 camelia rakudo-moar 9b1e85: OUTPUT«259␤»
16:59 colomon https://gist.github.com/colomon/0934919e1e2ef147693d
16:59 colomon afk # noms
16:59 lucasb m: my %h = 'a'..'z' Z=> 1..26; say [+] %h<t w o  h u n d r e d  a n d  f i f t y  o n e>
16:59 camelia rakudo-moar 9b1e85: OUTPUT«251␤»
16:59 lucasb ^^ saw this on reddit :)
17:00 dalek perl6-examples: 60a7653 | (Steve Mynott)++ | categories/cookbook/15interactivity/15-0 (5 files):
17:00 dalek perl6-examples: a few more simple examples
17:00 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/60a76531f6
17:06 _mg_ joined #perl6
17:07 uncleyear joined #perl6
17:08 dakkar joined #perl6
17:08 lilgreen joined #perl6
17:09 dakkar joined #perl6
17:10 andreoss m: sub xxx returns Hash[Int,Int] { Hash[Int,Int].new(1,2) }; xxx().perl.say
17:10 camelia rakudo-moar 9b1e85: OUTPUT«Hash[Int,Int].new(1 => 2)␤»
17:10 andreoss how can i avoid such repetition of code?
17:10 jnthn What repetition?
17:11 jnthn Oh, mentioning the typename twice?
17:11 andreoss yes
17:11 jnthn Maybe use constant to create an alias?
17:13 andreoss m: sub xxx returns Hash[Int,Int] { my %h = 1,2 }; xxx().perl.say
17:13 camelia rakudo-moar 9b1e85: OUTPUT«Type check failed for return value; expected 'Hash[Int,Int]' but got 'Hash'␤  in any return_error at src/vm/moar/Perl6/Ops.nqp:639␤  in sub xxx at /tmp/HnSIu6hlMB:1␤  in block <unit> at /tmp/HnSIu6hlMB:1␤␤»
17:13 jnthn The error is correct; tye types are nominal.
17:13 jnthn *the
17:13 jnthn If you don't like the ceremony then don't write the "returns". It's
17:14 jnthn Just 'cus you *can* put type constraints into the code doesn't mean you're obligated to.
17:14 dalek perl6-roast-data: b2e42cf | coke++ | / (9 files):
17:14 dalek perl6-roast-data: today (automated commit)
17:14 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/b2e42cf669
17:15 jnthn bah, where'd the stray "It's" come from...
17:16 flussence if we can use ::T for the input side of the signature, why not on the output side too?
17:17 jnthn flussence: Uh...you could but it's a bit vacuous? "returns ::T" means "bind a type variable T at the point I return to the type of what I'm returning", but I'm not sure at that point how you're ever going to use it... )
17:17 jnthn You normally use ::T in a sig so you can use it to ensure another parameter has a matching type or to use it in the body of the sub.
17:20 flussence std: sub xxx(--> Hash[Int,Int] ::T) { T.new(1 => 2) } # I mean, kinda like how S02:1820 uses it
17:20 synbot6 Link: http://design.perl6.org/S02.html#line_1820
17:20 camelia std 28329a7: OUTPUT«ok 00:00 146m␤»
17:20 brrt joined #perl6
17:20 jnthn oh..
17:20 jnthn huh, that parses? :)
17:20 flussence only in std apparently :)
17:21 jnthn I'm still curious when such a thing would bind :)
17:21 jnthn Maybe it's possible to do
17:22 jnthn sub xxx(--> Int %h{Int}) { %h{1} = 2 }
17:22 jnthn std: sub xxx(--> Int %h{Int}) { %h{1} = 2 }
17:22 camelia std 28329a7: OUTPUT«ok 00:00 145m␤»
17:22 jnthn That I can understand how could work (though it ain't impl'd)
17:27 ugexe apple open sourcing swift tho gonna hel
17:27 ugexe oops
17:31 uncleyear joined #perl6
17:33 dalek rakudo/nom: f97f9ad | lizmat++ | src/core/Array.pm:
17:33 dalek rakudo/nom: Add typed Array versions of .push/.unshift
17:33 dalek rakudo/nom:
17:33 dalek rakudo/nom: This should fix #125428
17:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f97f9ad6f0
17:33 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125428
17:39 zakharyas joined #perl6
17:40 moritz Daughter No. 2 will be a big command line fan; she just opened 12 xterm instances on my workstation :-)
17:45 dalek rakudo/nom: dc41e61 | lizmat++ | src/core/List.pm:
17:45 dalek rakudo/nom: Remove type checks from List.push/unshift
17:45 dalek rakudo/nom:
17:45 dalek rakudo/nom: They are only needed for typed arrays anyway, right?
17:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dc41e61d3b
17:47 hoelzro is Regex.new supposed to do anything?
17:47 hoelzro m: Regex.new
17:47 camelia rakudo-moar 9b1e85: OUTPUT«Cannot make a Regex object using .new␤  in block <unit> at /tmp/9KlzlSl0iK:1␤␤»
17:47 hoelzro er, nevermind, that test was updated
17:48 uncleyear joined #perl6
17:48 lizmat hoelzro: that was a side-effect of Sub.new failing now
17:48 lizmat m: Code.new
17:48 camelia rakudo-moar 9b1e85: OUTPUT«Cannot make a Code object using .new␤  in block <unit> at /tmp/tLWwBdgJ_i:1␤␤»
17:49 hoelzro lizmat: ah, ok
17:49 lizmat I'm not sure what Regex.new would need to do
17:49 lizmat if It *would* need something, it would need to make its own .new I guess
17:50 jnthn I've no idea what they should do, and I can't imagine anything easy and meaningful for them to do, so I'd just have them fail for now. :)
17:50 jnthn s/fail/die/
17:50 jnthn Which it appears they are doing.
17:50 lizmat m: my Int @a; @a.push("a")
17:50 camelia rakudo-moar f97f9a: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str'␤  in block <unit> at /tmp/dxfEZxOYKS:1␤␤»
17:50 lizmat m: my Int @a = 0; @a[0] = "a"
17:50 camelia rakudo-moar f97f9a: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str'␤  in block <unit> at /tmp/8tBrHkGDlp:1␤␤»
17:50 lizmat yeah!
17:51 lizmat m: my Int @a; @a[0] = "a"
17:51 camelia rakudo-moar f97f9a: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str'␤  in block <unit> at /tmp/YlRD1T1Pnj:1␤␤»
17:51 jnthn m: my Int @a; @a.push(0); @a[0] = 'oops'
17:51 camelia rakudo-moar f97f9a: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str'␤  in block <unit> at /tmp/cU9yBLWjz2:1␤␤»
17:51 jnthn yay
17:51 lizmat m: my Int @a = 0; @a.push(1); @a[0] = "foo"
17:51 camelia rakudo-moar f97f9a: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str'␤  in block <unit> at /tmp/y7ZoKjBEiT:1␤␤»
17:51 lizmat same for unshift  :-)
17:52 hoelzro jnthn: did you see masak's earlier question about subprecedence? that was something we were wondering about, and I thought you may be able to shed some light on it
17:52 lizmat m: my Int @a; @a.unshift(1); @a[0] = "foo"
17:52 camelia rakudo-moar f97f9a: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str'␤  in block <unit> at /tmp/a8G27eO6Uo:1␤␤»
17:52 telex joined #perl6
17:52 akakcolin joined #perl6
17:53 dalek roast: c2ace96 | lizmat++ | S09-typed-arrays/arrays.t:
17:53 dalek roast: Fudge wonky test that got borked by fixing #125428
17:53 dalek roast: review: https://github.com/perl6/roast/commit/c2ace969b3
17:53 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125428
17:54 dalek rakudo/nom: 02c791e | lizmat++ | docs/ChangeLog:
17:54 dalek rakudo/nom: Mention fixing #125428
17:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02c791e8ad
17:54 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125428
17:55 jnthn hoelzro: I don't see any mention of subprecedence in the code...where'd you find that?
17:56 hoelzro jnthn: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Grammar.nqp#L3496
18:02 jnthn I...have no idea o.O
18:04 larion joined #perl6
18:06 uncleyear joined #perl6
18:14 [Coke] local university just hit a y2k problem. lovely.
18:14 RabidGravy joined #perl6
18:15 rindolf joined #perl6
18:15 rindolf Hi all.
18:19 itz_ there is a leap second soon
18:24 FROGGS joined #perl6
18:24 dha joined #perl6
18:25 uncleyear joined #perl6
18:26 [Coke] rakudo's release process has that covered.
18:31 sergot hi ho \o
18:34 FROGGS o/
18:35 dha So... if I have a suggestion of something that should be added to the Perl 5 to Perl 6 translation guide (assuming it's actually not there and I'm just not seeing it), where would I send such a suggestion?
18:36 lizmat dha o/
18:36 lizmat mentioning it here would be a start
18:36 lizmat then someone should pick it up and add it to the todo for documentation ?
18:37 shmibs joined #perl6
18:37 psch dha: doc.perl6.org has the link to the corresponding github file at the bottom
18:37 psch dha: you could create a PR there
18:37 psch (assuming you're talking about http://doc.perl6.org/language/5to6 as the translation guide)
18:37 FROGGS dha: are you talking about this? https://github.com/perl6/doc/blob/master/lib/Language/5to6.pod
18:37 FROGGS dha: you can pull request changes to that file
18:38 psch o/ FROGGS
18:38 FROGGS hi psch
18:38 dha That link takes me to a page that yells at me POD ERRORS. :-)
18:38 psch github doesn't know POD6
18:39 dha My question is, how does one handle undef values when porting from 5 to 6.  http://doc.perl6.org/language/5to6 only tells me I can no longer undef &foo, nothing about using undef as a value.
18:40 bartolin good evening, #perl6
18:40 lizmat dha: undef has many shapes in Perl 6
18:40 bartolin hoelzro++ # fixing that strange precedence bug
18:40 lizmat usually it is just Any
18:40 lizmat m: my $a; say $a.WHAT
18:40 camelia rakudo-moar 02c791: OUTPUT«(Any)␤»
18:40 dha Ah. See, I would have thought it would be Nil.
18:41 dha At least in some contexts.
18:41 dha like "my (undef, $file, $line) = caller();"
18:41 lizmat Nil is a special value that will revert any container to its original state
18:41 lolisa joined #perl6
18:41 lizmat m: my ($,$a,$b) = 1,2,3); say $a; say $b
18:41 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mMOT5Gzx6x␤Unexpected closing bracket␤at /tmp/mMOT5Gzx6x:1␤------> 3my ($,$a,$b) = 1,2,37⏏5); say $a; say $b␤»
18:42 lizmat m: my ($,$a,$b) = 1,2,3; say $a; say $b
18:42 camelia rakudo-moar 02c791: OUTPUT«2␤3␤»
18:42 lizmat m: my (Nil,$a,$b) = 1,2,3; say $a; say $b
18:42 camelia rakudo-moar 02c791: OUTPUT«Type check failed in assignment to 'anon'; expected 'Any' but got 'Int'␤  in block <unit> at /tmp/eauWVBSElI:1␤␤»
18:42 lizmat specifying an anonymous scalar works best in that case
18:43 lizmat Nil also doesn't disappear in a List
18:43 dha ok. I also see that caller() may not still exist. So on to shaving another yak.
18:43 lizmat m: my @a = (1,2,Nil,4); say @a.perl
18:43 camelia rakudo-moar 02c791: OUTPUT«[1, 2, Any, 4]<>␤»
18:44 smls Util: Isn't "0 ^.. 20" a somewhat strange way to say "1..20" ?
18:44 lizmat m: my $a is default(42) = 666; say $a; $a = Nil; say $a
18:44 camelia rakudo-moar 02c791: OUTPUT«666␤42␤»
18:45 rindolf bartolin: evening.
18:45 rindolf lizmat: hi! Are you in Portland currently?
18:45 lizmat rindolf: yes
18:45 dha Hm, also, what's an "anonymous scalar". And/or where would I find that information?
18:46 itz_ $
18:46 bin_005 joined #perl6
18:46 lizmat m: my $ = 42   # an anonymous scaar
18:46 camelia rakudo-moar 02c791: ( no output )
18:46 lizmat $scalar
18:47 lizmat dha: good question, I hope someone else knows where this is documented
18:47 masak m: my $mark-twain = 42   # a pseudonymous scalar
18:47 camelia rakudo-moar 02c791: ( no output )
18:47 dha masak++
18:47 rindolf lizmat: ah, I see.
18:48 masak m: my $rasputin = 42   # an infamous scalar
18:48 camelia rakudo-moar 02c791: ( no output )
18:48 dha Yeah, I'm now trying to figure out how to replicate the functionality of caller(). I assume it's now some kind of method or set of methods on... something.
18:49 lizmat what do you want to know of the caller ?
18:49 dha Darn good question. Lemme look...
18:50 dha Apaprently the filename and the line. i.e. the second and third items returned by caller (in p5)
18:51 spider-mario joined #perl6
18:51 psch m: sub f { say callframe(1) }; f
18:51 camelia rakudo-moar 02c791: OUTPUT«CallFrame.new(level => 3, annotations => {:file("/tmp/pmJV1KqBWT"), :line("1")}<>, my => EnumMap.new("!UNIT_MARKER" => Mu, "\$!" => Mu, "\$/" => Mu, "\$=finish" => Mu, "\$=pod" => Mu, "\$?PACKAGE" => Mu, "\$_" => Mu, "\&f" => Mu, "::?PACKAGE" => Mu, "\@?IN…»
18:52 psch i *think* that's somewhat the right direction
18:52 psch although i remember callframe being underimplemented
18:52 psch i'm not sure if that's still true
18:52 dha Granted, what I'm working on may be better done in an entirely different way in p6, but I'm going bit by bit here...
18:52 SHODAN joined #perl6
18:53 lizmat callframe(1)<annotations><file>  seem to be a good candidate
18:53 dha Ah... And this is documented... where? :-)
18:54 lizmat actually:
18:54 Util smls: Deliberate, to point up that the code as posted creates an array that, taken in its entirety, is off-by-one.
18:54 Util I ran out of time before either A) writing text to that effect, or B) changing the code to remove the need for text.
18:54 psch S06:The_callframe_and_caller_functions
18:54 synbot6 Link: http://design.perl6.org/S06.html#The_callframe_and_caller_functions
18:54 Util Good eye!
18:54 psch that's design, not docs though
18:54 psch so might have spots that aren't working as designed yet
18:54 Util (re: http://rosettacode.org/wiki/Sequence_of_primorial_primes#Perl_6 )
18:54 uncleyear joined #perl6
18:54 lizmat callframe(1).annotations<file>    # no {} access to callframe
18:54 TEttinger joined #perl6
18:55 psch lizmat: oh, did i confuse the levels? i.e. callframe(1) is the current one?
18:55 lizmat no, callframe(1) is ok
18:55 lizmat m: my ($file,$line) = callframe(1).annotations<file line>;
18:55 camelia rakudo-moar 02c791: ( no output )
18:55 lizmat dha: ^^^
18:56 dha yeah, that looks right.
18:56 lizmat wrt to documentation, this is a work in progress, so atm please check here so we can now what needs to be documented sooner rather than later  :-)
18:56 lizmat *know
18:57 smls Util: Also, is there a benefit to defining @primorials using the sequence operator like that, as opposed to   @primorials := [\*] 1, @primes
18:57 smls In both cases, it will keep around the whole list reified portion in memory right?
18:57 dha yep. I think there's a lot more that needs to be done documentation-wise, at least for the purposes of people trying to move from 5 to 6 - particularly trying to port things from 5 to 6.
18:58 dha And, for what it's worth, I don't see where docs for callframe are at all.
18:59 TEttinger p6: say "Hello, ${<friends romans countrymen countryfolk perlers camelia>.roll}"
18:59 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Non-variable $ must be backslashed␤at /tmp/tmpfile:1␤------> 3say "Hello, 7⏏5${<friends romans countrymen countryfolk␤    expecting any of:␤        argument list␤        double quotes…»
18:59 lizmat actually, it appears that callframe(1).file and callframe(1).line also work
18:59 run4flat joined #perl6
18:59 TEttinger fancy
19:00 lizmat m: say "Hello, {<friends romans countrymen countryfolk perlers camelia>.roll}"  # no need for $
19:00 camelia rakudo-moar 02c791: OUTPUT«Hello, camelia␤»
19:00 lizmat m: say "Hello, {<friends romans countrymen countryfolk perlers camelia>.roll}"  # no need for $
19:00 camelia rakudo-moar 02c791: OUTPUT«Hello, friends␤»
19:01 literal W/ 4
19:01 lizmat sightseeing&
19:02 Util smls: I wrote that sequence when writing for Primorial_numbers (which you beat me to; Congrats!).
19:02 Util I had written `sub primorial(Int $n) { [*] @primes[^$n] }`, and was trying for better performance in the 100_000 range.
19:02 Util I got so focused, that I completely forgot about [\*]. Thanks!
19:02 TEttinger nice, thanks lizmat
19:03 smls Util: I had to abandone the "@primorials as a lazy list" approach for the Primorial_numbers task, because that exhausted my RAM very quickly :P
19:05 TEttinger I'm juuuust starting out with Perl, though not with programming. a quick first question, the $/ argument that methods get, is it analogous to a self or this parameter? can it be elided in a method parameter list if the body doesn't use it?
19:05 TEttinger does it need to be called $/ ?
19:06 moritz TEttinger: not every method gets a $/ parameter
19:06 moritz TEttinger: action methods (that the grammar engine calls for you) get a Match object as parameter, and it's custom to call that $/; but you can call it anyway you want
19:06 moritz TEttinger: and all methods have a 'self' implicilty
19:06 TEttinger ah ok
19:09 jnthn The thing you get if you call it $/ is that you can access positional captures with $0, $1, ... and named ones with $<foo>
19:09 jnthn Which in action methods is exceptionally convenient.
19:09 * FROGGS is happy that porting the run()/shell() changes is making progress
19:10 FROGGS *to jvm
19:10 Util smls: The [\*] change eeds to be `1, [\*]`, which triggers a GLR bug.
19:10 Util s/eeds/needs/
19:10 smls why?
19:10 bartolin FROGGS++
19:10 ugexe froggs++ indeed
19:10 FROGGS :o)
19:10 smls [\*] 1, @primes  should do the same
19:10 dha I don't suppose there's a way to get the file and line from callframe in one call, is there?
19:11 smls or   flat 1, [\*] @primes   as TimToady explained earlier today
19:12 psch dha: lizmat wrote that above, callframe(1).annotations<file line> gives you a file and line in two elements
19:12 Util m: constant @primes = grep *.is-prime, 2..*; constant @primorials = 1,[\*] @primes; say @primorials.elems;
19:12 camelia rakudo-moar 02c791: OUTPUT«2␤»
19:12 psch dha: callframe(1).annotations is a hash, and multi-element lookup inside postfix:«< >» doesn't call the function again
19:12 smls m: constant @primes = grep *.is-prime, 2..*; constant @primorials = flat 1, [\*] @primes; say @primorials[^10];
19:12 camelia rakudo-moar 02c791: OUTPUT«1 2 6 30 210 2310 30030 510510 9699690 223092870␤»
19:12 Util smls: That is the GLR bug.  As for re-writing as [\*] 1, @primes, ... DOH!
19:12 dha Ah. Ok. I think I parsed that wrong.
19:12 psch or Attribute rather, instead of function
19:13 muraiki I'm passing a variable gotten by a slurpy parameter into Proc::Async.new but the new proc object ends up with the whole slurpy param inside of its path, instead of putting the first element of the slurpy param in the path and the rest in args. I suppose I'm passing the slurpy param wrong somehow
19:14 masak DrForr: if QAST works for you already, then go ahead with QAST. if you have any notions of how Qtrees might help you better, I'll be all ears :)
19:15 dha And, just to make sure I'm not getting this all wrong, to imitate @_ in p6, I'd do something like 'sub foo ( *@args ) {" and then use @args as I would have @_ in p5?
19:15 muraiki p6: sub foo(*@cmd) { say Proc::Async.new(@cmd).perl; }; foo(<ls -al>);
19:15 camelia rakudo-moar 02c791: OUTPUT«Proc::Async is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:1␤  in method new at src/RESTRICTED.setting:32␤  in sub foo at /tmp/tmpfile:1␤  in block <unit> at /tmp/tmpfile:1␤␤»
19:15 masak JimmyZ: I know on a general level what Qtrees are, yes. I'm not just waving hands at this point. I've seen them work. but Perl 6 does not yet have a Qtree implementation -- not even a prototype one.
19:15 psch dha: you can get @_ as in perl5 if you use it in the body
19:15 muraiki doh, I can't demonstrate it via the p6 command, but that code snippet illustrates the problem
19:15 psch m: sub f { [+] @_ }; say f 1..5
19:15 camelia rakudo-moar 02c791: OUTPUT«15␤»
19:16 psch dha: note though that you can't declare a different signature
19:16 uncleyear joined #perl6
19:16 dha So, I can use @_ in a function as I used to as long as the function has no signature?
19:17 TEttinger is @_ the list of all parameters, and [+] a sum sub?
19:17 psch TEttinger: [+] is the reduction operator on infix:<+>
19:18 TEttinger m: [*] [2 3 4]
19:18 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ovND39K5S6␤Two terms in a row␤at /tmp/ovND39K5S6:1␤------> 3[*] [27⏏5 3 4]␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier␤    …»
19:18 psch dha: yes, using @_ in the body supplies *@_ automagically as signature
19:18 TEttinger m: [*] [2 3 4] ;
19:18 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7k8wJQfRR4␤Two terms in a row␤at /tmp/7k8wJQfRR4:1␤------> 3[*] [27⏏5 3 4] ;␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modifier␤  …»
19:18 dha Ah. Good to konw.
19:18 TEttinger I'm guessing I need a sigil in there
19:18 psch TEttinger: no, commas :)
19:18 TEttinger ah
19:19 TEttinger m: [*] [2, 3, 4] ;
19:19 camelia rakudo-moar 02c791: ( no output )
19:19 TEttinger m: say [*] [2, 3, 4] ;
19:19 camelia rakudo-moar 02c791: OUTPUT«3␤»
19:19 TEttinger that's odd
19:19 psch nah, [2, 3, 4] in numeric context is number of elements
19:19 psch and you're multiplying that
19:19 TEttinger oh ok
19:19 dha And, would "shift;" shift off the first item in @_ as it used to, or do I need to do "@_.shift;"?
19:19 psch (2, 3, 4) is the list of 2, 3 and 4
19:19 TEttinger how do I reduce * over a list of 2, 3, 4 ?
19:20 TEttinger ok
19:20 TEttinger m: say [*] (2, 3, 4) ;
19:20 camelia rakudo-moar 02c791: OUTPUT«24␤»
19:20 TEttinger woo!
19:20 psch m: sub f { .shift.say }; f ^3
19:20 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/y2NOR_nXrw␤Calling f(Mu) will never work with declared signature ()␤at /tmp/y2NOR_nXrw:1␤------> 3sub f { .shift.say }; 7⏏5f ^3␤»
19:20 TEttinger little victories
19:20 psch dha: you need to use @_ to get the signature
19:21 psch dha: &shift itself doesn't auto-assume $_ or @_
19:21 psch dha: .shift assumes $_, but not @_ iirc
19:21 FROGGS correct
19:21 FROGGS the rules are simpler now
19:21 dha ok, so @_.shift it is. :-)
19:21 kaare_ joined #perl6
19:22 jnthn There's almost certainly a better way
19:22 jnthn m: sub foo { say $^first; say @_; }; foo 1, 2, 3
19:22 camelia rakudo-moar 02c791: OUTPUT«1␤2 3␤»
19:23 FROGGS m: sub foo { say $^flubber; say $^blubber; }; foo 1, 2, 3
19:23 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3cXMyD1tIJ␤Calling foo(Int, Int, Int) will never work with declared signature (Any $blubber, Any $flubber)␤at /tmp/3cXMyD1tIJ:1␤------> 3 foo { say $^flubber; say $^blubber; }; 7⏏5foo 1, 2, 3␤»
19:23 FROGGS ahh, yeah
19:23 FROGGS but there you can see how the autogenerated signature looks
19:24 TEttinger wow, camelia is a fancy bot
19:24 run4flat Hello everyone, I'm a PDL user. I would like to start putting Perl6's multidimensional numeric array support through some paces.
19:25 run4flat Are there any tests out there for PDL-like functions and/or signatures?
19:25 run4flat i.e. http://design.perl6.org/S09.html#PDL_signatures
19:25 run4flat or is there any roadmap for writing such tests?
19:28 dha ok, so in p5 caller in scalar context returns the caller's package name. Is that stuffed into callframe somewhere?
19:29 run4flat I see this one tests native ints: https://github.com/perl6/roast/blob/master/S09-typed-arrays/native-int.t
19:30 vendethiel- run4flat: not sure PDL is totally implemented yet :)
19:30 PerlJam run4flat: if you're looking for PDL-like performance, you'll be disappointed. :)
19:30 run4flat PerlJam, I knew that
19:30 run4flat :-)
19:30 run4flat vendethiel, I also knew that
19:31 run4flat I don't know if I can help with implementation, but I can probably write some tests, at least
19:31 run4flat I figured that might help things along
19:32 PerlJam run4flat: I'm also a PDL user, but I've never thought much about PDL tests.  Maybe there are some tests that could be "ported" to Perl 6?
19:32 PerlJam run4flat: (and yes, tests would be awesome)
19:34 uncleyear joined #perl6
19:36 dha So, for instance, if I wanted to turn this bit of p5 code into p6, how would I do that? "my ( $pack, $filename, $line ) = caller;"
19:37 dha or "$package = caller;"
19:37 FROGGS run4flat: jnthn probably knows best about PDL releated items and their place on the roadmap... so maybe he can suggest what tests would be needed in what order...
19:37 dha I see how to get the filename and line out of callframe, but I'm unsure about the package name.
19:38 FROGGS m: sub foo { say caller }; foo()
19:38 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/n3A3EvNSrL␤Undeclared routine:␤    caller used at line 1␤␤»
19:38 FROGGS m: sub foo { say callframe }; foo()
19:38 camelia rakudo-moar 02c791: OUTPUT«CallFrame.new(level => 2, annotations => {:file("/tmp/yrXSUWWv3e"), :line("1")}<>, my => EnumMap.new("\$!" => Mu, "\$*DISPATCHER" => Mu, "\$/" => Mu, "\$_" => Mu, "\&?ROUTINE" => Mu, :RETURN(Mu)))␤»
19:38 run4flat FROGGS: thanks
19:38 run4flat PerlJam, I thought I'd seen you around, but I couldn't recall where
19:40 dha So, yeah, is what's in "my" the package? Or, I suppose, class? class is pretty much the equivalent of package in p6, right?
19:41 jnthn Multi-dim packed arrays are nearing the top of my todo list. :)
19:41 run4flat jnthn, which mailing list should I join to keep abreast of such work?
19:41 skids dha: classes are a subclass of packages :-)
19:42 dha You're just trying to confuse me now. :-)
19:42 smls_ joined #perl6
19:43 dha Oh. Looking ahead, I see this is just going to cause me pain.
19:43 dha (in case anyone's wondering, I thought it might be a good p6 learning project to port Test::Simple. HAHAHA)
19:43 jnthn run4flat: I write regular progress reports on my blog, and I guess there's an RSS feed for that...
19:44 jnthn run4flat: Perl 6 development is not very centered around mailing lists.
19:44 maettu joined #perl6
19:44 skids dha: That's a bit meta of a thing to choose to port as a learning excercise :-)
19:45 dha Meta? "crazy" I could understand, but "meta"? :-)
19:45 jnthn run4flat: https://6guts.wordpress.com/ is the blog url, anyways
19:45 skids m: sub foo { ::CALLER<&callframe>().say }; sub bar {foo()}; bar() # ?
19:45 camelia rakudo-moar 02c791: OUTPUT«Cannot find method 'Any'␤  in sub foo at /tmp/YXGc5UE6Yf:1␤  in sub bar at /tmp/YXGc5UE6Yf:1␤  in block <unit> at /tmp/YXGc5UE6Yf:1␤␤»
19:46 skids Eh, I guess that would just do it in the current scope even if it worked.
19:47 dha Maybe I should just find a simpler module to port.
19:47 PerlJam dha: good plan :)
19:47 dha Test::Simple sounded... simple. And if it didn't require porting Test::More & co. it might have been...
19:48 dha PerlJam - Now I just have to think of one.
19:48 skids https://github.com/perl6/perl6-most-wanted/blob/master/most-wanted/modules.md
19:49 skids That page might need an update though.
19:49 PerlJam skids: and I think very few of those qualify as "simple"
19:50 hoelzro is it a fair metric that NativeCall-related bugs (like some of the segfaults that some people have been able to produce) should not fall under the "review RT tickets before release" umbrella?
19:50 firefish5000 joined #perl6
19:51 dha Yeah, right off the bat, I see that Text::CSV and CSV::Parser seem to already have been done.
19:51 skids Term::Progressbar?
19:52 * skids wonders what makes Geo::Ellipsoid important
19:53 uncleyear joined #perl6
19:53 PerlJam skids: I think it's the big, wet rock we live on.  ;)
19:55 skids :) I meant what use case makes it a "most wanted" module.
19:56 amurf joined #perl6
19:57 ugexe tony-o did a progressbar in perl6. dont think he made it a module though
19:57 dha Any point to porting Carp? Or does p6 already do stuff that makes that redundant?
19:57 dalek roast: c9c2900 | usev6++ | S03-operators/assign.t:
19:57 dalek roast: Extend tests for RT #80614 nd RT #125407
19:57 dalek roast: review: https://github.com/perl6/roast/commit/c9c2900d78
19:57 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=80614
19:59 ugexe perl6 has exception handling
19:59 dha Ok, then.
19:59 dha Maybe I should just go through all the commands in perl5 and document how to do what they used to do in p6.
20:00 ugexe someone still needs to get the flappy bird clone together for hackernews
20:00 skids Do we have a multi-os terminal askpass yet?
20:00 skids ISTR someone playing with the Win side of that.
20:00 PerlJam dha: TAP::Parser might be a good one to port.
20:01 dha Thanks, I'll take a look.
20:01 uncleyear joined #perl6
20:01 dha And then probably just give the hell up and shoot myself.
20:01 nys joined #perl6
20:01 hoelzro PerlJam, dha: I believe leont started a TAP::Parser
20:01 tony-o who is looking for progressbar?
20:02 ugexe its on the most wanted module list. i dont think anyone was looking for it
20:02 skids We were just browsing the "most wanted" list and finding most stuff there to be started or implemented.
20:02 hoelzro DrForr++ # really good LTA error message RT tickets
20:02 dha TAP::Harness seems to be done, but not TAP::Parser.
20:03 ugexe just depends. maybe not in name, but in spirit https://github.com/tony-o/perl6-green
20:04 ugexe dont let prior existence stop you though
20:04 dwarring joined #perl6
20:04 tony-o mine doesn't do the same crap Prove does, it handles testing in more of a mocha approach instead of parsing $*OUT
20:05 oetiker joined #perl6
20:06 hoelzro I've always liked the simplicity and flexibility of TAP
20:07 dha I may be getting to the point where I don't like anything anymore. But I'm having one of those weeks.
20:08 tony-o hoelzro: i like it too but with async stuff, printing out to a terminal and trying to parse that can cause some issues
20:08 PerlJam Was someone working on a module starter?
20:08 hoelzro hmm, good point
20:08 ugexe there is a Module::Minter or something
20:09 PerlJam ah, yes, that's what I was thinking of
20:09 tony-o i think perl6-green might actually be okay for some initial testing
20:12 hoelzro I would really like a Test::Tester (which I started as Test::Meta)
20:12 hoelzro I just get distracted by fixing bugs or adding NYI things rather than working on modules =)
20:12 [ptc] hoelzro++   # Cannot invoke null object bug fix
20:12 yoleaux 16 Jun 2015 17:16Z <japhb> [ptc]: Your calculation for the implementation which takes a $tol parameter (the second one) will always fail if $expected == 0 and $tol < 1, because then $abs-diff == $abs-max == $got and $rel-diff == 1.
20:12 yoleaux 16 Jun 2015 17:19Z <japhb> [ptc]: The implementation which takes a :$rel_tol and :$abs_tol (the third one) allows *either* tolerance to succeed, and there doesn't seem to be a way to require both; that may or may not matter.  Also, using Numeric for the tolerances leaves me wondering about the exact behavior if the tolerances are Complex instead of Real.
20:12 yoleaux 16 Jun 2015 22:39Z <nebuchadnezzar> [ptc]: Ok, now I figure out you are Paul Cochrane, I revert your patch on Configure.pl since it's forbidden to modify upstream directly and you arleady provided a patch for this
20:13 skids Maybe something Data::Printer-like (colorized better-than-"say" dumping too crazy for the core) would be a good starter project.
20:13 PerlJam skids: oh, that would be nice
20:14 tony-o skids: ++
20:16 hoelzro Data::Printer++
20:17 zacts hello #perl6
20:17 skids o/
20:17 tony-o something like a colorized Data::Dumper ?
20:17 zacts I have a question...
20:17 zacts so can rakudo compile perl6 into binaries?
20:17 zacts such that
20:17 [Sno] joined #perl6
20:17 zacts one doesn't need rakudo or a perl6 interpreter to run the binaries?
20:17 [ptc] .tell nebuchadnezzar do you mean to modify upstream sources in the `upstream` branch, or do you mean the upstream sources in the `master` branch?
20:17 yoleaux [ptc]: I'll pass your message to nebuchadnezzar.
20:18 zacts (the use case for this would be to distribute perl6 apps to people who don't have the skills on how to install perl6)
20:18 zacts (say, like I wrote a vi-clone in perl6, and wanted to be able to package it for users)
20:18 zacts s/vi-clone/insert whatever app you want here/
20:18 hoelzro zacts: I think a lot of people here want that, but no one's stepped up and made it yet
20:18 skids zacts: I think psch(?) is working on self-contained jars for the JRE backend.
20:19 [ptc] .tell nebuchadnezzar I believe the terminology and branch names might be confusing me slightly...
20:19 yoleaux [ptc]: I'll pass your message to nebuchadnezzar.
20:19 zacts ok
20:19 zacts cool
20:19 zacts so it is a potentail, just not there yet?
20:19 zacts I mean is it a _planned_ feature?
20:19 ugexe perl6 is not even there yet :)
20:19 zacts or just something that would be cool to have?
20:20 zacts ugexe: well yeah
20:20 ugexe it was one of the (canceled) projects for the GSoC i believe
20:20 zacts oh
20:20 zacts ok, well bbl
20:24 run4flat jnthn: so if I wrote a bunch of tests for S09's PDLish features... should I just do that in a github fork of roast and submit a pull request?
20:25 jnthn run4flat: Tests for the multi-dimensional array stuff are welcome, though on my recent read through S09 I know some of the things in there will have to change.
20:25 jnthn (Because we worked out various other details of Perl 6, and now they're a bit out of line with it)
20:26 jnthn It's probably "mostly right" though
20:26 dalek roast: 25d7195 | usev6++ | S (3 files):
20:26 dalek roast: Remove duplicate tests for RT #119061
20:26 dalek roast: review: https://github.com/perl6/roast/commit/25d7195819
20:26 dalek roast: e9694a7 | usev6++ | S09-typed-arrays/arrays.t:
20:26 dalek roast: Add test for RT #125428
20:26 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=119061
20:26 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125428
20:26 dalek roast: review: https://github.com/perl6/roast/commit/e9694a7ef8
20:27 run4flat jnthn, sounds good, thanks
20:27 run4flat left #perl6
20:30 uncleyear joined #perl6
20:31 [Coke] I think giving us a target to shoot at (tests) is a good first pass. Just be prepared that jnthn will come back and say "oh, this has to change because <implementation>"
20:31 [Coke] (for PDLish stuff)
20:31 muraiki can somebody help me with this code? I'm trying to create an object of one of two different classes that each take the same constructor arguments: https://gist.github.com/muraiki/0669a14564d22cf8766d
20:32 PerlJam muraiki: |%args
20:33 muraiki PerlJam: Thanks! what is that called?
20:33 skids a capture flattener.
20:33 muraiki thank you
20:33 tony-o m: sub a (:$b, :$c) { "$b $c".say; }; %c = (b=>5, c=>6); a(|%c);
20:33 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/921793hSkn␤Variable '%c' is not declared␤at /tmp/921793hSkn:1␤------> 3sub a (:$b, :$c) { "$b $c".say; }; 7⏏5%c = (b=>5, c=>6); a(|%c);␤»
20:34 tony-o m: sub a (:$b, :$c) { "$b $c".say; }; my %c = (b=>5, c=>6); a(|%c);
20:34 camelia rakudo-moar 02c791: OUTPUT«5 6␤»
20:34 colomon joined #perl6
20:37 garu_ skids PerlJam tony-o hoelzro: I'd be totally up for porting Data::Printer to perl6 if it's something people would benefit from :)
20:38 hoelzro garu_: I think it goes without saying that people would use it!
20:39 TEttinger is there any standard lib or 3rd party lib support for common functional programming subs? stuff like map (aka foldl), reduce, filter
20:39 skids garu_: I think everyone here dumps lots of complicated data structures -- AST trees for example.
20:39 colomon TEttinger: most of that stuff is in Perl6’s core.
20:40 moritz TEttinger: filter, reduce, map are in core
20:40 TEttinger good good
20:40 PerlJam garu_: make it so  :)
20:40 moritz filter is spelled "grep" though
20:40 * colomon wrote this today: my $filtered = $json.grep({ $_<name> ∈ $projects });
20:43 [ptc] colomon++
20:43 TEttinger ok, I see reduce at http://doc.perl6.org/routine/reduce   -- is there any way to get the intermediate results of reduce, and not just the last element? this is called scan in haskell, reductions in clojure
20:43 moritz we have that as a meta operator
20:43 skids That's triangle.
20:43 TEttinger sweet.
20:43 moritz m: .say for [\+] 1..10
20:43 camelia rakudo-moar 02c791: OUTPUT«1␤3␤6␤10␤15␤21␤28␤36␤45␤55␤»
20:43 colomon TEttinger: there’s definitely a way to do it, because we have a meta-op for that.  I forget if/what the function/method version is
20:44 PerlJam TEttinger: go on ... ask for something else  ;)
20:47 TEttinger a common thing in clojure is "mapcat", which typically is called with a function that returns a sequence, calls that function on each element in a sequence as per map, but then concatenates the results (not flattening, only one level of nesting is eliminated)
20:48 bin_005_w joined #perl6
20:48 TEttinger it's useful when you have a function that produces a sequence but you don't want to use it as a sequence, you really want the values it produces
20:48 * colomon doesn’t think the intermediate results (“triangle” in p6 talk) version of reduce is there for method/sub reduce.  Fells like an oversight.
20:49 hoelzro I think map just does that
20:49 hoelzro m: say for (^5).map: { $_, $_ * 2 }
20:49 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zQTCtvSB5Y␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/zQTCtvSB5Y:1␤------> 3say7⏏5 for (^5).map: { $_, $_ * 2 }␤»
20:49 hoelzro m: .say for (^5).map: { $_, $_ * 2 }
20:49 camelia rakudo-moar 02c791: OUTPUT«0 0␤1 2␤2 4␤3 6␤4 8␤»
20:49 hoelzro hmm, nevermind.
20:50 TEttinger it's easy enough to replicate by mapping and then concatenating the results
20:50 hoelzro m: .say for (^5).flatmap: { $_, $_ * 2 }
20:50 camelia rakudo-moar 02c791: OUTPUT«0 0␤1 2␤2 4␤3 6␤4 8␤»
20:50 TEttinger looks pretty similar
20:50 colomon m: say [~] (^5).map: { $_, $_ * 2 }
20:50 camelia rakudo-moar 02c791: OUTPUT«0012243648␤»
20:50 hoelzro yeah...
20:51 TEttinger is [~] a meta operator?
20:51 colomon It’s reduce on string concat
20:51 colomon so yes
20:51 moritz [] is the meta part
20:51 moritz and ~ is what it acts on
20:51 TEttinger ah, I meant sequence concat
20:52 colomon turning the results into a sequence?
20:52 TEttinger well it was one
20:52 PerlJam https://clojuredocs.org/clojure.core/mapcat
20:52 uncleyear joined #perl6
20:52 colomon isn’t that what map does by default?
20:52 hoelzro colomon: I think the GLR is changing that
20:52 moritz m: say (flat map { $_, $_ * 2 }, ^ 5).perl
20:52 camelia rakudo-moar 02c791: OUTPUT«(0, 0, 1, 2, 2, 4, 3, 6, 4, 8)␤»
20:52 hoelzro ah, moritz++
20:52 vendethiel- mapcat is .map + .flat one level
20:52 TEttinger it returned <<0 0␤1 2␤2 4␤3 6␤4 8>>, and moritz got it on the money
20:53 vendethiel- moritz: mapcat flattens one level only IIRC
20:53 moritz m: say (map { $_, $_ * 2 }, ^ 5).perl
20:53 camelia rakudo-moar 02c791: OUTPUT«((0, 0), (1, 2), (2, 4), (3, 6), (4, 8))␤»
20:53 TEttinger yes
20:53 moritz vendethiel-: I don't think flat flattens recursively, does it?
20:53 colomon moritz: pretty sure it’s not supposed to
20:53 skids m: say (flat (^5).map: { $_, [ $_ * 2, 0 ] }).perl
20:53 camelia rakudo-moar 02c791: OUTPUT«(0, [0, 0], 1, [2, 0], 2, [4, 0], 3, [6, 0], 4, [8, 0])␤»
20:53 masak we have insufficient terminology for the constituent parts of metaops. how about this: `[~]` is the metaop. `[ ]` is the upper op. `~` is the lower op.
20:53 vendethiel- skids: that's itemized, though :) . but yes
20:53 masak can anyone find a better metaphor than upper/lower?
20:53 masak maybe host/guest?
20:54 PerlJam masak: for some reason that makes me think of unicode combining characters.
20:54 moritz masak: meta and metee ops :-)
20:54 masak we can't go with outer/inner, because some ops like `Z~` don't really do the surrounding thing.
20:54 TEttinger m: say (map { { $_, $_ * 2 }, { $_ * 5 } }, ^ 5).perl
20:54 camelia rakudo-moar 02c791: OUTPUT«((-> ($_? is parcel) { #`(Block|39914512) ... }, -> ($_? is parcel) { #`(Block|39914576) ... }), (-> ($_? is parcel) { #`(Block|39914640) ... }, -> ($_? is parcel) { #`(Block|39914704) ... }), (-> ($_? is parcel) { #`(Block|39914768) ... }, -> ($_? is parc…»
20:54 TEttinger oh what
20:54 masak moritz: no, meta should go for the whole thing.
20:54 masak both upper and lower.
20:55 masak that's how we use the term in practice.
20:55 skids metador and metarand
20:55 masak :D
20:55 TEttinger I'd go by the order they appear in
20:55 moritz composer, composed and compound :-)
20:55 TEttinger primary/secondary
20:55 * masak .oO( Metatlas Shrugged )
20:56 masak moritz: I could live with meta, composer and composee
20:56 masak for `[~]`, `[ ]` and `~`
20:56 moritz or we could call it "victim" instead of "composee"
20:56 dolmen joined #perl6
20:57 * moritz isn't up for serious naming discussions tonight
20:57 masak or, if you don't require one-word terms: "composing op" and "composed op".
20:57 TEttinger meta for the whole, catalyst, base?
20:57 masak with "composer" and "composee" being the slightly lighter/more slangy denominations.
20:57 PerlJam masak: and what would you call the combinatoric ones?   SRZ~  (or whatever)
20:57 sjn opcomposition # one word
20:57 masak PerlJam: that's just applying the metaop thing recursively.
20:57 moritz TEttinger: in chemistry, catalysts never change reaction behavior, just reactioni speed
20:58 TEttinger biology maybe?
20:58 * skids actualy spent a half hour last month trying to figure out multiplier : multiplicand :: ?? : ?? for composition and came up empty.
20:58 masak PerlJam: so on one level `S` is the composer and `RZ~` is the composee, but on another it's `R` and `Z~`, or `Z` and `~`
20:59 jnthn Hm, curious, I've not tended to think about "meta-op" as being the whole thing, but rather the parameterizable thing.
20:59 jnthn "the reduce meta-op", "the zip meta-op", etc.
20:59 skids (The mathemeticians have let us down.)
20:59 colomon skids: sorry
21:00 TEttinger hm, it isn't the best analogy, but a virus takes an existing cell's functionality and alters it to work on the virus' terms
21:00 TEttinger so biologists may have better terms
21:01 TEttinger naming a language feature "virus" is the worst idea I've had all month though
21:01 skids "meta-op-op?" :-)
21:04 masak jnthn: well, ok. it's a little bit of both.
21:04 TEttinger task and title?
21:05 masak jnthn: when someone sees `[+]` and asks what it is, we immediately go "oh, that's a metaop".
21:05 TEttinger a task is what you do, a title, like "sir" or "war criminal" in real life, affects what you affect with that task
21:05 masak anyway. I'm not insisting that we arrive on a terminology. I was mostly curious if one could be extracted cheaply.
21:05 masak 'night, #perl6
21:06 hoelzro night masak
21:06 psch colomon: triangle reduce works with [\[&sub]] for binary subs, not sure about methods though
21:06 TEttinger nn
21:06 psch m: sub add-plus-two { $^x + $^y + 2 }; say [\[&add-plus-two]] ^5 # if i'm not misunderstanding
21:06 camelia rakudo-moar 02c791: OUTPUT«0 3 7 12 18␤»
21:06 colomon psch: true
21:07 colomon but by that logic, why do we have a reduce method?  ;)
21:07 TEttinger psch, looks like exactly what I was after
21:07 TEttinger colomon, it's a surprisingly good question
21:07 psch colomon: there's TimToady..? :P
21:07 TEttinger normally you think of reduce as being more useful...
21:08 psch ...actually "there's mToady", i suppose :)
21:08 TEttinger but it's really just getting part of the sequence of reductions
21:08 smls_ colomon: I think the reduce method is mostly used with anonymous blocks
21:08 smls_ like map and grep
21:08 jnthn masak: You're right, which means I'm punning the meaning. Typical :)
21:08 PerlJam Do we yet have a way to export multiple subs to a give tag without repeating "is export(:tag)" over and over again on each sub?
21:08 * jnthn figures he'll also get some rest :)
21:08 jnthn o/
21:09 colomon smls_: and there’s no way as far as I know to use [&sub] on an anonymous sub
21:10 psch ISTR seeing it, tbh
21:10 psch somewhat like [&{$^a + $^b}] or similar...
21:10 psch although that exactly doesn't work
21:10 TEttinger yeah, I'd be surprised if perl6 lacked a feature at this point :)
21:11 smls_ colomon: I don't think there should be
21:11 TEttinger or a way of naming an anonymous sub temporarily?
21:11 colomon smls_: then we need a triangle version of the reduce method/sub
21:11 smls_ maybe
21:11 TEttinger what does [&sub] do?
21:12 colomon TEttinger: sub temporarily into an infix operator
21:12 colomon *makes sub
21:12 smls_ but the  [ ]  meta-op is coming already pushing the line of parsing ambiguity vs infix:<[ ]> (array constructor) as it is
21:12 colomon smls_: I don’t see what that has to do with anything?
21:13 TEttinger can you define an infix anonymous sub?
21:13 smls_ well, adding a form like [{ ... }] or [&{ ... }] would make it even more consusing how to separate between the two meanings of "[..." in term position, for both compiler and human readers
21:13 tony-o m: class A { method b { $^x + $^y + 2; }; }; my A $a .=new; say [\[$a.b]] ^5;
21:13 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jXaax1hNkV␤Placeholder variables cannot be used in a method␤at /tmp/jXaax1hNkV:1␤------> 3class A { method7⏏5 b { $^x + $^y + 2; }; }; my A $a .=new;␤»
21:15 smls_ maybe 'reduce' just needs an :all flag
21:18 japhb_ TEttinger: Yes, you can give anonymous subs names in two different senses: By binding the sub to a name, so that the sub does *not* know it's own name via introspection, but code in the scope of the bound name *does*.
21:19 japhb_ TEttinger: And also by saying 'anon sub foo', which says that the sub knows its own name via introspection, but the scope around it does *not*.
21:20 japhb_ It just falls out of the fact that introspection and naming are decomposed, but most users don't need to know that, because the default behaviors DWYM.
21:26 psch m: say 2 [&(sub { $^a + 2 * $^b })] 2 # anon infix
21:26 camelia rakudo-moar 02c791: OUTPUT«6␤»
21:26 psch i do remember that you could stuff that into a reduce somehow, but can't find how right now
21:26 dalek roast: 841ebd8 | usev6++ | S05-interpolation/regex-in-variable.t:
21:26 dalek roast: Change two skipped tests to todo
21:26 dalek roast: review: https://github.com/perl6/roast/commit/841ebd8be2
21:26 psch i.e. into the reduce operator
21:27 psch TimToady++ did show that a few months back... :s
21:28 psch hm, maybe calling that an "infix anon" is more apt :)
21:28 AlexDaniel m: say 'test' ~~ / te ^ st /;
21:28 camelia rakudo-moar 02c791: OUTPUT«Nil␤»
21:28 AlexDaniel what string would match 'te^st' regex?
21:29 psch m: say 'te^st' ~~ / te \^ st/
21:29 camelia rakudo-moar 02c791: OUTPUT«「te^st」␤»
21:29 psch oh
21:29 psch the other way around
21:29 AlexDaniel psch: yup
21:30 b2gills m: say 5 [&({ $^a + $^b })] 6
21:30 camelia rakudo-moar 02c791: OUTPUT«11␤»
21:30 psch AlexDaniel: none, i think. ^ is "beginning of string", not "beginning of line"
21:30 AlexDaniel if none, then where is the warning? :)
21:30 TEttinger m: .say [\[&(sub { $^a + 2 * $^b })]] ^5;
21:30 camelia rakudo-moar 02c791: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fFTuG285_O␤Missing infix inside []␤at /tmp/fFTuG285_O:1␤------> 3.say [7⏏5\[&(sub { $^a + 2 * $^b })]] ^5;␤    expecting any of:␤        bracketed infix␤        infix␤        infix stopper␤»
21:31 AlexDaniel psch: well, if that regex does not make any sense then it should produce a warning
21:31 AlexDaniel psch: I'll submit it then
21:31 psch AlexDaniel: i don't neccessarily agree, but i don't have the capacity to argue that at the moment
21:31 TEttinger so... what did I do wrong with that triangle infix sub thing?
21:31 AlexDaniel psch: well, you are always free to leave a comment :)
21:31 psch TEttinger: something about how to put the infix anon into reduce, mostly
21:31 TEttinger m: say [\[&(sub { $^a + 2 * $^b })]] ^5 # did the opening . change it?
21:31 camelia rakudo-moar 02c791: OUTPUT«one(\([sub (Any $a, Any $b) { #`(Sub|65758848) ... }]), 5)␤»
21:32 psch TEttinger: i'm not sure if TimToady++
21:32 psch 's example from whenever still works
21:32 psch because i can't find it :)
21:33 dolmen joined #perl6
21:33 psch the second one parses weirdly, in my understanding.  it puts the sub as the only element of an array and junctions that with the 5
21:33 * TEttinger runs screaming
21:33 psch instead of taking the [] as reduce and the ^ as sequence operator
21:34 psch i'd bug the aforementioned TimToady if i were you.  i need to get some rest o/
21:34 b2gills m: .say for [\[&({$^a+2*$^b})]] ^5;
21:34 camelia rakudo-moar 02c791: OUTPUT«0␤2␤6␤12␤20␤»
21:34 b2gills m: .say for [\[&( {$^a+2*$^b} )]] ^5;
21:34 camelia rakudo-moar 02c791: OUTPUT«\([-> ($a, $b) { #`(Block|51178768) ... }])␤5␤»
21:35 TEttinger oh damn
21:35 psch ..yup, parsing weirds :)
21:35 * psch actually leaves now to sleep o/
21:35 TEttinger I did not know whitespace was that significant here
21:35 AlexDaniel psch: good night!
21:35 b2gills It shouldn't be significant afaik
21:36 TEttinger .msg camelia .say for[\[&({$^a+2*$^b})]]^5;
21:36 yoleaux TEttinger: Sorry, this command is admin-only.
21:36 b2gills camelia: commands
21:37 TEttinger no worries, I meant /msg
21:37 b2gills ( it worked in the other window )
21:37 dalek rakudo-star-daily: 85e0825 | coke++ | log/ (2 files):
21:37 dalek rakudo-star-daily: today (automated commit)
21:37 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/85e0825ccd
21:37 hoelzro is there a star release happening this month?
21:39 [Coke] doubtful, unless someone fixed module installs to follow panda.
21:39 [Coke] (or, probably better, use panda)
21:41 japhb_ TEttinger: IIRC whitespace is forbidden in a couple places in the crazy construct y'all have been playing with precisely because otherwise parsing gets crazy otherwise.  I think for this edge case it was mostly "least surprise".
21:42 japhb_ Star really should just bootstrap panda and use it.
21:42 espadrine joined #perl6
21:44 TEttinger panda?
21:46 [ptc] TEttinger: panda is the package manager for Rakudo
21:47 TEttinger oh! that's a good thing to have
21:49 hoelzro [Coke]: ah, true
21:51 colomon joined #perl6
21:54 larion joined #perl6
22:07 dolmen joined #perl6
22:14 yqt joined #perl6
22:18 kurahaupo joined #perl6
22:19 uncleyear joined #perl6
22:25 Sqirrel joined #perl6
22:37 MilkmanDan joined #perl6
22:45 dha Ok, getting a bit punchy here...
22:45 dha my $self = bless {}, $class; in p5 would be... my $self = $class.bless({}); in p6?
22:50 uncleyear joined #perl6
22:51 hoelzro dha: you very seldom have to call bless in Perl 6
22:51 dha I was wondering about that.
22:51 ugexe and when you do, your class methods already provide a 'self'
22:51 japhb_ dha: More like ... that's something where exact conversion is Doing It Wrong.  Perl 5 did not have proper OO support in the way that Perl 6 does.  You really don't want to try to do it that way in Perl 6, you want to use real classes.
22:54 dha Sadly, this particular function doesn't do much more than that. I'll have to try to look at the bigger picture and see how the object's used elsewhere and try to figure out how to make that work in a p6 idiom.
22:55 Juerd I wouldn't call these implementations "proper" or "improper". OO isn't a specific implementation per se.
22:55 dha Alternately, I could just give the hell up on this and do something more productive, like hitting myself in the face with a trout repeatedly.
22:56 Juerd Even exposing things that we now think of as internals doesn't make it any less proper OO.
22:57 japhb Mmmm, trout ...
22:58 Juerd Object orientation has to do with how state is passed around between a set of functions that operate on that state. An unpopular view is that any language supports object orientation in its most bare form (without inheritance or composition, or even classes) because OO syntax is just that anyway: syntax.
22:59 dha Oh, ok. So Test::Builder is insane. new gives you a new Test object... which it creates by calling a separate create method.
22:59 japhb Juerd: blessed references, method calls, and inheritance do not proper OO make ... but that may just mark me as being a bit of a snob at this point -- I think I've gotten too used to having a real metamodel and OO syntax that isn't forced into the wrong shaped hole.
22:59 Juerd int fd = fopen("/etc/passwd", "r");  /* fd is an object, fopen is a constructor. */
23:00 japhb Juerd: My eye *literally* twitched when I read that.
23:00 Juerd Good. Glad to make an impact :)
23:01 * japhb runs to a meeting
23:01 cognominal joined #perl6
23:01 Juerd Have fun
23:02 Juerd When you're back, consider Javascript's OO.
23:02 Juerd No classes, no inheritance, no composition, but definitely OO.
23:03 Juerd (It might have inheritance depending on the definition of that.)
23:10 hoelzro lizmat, PerlJam: are either of you around?
23:10 hoelzro I have release questions, and I think most of the Europeans (that aren't currently in the US =)) have gone to sleep
23:15 kurahaupo joined #perl6
23:22 akakcolin joined #perl6
23:30 amurf joined #perl6
23:34 b2gills .tell dha I sure hope you aren't trying to re-implement the Test::Builder module from Perl 5, which they are currently trying to replace with a better model
23:34 yoleaux b2gills: I'll pass your message to dha.
23:58 profan it's been a while since i poked at perl6, it seems like the startup time for the MoarVM variant has dropped dramatically since a few months back?
23:58 japhb profan: Yes.
23:59 profan was part of the reason why i stopped a while back, it's great to see some friction removed :)
23:59 japhb We'd like it to be still better, but it's already a significant improvement.
23:59 profan I assume parity with perl5 or better is where you want to be?

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

Perl 6 | Reference Documentation | Rakudo