Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-16

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:00 gtodd joined #perl6
00:00 _slade_ joined #perl6
00:01 colomon Okay, so here's the thing which (right now) I don't get about pmichaud++'s blog post.
00:02 colomon We don't have lazy for (except maybe in certain cases I don't understand?) right now.
00:03 colomon unless we do?  MapIterator is lazy, is for internally translated to MapIterator is some cases?
00:03 colomon I guess if map can be lazy, any loop probably can too.
00:03 TimToady sink is eager, and most for loops are in sink context
00:04 TimToady the inside list is still lazy, however
00:04 lue joined #perl6
00:04 pmichaud (arithmetic grammars)   Perl 6 already has a layer of awesome available, in that Perl 6 itself uses an expression parser.  All we need to do is expose it or write a library to make it easier for P6 programmers to utilize.
00:04 TimToady because we want the opportunity to 'last' out of a loop before evaluating the entire list
00:05 colomon TimToady: you're talking about the input to for, which agreed, has to be lazy.
00:05 pmichaud colomon: the short answer to your question is that   "for @list { block }"   is internally translated to   "@list.map({ block })"
00:05 pmichaud (I'm talking about current implementation, not necessarily what will be after GLR)
00:06 pmichaud At the moment I'm guessing map has become opportunistic, probably in the pursuit of increasing performance.
00:07 colomon pmichaud: nope, if I switch my previous script to use map, it's lazy.
00:07 colomon (I mean, the output is 1 2 3 4 16 instead of the 1 2 3 4 5 … 20 16 that I got using for.)
00:08 ghostlines joined #perl6
00:08 pmichaud colomon: then I'm guessing that 'for' is not detecting context properly, and is doing something eager/sinky in your example code.
00:10 colomon pmichaud: am I correct in thinking the basic idea here is if you can do lazy MapIter without gather / take, then you can also do lazy WhileIter, etc.?
00:10 pmichaud colomon: MapIter was designed to be lazy, yes.
00:10 TimToady is that the range optimization getting in the way somehow?
00:11 pmichaud TimToady: I don't know, since I don't know what all has been changed.  I'm looking now.
00:11 TimToady I mean the one that turns it into loop()
00:11 TimToady not the one I did that batches ranges
00:12 pmichaud I don't know anything about "turns it into loop()".  That's news to me.
00:12 pmichaud It looks to me as though Rakudo has statement_control:sym<for> as either eager or sink.
00:13 colomon https://gist.github.com/colomon/836e41416febdf9e6a0a # no range, still not lazy
00:13 pmichaud Thus "for" is currently translating into    @list.map({ block }).eager
00:13 colomon that would explain it.
00:13 TimToady well, it's not supposed to do that unless it's at statementlist level
00:13 pmichaud actually, it should never be "eager".
00:13 TimToady right
00:14 TimToady sink or direct to map
00:14 pmichaud Right now "for" is "sink" when at statementlist level, "eager" otherwise.
00:14 TimToady an "overeager" optimizization
00:14 pmichaud anyway, post-GLR it'll be either sink or pass through the laziness level wanted by source and target
00:15 TimToady hopefully GLR will speed up both lazy and non-lazy processing
00:16 pmichaud oh, I'm 95% certain it will.  Perhaps even very dramatically.
00:16 TimToady one thing we didn't talk about much at the hackathon was the relationship with code purity
00:17 TimToady if you know you have no side effects (such as .say), you can optimize more batchily without concern
00:17 pmichaud We can certainly look at that as well.
00:17 pmichaud It should be no problem.
00:17 pmichaud colomon: anyway, MapIter goes away, to be replaced by LoopIter that has the smarts for all sorts of loop-level control.
00:18 TimToady so colomon++'s test code would perhaps behave differently without the .say
00:18 TimToady unless we have a way of saying "pretend this code is pure"
00:18 pmichaud TimToady: correct.  But how would you know if the block calls a function that calls .say ?
00:18 pmichaud Or do we automatically check for purity of all things being called?
00:18 TimToady has to be transitive, for sure
00:19 * colomon would love it if there was a way to say "This block is pure"
00:19 colomon explicitly, I mean.
00:19 pmichaud I'd be fine with an option to :map for that.
00:19 pmichaud er, .map
00:19 TimToady and a pure gather/take can work ahead with impunity as well
00:19 pmichaud I already need a way to flag things for gather/take
00:19 pmichaud adverbs would be okay.
00:19 pmichaud I want to be able to signal infinite gather/take
00:20 TimToady a few hints to the negotiators would go a long way
00:20 pmichaud I'm at a DFW.pm meeting so need to focus on what they're saying :)
00:20 pmichaud syntactically I'm still looking for marking a gather/take as infinit.
00:20 pmichaud *infinite
00:34 pmichaud I'm also okay with the once speculated:    ( gather { ... }, * )
00:47 pmichaud I should probably open a specs issue ticket for that  :)
00:58 dayangkun joined #perl6
01:00 BenGoldberg GLR == Great List Revision?
01:00 Hor|zon joined #perl6
01:01 pmichaud Great List Refactor
01:01 pmichaud http://perlcabal.org/syn/S99.html#GLR
01:04 BenGoldberg Well, for a WAG, I came pretty close :)
01:12 Khisanth joined #perl6
01:13 Mso150 joined #perl6
01:39 JimmyZ joined #perl6
01:39 JimmyZ pmichaud: Is it same as  NQP? http://irclog.perlgeek.de/perl6/2014-10-16#i_9516313
01:47 ilbot3 joined #perl6
01:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
01:48 flaviusb joined #perl6
02:01 xenoterracide joined #perl6
02:08 gtodd joined #perl6
02:18 gtodd joined #perl6
02:23 gtodd left #perl6
02:40 Khisanth joined #perl6
02:47 noganex joined #perl6
02:52 yeahnoob joined #perl6
02:54 stux|RC-only joined #perl6
02:55 raydiak https://gist.github.com/raydiak/5f84ddc0c3255a1ae630
02:55 raydiak ^ is there a more elegant way to say that?
02:57 raydiak thought I remembered there being some built-in way to match brackets, but can't remember or find it yet
02:57 pdcawley joined #perl6
03:01 JimmyZ raydiak: https://github.com/moritz/json/blob/master/lib/JSON/Tiny/Grammar.pm
03:01 davido__ joined #perl6
03:01 Hor|zon joined #perl6
03:03 raydiak that ~ thing is interesting
03:10 molaf joined #perl6
03:17 mauke_ joined #perl6
03:23 stux|RC-only joined #perl6
03:24 pierrot joined #perl6
03:36 ezra1 how do if find out the status of perl6 on the jvm (like interop)
03:37 JimmyZ run some test code and run it?
03:40 BenGoldberg joined #perl6
03:42 ezra1 gonna try to convert a libgdx example and see how it goes
03:44 kaare_ joined #perl6
03:55 aborazmeh joined #perl6
03:59 xenoterracide joined #perl6
04:09 Ben_Goldberg joined #perl6
04:12 anaeem1 joined #perl6
04:12 anaeem1_ joined #perl6
04:13 stux|RC-only joined #perl6
04:32 anaeem1 joined #perl6
04:45 ggoebel11111111 joined #perl6
04:46 aborazmeh joined #perl6
04:50 ptc_p6 joined #perl6
04:56 kaare_ joined #perl6
05:02 Hor|zon joined #perl6
05:16 tony-o m: for (1) -> \2 { 2.say; }
05:17 camelia rakudo-moar af95ac: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/LQ3xtz6om1â�¤Missing blockâ�¤at /tmp/LQ3xtz6om1:1â�¤------> [32mfor (1) -> \[33mâ��[31m2 { 2.say; }[0mâ�¤    expecting any of:â�¤        formal parameterâ�¤        new term to be definedâ�¤     …»
05:23 gfldex joined #perl6
05:43 ecocode joined #perl6
05:50 SamuraiJack joined #perl6
05:53 jack_rabbit joined #perl6
05:54 ecocode` joined #perl6
05:55 ecocode joined #perl6
06:02 bartolin joined #perl6
06:04 xenoterracide joined #perl6
06:05 nebuchadnezzar joined #perl6
06:13 kurahaupo joined #perl6
06:19 darutoko joined #perl6
06:25 peteretep joined #perl6
06:26 kaleem joined #perl6
06:29 virtualsue joined #perl6
06:34 bbkr joined #perl6
06:45 dalek roast: 7192d95 | usev6++ | S04-declarations/implicit-parameter.t:
06:45 dalek roast: Add test for RT #114696, fix and unfudge 2 related tests
06:45 dalek roast: review: https://github.com/perl6/roast/commit/7192d95e4b
06:45 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=114696
06:54 pepl joined #perl6
06:57 bjz joined #perl6
06:59 dalek roast: 02a309e | usev6++ | S11-modules/import.t:
06:59 dalek roast: Add test for RT #118231
06:59 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118231
06:59 dalek roast: review: https://github.com/perl6/roast/commit/02a309ec81
07:02 FROGGS joined #perl6
07:03 Hor|zon joined #perl6
07:07 rurban joined #perl6
07:11 moritz \o
07:12 bartolin good morning moritz
07:17 rurban I wrote branch and one week long code about \o
07:19 rindolf joined #perl6
07:19 FROGGS o/
07:19 yoleaux 15 Oct 2014 20:25Z <jnthn> FROGGS: will be happy to review the patch
07:22 rurban joined #perl6
07:34 masak good moarning, #perl6
07:37 FROGGS morning masak
07:38 tadzik goo moo maa
07:41 masak m: say (<c f g m> X~ <aa oo>).roll xx 3
07:41 camelia rakudo-moar af95ac: OUTPUT«gaa goo moo␤»
07:41 masak :)
07:41 masak tadzik: gaa goo moo!
07:42 dalek roast: ece6378 | usev6++ | S09-typed-arrays/arrays.t:
07:42 dalek roast: Add test for RT #119061
07:42 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=119061
07:42 dalek roast: review: https://github.com/perl6/roast/commit/ece637835e
07:47 vike joined #perl6
07:48 ghostlines joined #perl6
07:48 zakharyas joined #perl6
07:49 Mso150 joined #perl6
07:53 abraxxa joined #perl6
07:53 Hor|zon joined #perl6
07:55 dalek rakudo/nom: 4a4f17f | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
07:55 dalek rakudo/nom: Deprecate just *after* the indicated release
07:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4a4f17ff73
08:03 FROGGS m: say v2014.10
08:03 camelia rakudo-moar af95ac: OUTPUT«v2014.10␤»
08:04 FROGGS I believe I should update the changelog about two or three things I did before I forget ...
08:04 masak +1
08:08 dalek rakudo/nom: a573abf | moritz++ | docs/ChangeLog:
08:08 dalek rakudo/nom: [ChangeLog] document Str.trans improvements
08:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a573abfc95
08:09 kjs_ joined #perl6
08:13 brrt joined #perl6
08:15 brrt \o
08:19 ptc_p6 joined #perl6
08:20 masak m: say <z r>.map(* ~ *).map({"b{$_}t!"}).join(" good morning ")
08:21 camelia rakudo-moar af95ac: OUTPUT«(timeout)»
08:21 moritz m: say <z r>.map(* ~ *).map({"b{$_}t!"}).join(" good morning ")
08:21 moritz maybe it works the second time, when the caches are warm
08:21 camelia rakudo-moar af95ac: OUTPUT«(timeout)»
08:21 masak m: say <z r>.map({"b{$_ ~ $_}t!"}).join(" good morning ")
08:22 camelia rakudo-moar af95ac: OUTPUT«bzzt! good morning brrt!␤»
08:22 masak fixed a bug on the way :)
08:22 moritz aye, * ~ * consumes two args
08:22 masak right.
08:22 moritz m: say <z r>.map(* x 2).map({"b{$_}t!"}).join(" good morning ")
08:22 brrt \o masak
08:22 camelia rakudo-moar af95ac: OUTPUT«(timeout)»
08:23 brrt good UGT :-)
08:23 * moritz hates host08 with a passion
08:23 masak m: say <z r>.map({"b{$_ ~ $_}t!"}).join(" good UGT ")
08:23 moritz Juerd: ping
08:23 camelia rakudo-moar af95ac: OUTPUT«(timeout)»
08:25 masak ran the spectests just now. failing test file t/spec/S17-procasync/print.rakudo.moar
08:26 masak Non-zero exit status: 255
08:26 masak Parse errors: Bad plan.  You planned 16 tests but ran 11.
08:26 masak trying again to check for flappitude.
08:29 dalek roast: e203199 | usev6++ | S02-types/hash.t:
08:29 dalek roast: Extend test for RT #116597
08:29 dalek roast: review: https://github.com/perl6/roast/commit/e203199c2f
08:29 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=116597
08:34 pecastro joined #perl6
08:37 dakkar joined #perl6
08:48 moritz masak: looks flappy; I just got three TODO passed fromt he same file
08:48 masak aye.
08:48 masak rand it again.
08:48 masak ran*
08:48 masak TODO passed:   12-14
08:48 tadzik rand it again :P
08:48 jnthn rand indeed :P
08:48 masak so... quarantine the file?
08:49 moritz Ayn Rand it again?
08:49 masak do we have a quarantine/ directory where we put flappy test files?
08:50 FROGGS masak: not yet
08:51 FROGGS masak: what about marking them flappy in *our* spectest.data?
08:51 FROGGS because it is rakudo's fault, not a spec issue
08:52 FROGGS and these flappy tests are only run for authors, determined by a certain env var
08:52 masak well, I was hunting for a solution that is visible in the final test report.
08:53 masak so that when I see failing tests I go "oh, they're failing, but they're flappy"
08:53 FROGGS hmmm
08:54 FROGGS would be nice to be able to tag tests as FLAPPY like we can tag them TODO
08:54 masak yes.
08:54 masak so it's a fudging thing.
08:55 masak would be nice if we had a fudger that we understood well enough to extend/modify :)
08:55 FROGGS now we'd need someone that knows a little about TAP parser implementations... *cough* leont *cough*
08:56 jnthn I'd say a solution that goes outside of what TAP provides is probably a little over-engineered... :)
08:56 FROGGS jnthn: you are always spoiling the fun :P
08:57 azawawi joined #perl6
08:57 jnthn Of course... :P
08:57 azawawi hi perl6
08:58 * azawawi started to read the Perl 6 book :)
08:58 * jnthn also hopes that our flappy tests are a fairly temporary affliction that won't need a long-term solution...
08:59 masak are we anywhere near knowing the cause(s) of flappy tests?
09:00 FROGGS I have no idea, that is what I know
09:00 masak :)
09:01 moritz I think in the case the reason is "doing stuff in parallel is hard"
09:01 brrt that's not an excuse though :-)
09:02 * brrt thinks that given enough time we would find it out
09:04 virtualsue joined #perl6
09:05 Hor|zon joined #perl6
09:06 pmurias joined #perl6
09:06 pmurias are TODO tests passing a bad thing?
09:07 brrt joined #perl6
09:07 moritz pmurias: depends on the context
09:08 moritz during development, it's good; it means you've implemented or corrected stuff
09:08 moritz in a release, it's a bad sign, because it means the developers haven't maintained their test cases well
09:09 moritz and if it's sometimes passing and sometimes not, it's always bad
09:10 dalek roast: aeed867 | usev6++ | S06-other/misc.t:
09:10 dalek roast: Add test for RT #118875
09:10 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118875
09:10 dalek roast: review: https://github.com/perl6/roast/commit/aeed867f01
09:12 arnsholt A passing TODO is often a smell of some kind
09:12 arnsholt Unless, as moritz said, it's tests for the bug/feature you're working on right now
09:18 rmgk_ joined #perl6
09:27 moukeddar joined #perl6
09:33 FROGGS joined #perl6
09:34 pecastro joined #perl6
09:37 timotimo o/
09:38 masak \o
09:38 fhelmberger joined #perl6
09:45 leont joined #perl6
09:49 virtualsue joined #perl6
10:01 kshannon joined #perl6
10:02 cibs joined #perl6
10:04 Hor|zon joined #perl6
10:09 bjz joined #perl6
10:29 denis_boyun_ joined #perl6
10:35 TuxCM joined #perl6
10:51 timotimo i haz my powerball ♥
10:56 mmcleric joined #perl6
10:57 anaeem___ joined #perl6
10:58 anaeem1_ joined #perl6
10:58 zakharyas joined #perl6
11:02 daxim this is so unelegant <http://stackoverflow.com/a/26402516>  (dynamic dispatch/invocation)
11:02 yoleaux 28 Sep 2014 11:30Z <FROGGS_> daxim: Please make sure that patch get manually applied to the libtommath that get bundled by opensuse
11:03 daxim moritz, can you modify yoleaux to provide a permalink to irclog instead of that naked timestamp?
11:03 timotimo oooh
11:03 timotimo that's not a bad idea
11:03 timotimo .o( except yoleaux isn't ours )
11:03 daxim ah crap
11:04 SamuraiJack joined #perl6
11:04 timotimo but i think the yoleaux developer is very open to plugins
11:04 timotimo actually
11:04 timotimo synopsebot could parse yoleaux' output, bunch a few lines together and give links to the irclog
11:04 timotimo or something like that
11:16 leont joined #perl6
11:17 leont Would GLR break «(self, @also).map(...)»?
11:18 jnthn Yes, think so. That's one that'd need s/map/for/
11:18 bbkr joined #perl6
11:18 jnthn Or map { ... }, self, @also;
11:19 jnthn Depending on what looks nicest.
11:20 leont I though so
11:21 * jnthn is happy that there is at least now easy rules to answer these questions...
11:21 timotimo how about (self, |@also).map(...), will that even work at all?
11:21 timotimo i don't think it will
11:22 jnthn No
11:29 bjz joined #perl6
11:30 anaeem1 joined #perl6
11:30 nine_ Piece of advise: treat flapping tests as failing tests. Because that's what they are. The fact that they sometimes pass is of no use to anyone. You cannot build on that. A user cannot rely on that.
11:30 masak +1
11:31 masak they are worse than failing tests, though.
11:31 masak that's why we should quarantine them.
11:31 nine_ They are failing tests that are harder to diagnose.
11:32 nine_ I'd say TODO is just the right thing for them. It means "yes, we know this fails and we will fix it later". Exactly what you want to do with those flappies.
11:37 peteretep An alternative to TODO is making things TODO until a certain date
11:37 moritz that only helps if you have a time-based development methodology
11:45 Akagi201 joined #perl6
11:46 Akagi201_ joined #perl6
11:49 Juerd moritz: pong and afk
11:50 Mouq joined #perl6
11:51 moritz Juerd: when you're bak, do you know how much traffic the feather hosts use up?
11:51 moritz Juerd: oh, just saw in the search that you've answered that question. Never mind then
12:10 Mouq joined #perl6
12:11 FROGGS ahh, moritz++ is on a mission :o)
12:12 PerlJam guten morgen #perl6
12:13 FROGGS PerlJam: moin :o)
12:13 moritz FROGGS: do you think 1U is enough? Or should I go for 2U?
12:14 FROGGS moritz: I have no idea what the diff in CPU/RAM/extras is
12:14 colomon joined #perl6
12:15 moritz FROGGS: there's primary a difference in available space :-)
12:15 PerlJam moritz: Are you going to setup a replacement for feather?
12:15 moritz PerlJam: that's the plan, kind
12:16 PerlJam moritz++
12:16 moritz PerlJam: I have good chances to convince my employer (who does, among other things, hosting and colocation) to give us some rack space for free
12:16 moritz maybe for a logo at the bottom of perl6.org or doc.perl6.org
12:17 moritz PerlJam: and FROGGS++ would donate a server to install there
12:17 FROGGS moritz: well, partially at least, depends on how much it is at the end
12:18 moritz FROGGS: I wasn't assuming that I buy whatever I want and you pay :-)
12:18 FROGGS :o)
12:18 PerlJam A 2U would be nice if you needed disks for some RAID configuration.
12:18 Hor|zon joined #perl6
12:19 dalek rakudo-star-daily: db9d9ed | coke++ | log/MoarVM-version.log:
12:19 dalek rakudo-star-daily: today (automated commit)
12:19 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/db9d9ed2ed
12:19 dalek perl6-roast-data: 9dff240 | coke++ | / (4 files):
12:19 dalek perl6-roast-data: today (automated commit)
12:19 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/9dff240680
12:31 kaleem joined #perl6
12:34 [Coke] (flapping) neither todo nor skip is quite right, but skip is preferable from an automated testing standpoint.
12:35 [Coke] (at least if todo'd, be sure to include "FLAP" somewhere so we don't have arguing commits about passing vs. failing)
12:35 rurban joined #perl6
12:36 masak +1
12:37 PerlJam When a test has been flapping, how do we decide that it's no longer flapping?
12:38 FROGGS we need to debounce it, clearly :o)
12:38 FROGGS (over several systems)
12:40 [Coke] PerlJam: "when was the last time it failed on the daily runs" is a good first approximation
12:41 [Coke] we had several tests that would fail every other day.
12:42 PerlJam If we marked tests as flappy we could get a more automatic "time since last flap" indicator.
12:43 rindolf joined #perl6
12:47 FROGGS +1
12:47 daxim rakudo: sub foo_bar { 42 }; say foo_bar
12:48 camelia rakudo-{parrot,moar} a573ab: OUTPUT«42␤»
12:48 FROGGS we could fudge it as #?rakudo.moar flap ..., and it would turn it into a TODO that includes the word "FLAP"
12:48 daxim rakudo: sub foo_bar { 42 }; my $fname = 'foo_bar'; say $fname.()
12:48 camelia rakudo-parrot a573ab: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str'␤  in any  at gen/parrot/BOOTSTRAP.nqp:1712␤  in block <unit> at /tmp/tmpfile:1␤␤»
12:48 camelia ..rakudo-moar a573ab: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/tmpfile:1␤␤»
12:48 daxim what's the invocation syntax here?
12:49 PerlJam FROGGS: sounds good to me.
12:49 moritz daxim: &::($name)
12:49 FROGGS PerlJam: though, in the summary it would only show "TODO passed: 12, 14"
12:50 FROGGS which does not help at all
12:50 moritz m: sub foo_bar { 42 }; my $fname = 'foo_bar'; say &::($fname)()
12:50 camelia rakudo-moar a573ab: OUTPUT«42␤»
12:50 moritz daxim: ^^
12:51 daxim rakudo: sub foo_bar { 42 }; say &::('foo_bar')()
12:51 camelia rakudo-{parrot,moar} a573ab: OUTPUT«42␤»
12:51 daxim good
12:51 moritz also
12:51 moritz m: sub foo_bar { 42 }; my $fname = '&foo_bar'; say ::($fname)()
12:51 camelia rakudo-moar a573ab: OUTPUT«42␤»
12:51 moritz you're flexible about where the sigil is
12:52 daxim oh gosh, I don't like that at first glance
12:52 PerlJam FROGGS: then we make the harness smarter so that it calls out flapping tests explicitly separate from TODOs  :)
12:52 PerlJam FROGGS: something like :  FLAP passed: 12, 14  (this time)
12:52 PerlJam :)
12:53 FROGGS PerlJam: that is where jnthn started to spoil it :o)
12:53 FROGGS but yes, I'd like to see that
12:53 FROGGS daxim: well, then start do dislike calling subs indirectly :o)
12:53 FROGGS brb
12:54 PerlJam daxim: yeah, why /do/ you want to call a sub in this manner?
12:54 daxim for porting perl5 code
12:55 Hor|zon joined #perl6
12:55 moritz there are genuine use cases, usually related to DSLs or something like that
12:56 salv0 joined #perl6
12:56 PerlJam aye, but the P5er in me starts off with "don't do that!"  :)
12:57 moritz ... except when you generate accessors, or what not
12:57 moritz PerlJam: I think daxim has been helping p5ers long enough to know when to use a hash instead :-)
12:57 PP__ joined #perl6
12:59 PerlJam funnily enough, I have some P5 code that calls subs in this manner that I'm modifying right now
12:59 PerlJam (not changing that aspect of the code though)
13:07 pmichaud good morning, #perl6
13:07 PerlJam greetings pm
13:08 masak pmichaud! \o/
13:09 TimToady morning!
13:09 wtw joined #perl6
13:09 pmichaud TimToady: still on .eu time?  ;-)
13:10 pmichaud bbiab, kid to school
13:10 flaviusb joined #perl6
13:10 TimToady about on EST now...
13:13 guru joined #perl6
13:14 azawawi hi
13:14 PerlJam hello azawawi
13:15 JimmyZ joined #perl6
13:15 azawawi how does one 'return' from an END block in Perl 6?
13:15 moritz m: END { say 42; return; say 23 }
13:15 camelia rakudo-moar a573ab: OUTPUT«42␤===SORRY!===␤Attempt to return outside of any Routine␤»
13:15 moritz azawawi: not, it seams
13:15 moritz *seems
13:15 azawawi m: END { return; }
13:15 camelia rakudo-moar a573ab: OUTPUT«===SORRY!===␤Attempt to return outside of any Routine␤»
13:16 azawawi std: END { return; }
13:16 moritz azawawi: in theory with 'leave', but that's NYI
13:16 camelia std bd22b5c: OUTPUT«ok 00:01 140m␤»
13:16 azawawi NYI?
13:16 moritz not yet implemented
13:16 azawawi :)
13:16 moritz m: END { leave; say 42 }
13:16 camelia rakudo-moar a573ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/RnYVlxP60lâ�¤Undeclared routine:â�¤    leave used at line 1â�¤â�¤Â»
13:16 PerlJam What would "return" mean in an END block, anyway?
13:16 TimToady um, END is not a sub
13:17 TimToady nor is main
13:17 moritz FROGGS: wouldn't implementing 'leave' be a nice project? :-)
13:17 masak m: foo: say "OH HAI"; END { goto foo }
13:17 camelia rakudo-moar a573ab: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/V8lyjq903zâ�¤Undeclared routine:â�¤    goto used at line 1â�¤â�¤Â»
13:17 masak oh right. labels, but no goto.
13:17 masak n: foo: say "OH HAI"; END { goto foo }
13:17 camelia niecza : OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
13:17 moritz m: foo: END { last foo }
13:17 camelia rakudo-moar a573ab: OUTPUT«Unhandled exception: No exception handler located for last_label␤   at src/gen/m-CORE.setting:12274  (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:<anon>:48)␤ from src/gen/m-main.nqp:50  (/home/p6eval/rakudo-inst-1/languages/p…»
13:18 azawawi but the question is, why isnt it a sub...?
13:18 azawawi for consistency that is
13:18 moritz azawawi: because there's no 'sub' keyword in front
13:18 moritz m: sub END { return }
13:18 camelia rakudo-moar a573ab: ( no output )
13:18 moritz m: sub END { say 42; return }
13:18 camelia rakudo-moar a573ab: ( no output )
13:19 pmichaud back
13:20 pmichaud END is a phaser, much like LAST NEXT REDO FIRST etc.
13:20 PerlJam azawawi: if you mean for "return" to stop executing the END block, you can always wrap the conditional part of the END block in an if statement.
13:20 azawawi I see. Thanks for the explanation :)
13:21 azawawi so END phases things out... :)
13:22 dalek rakudo/nom: 329ed92 | moritz++ | docs/ROADMAP:
13:22 dalek rakudo/nom: [ROADMAP] mention leave
13:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/329ed92fdd
13:24 azawawi now the question is why rakudo did not catch that obvious error until it hit it
13:25 azawawi the thing is `panda install Farabi6` was failing
13:25 moritz azawawi: because returns are dynamically scoped
13:26 moritz m: my $double = -> $x { return 2 * $x }; sub foo($x) { $double($x) }; say foo 42
13:26 camelia rakudo-moar a573ab: OUTPUT«84␤»
13:26 moritz this is valid
13:26 JimmyZ pmichaud: I had a question : http://irclog.perlgeek.de/perl6/2014-10-16#i_9516580
13:26 moritz so it's kinda hard to come up with a general analysis that complains about return in blocks but doesn't make the above a false positive
13:26 azawawi i see
13:27 * azawawi `panda install Farabi6` is working again :)
13:27 * azawawi blames himself for not testing it
13:28 pmichaud JimmyZ: I'm not sure I understand the question.
13:28 pmichaud JimmyZ: are you asking if 'for' in NQP does a .map?
13:28 azawawi timotimo: ping
13:28 JimmyZ pmichaud: yeah
13:28 TimToady moritz: return is defined to be lexotic
13:28 TimToady so that code is incorrect
13:29 pmichaud JimmyZ: no, NQP doesn't have a .map.  It does the 'for' directly, and it's not lazy.
13:29 JimmyZ pmichaud: Thanks
13:29 pmichaud and I'm pretty sure that 'for' in NQP doesn't return a list.
13:30 moritz iirc nqp just has a sub map
13:30 bjz joined #perl6
13:30 moritz not even that
13:33 dalek roast: 4295bfc | usev6++ | S32-list/ (2 files):
13:33 dalek roast: Add tests for RT #118755
13:33 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118755
13:33 dalek roast: review: https://github.com/perl6/roast/commit/4295bfcfae
13:42 anaeem1_ joined #perl6
13:49 FROGGS moritz: probably, yes
13:49 FROGGS moritz: though, open(:nl) first
13:53 PerlJam Why is the number of lines read called "ins"?   It keeps making me think "insert" more than anything else
13:53 SamuraiJack joined #perl6
13:54 moritz "in"s vs "out"s
13:55 PerlJam Do we have an outs method/sub for lines written to a IO handle?
14:00 moritz bartolin: do you have a list of test files for me that could be included in rakudo's t/spectest.data?
14:07 pmichaud well, although my sleep schedule is definitely back on US time, my eating schedule is not.  I'm starving for lunch, and it's only 9:07.  :-/
14:08 jnthn pmichaud: I think that's called "breakfast" :P
14:09 PerlJam maybe "second breakfast"
14:09 pmichaud jnthn: I'd call it breakfast if I was craving breakfast-y items.  Right now I'm wanting a corned beef sandwich.
14:10 jnthn Well, a sandwich would pass as breakfast in Sweden...hack, in UK too if you put bacon or sausage in it :)
14:10 jnthn *heck
14:10 dalek rakudo/nom: a6f181e | moritz++ | t/spectest.data:
14:10 dalek rakudo/nom: Run now-passing test files, bartolin++, hoelzro++
14:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a6f181e7b0
14:10 pmichaud either way, the restaurant(s) that sell what I'd like to eat aren't open yet.  :-(
14:10 jnthn Aww :(
14:11 jnthn .oO( sudo open up and make me a sandwich )
14:11 pmichaud have to be careful with those root powers... might actually turn a person into a sandwich.
14:12 JimmyZ I sometimes read breakfast as break it fast :/
14:13 moritz well, breakfast is breaking the night's fast (fasting = not eating)
14:13 moritz so it's pretty close :-)
14:14 JimmyZ :)
14:14 Mouq joined #perl6
14:15 JimmyZ break the cup fastly :P
14:19 [Coke] bartolin: note that in the test for RT#118231, you're actually importing Test 3 times.
14:19 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118231
14:20 masak m: $*OUT.outs
14:20 masak m: say $*OUT.outs
14:20 masak PerlJam: yes.
14:20 camelia rakudo-moar a573ab: OUTPUT«(timeout)»
14:20 camelia rakudo-moar a573ab: OUTPUT«(timeout)»
14:21 masak ergh.
14:22 [Coke] bartolin: https://rt.perl.org/Public/Bug/Display.html?id=118029 is closable.
14:22 PerlJam ack -w outs # tells me it's not yet specced if it does exist.
14:23 [Coke] .seen diakopter
14:23 yoleaux I saw diakopter 20 Sep 2014 13:03Z in #perl6: <diakopter> oh
14:23 [Coke] moritz: so, I'm ready to bail on host08. you?
14:24 moritz [Coke]: I'm slowly preparing a replacement for feather that should be beefy enough to also replace host08 :-)
14:25 moritz and it seems host07 is still running; maybe we can simply switch back to it from camelia
14:26 [Coke] .tell japhb < moritz> [Coke]: I'm slowly preparing a replacement for feather that should be beefy enough to also replace host08 :-)
14:26 yoleaux [Coke]: I'll pass your message to japhb.
14:26 moritz [Coke]: http://irclog.perlgeek.de/perl6/2014-10-16#i_9518291
14:27 [Coke] must have scrolled right past that.
14:28 moritz but I need the ACK from our CEO, then the actual machine, and then set it up
14:28 moritz so I'd guess it'll be 2 weeks to 2 months before we actually have it
14:28 [Coke] honestly, I'm tempted to run them on my work laptop. It'd be OS X instead of linux, but I wouldn't even notice they were running.
14:29 PerlJam moritz: how "beefy" were you shooting for?
14:31 moritz PerlJam: http://www.ebay.de/itm/like/130942134087 if we get the housing option
14:31 pmichaud afk, lunchfast
14:32 kaleem joined #perl6
14:33 j4jackj joined #perl6
14:35 kaare_ joined #perl6
14:41 colomon moritz++
14:42 kjs_ joined #perl6
14:44 brrt joined #perl6
14:48 anaeem1 joined #perl6
14:48 treehug88 joined #perl6
14:55 Hor|zon joined #perl6
15:15 b2gills Where would I look for a test like `my $e = enum :alpha<a>, <beta charlie>` # fixed in Rakudo by PR:321
15:15 Hor|zon joined #perl6
15:16 FROGGS usually in roast, but I can't find it
15:18 PerlJam b2gills: I'd expect it to live in t/spec/S12-enums/non-int.t
15:18 bartolin [Coke]: thanks for the two notes. I'll have a look at it later
15:19 bartolin moritz: was afk for a while. I'll have a look later whether I find another file to include in t/spectest.data
15:24 abraxxa panicFq644T65R66g76
15:24 * pmichaud back with noms
15:30 kst` joined #perl6
15:33 dalek roast: 8e9ba37 | TimToady++ | S04-statements/return.t:
15:33 dalek roast: return should not fallback to dynamic
15:33 dalek roast: review: https://github.com/perl6/roast/commit/8e9ba37188
15:34 TimToady moritz++ for providing the negative example :)
15:35 TimToady for some reason eval_dies_ok doesn't work there, had to use try EVAL
15:36 itz joined #perl6
15:41 gtodd joined #perl6
15:51 b2gills PerlJam: The problem also exists with `my $a = enum :a(1), 'b';`. That is the problem is that $prev isn't set for named args in ANON_ENUM (PR:321)
15:54 kst`` joined #perl6
15:59 * masak hopes abraxxa is OK...
16:18 Mouq joined #perl6
16:25 Mouq m: enum a => 1 # LTA
16:26 masak ...in more ways than one... :/
16:26 camelia rakudo-moar a573ab: OUTPUT«(timeout)»
16:26 Mouq std: enum a => 1
16:27 camelia std bd22b5c: OUTPUT«(timeout)»
16:27 [Coke] bartolin: there is a script in the rakudo repo you can run to see if test files not in spectest.data are passing.
16:28 Mouq viv is even more LTA
16:28 Mouq ./viv -e 'enum foo => 1'
16:28 Mouq ===SORRY!===
16:28 Mouq Illegal redeclaration of symbol 'foo' (see line 1) at (eval) line 1:
16:28 Mouq ------> enum foo⏏ => 1
16:28 Mouq Check failed
16:31 hoelzro o/ #perl6
16:31 [Coke] bartolin: perl tools/update_passing_test_data.pl
16:33 gtodd synopsis 99
16:36 [Coke] parrot build froze on host08 today.
16:36 [Coke] Stage start      :   0.000
16:36 [Coke] Stage parse      :
16:36 [Coke] ^^ stuck here for hours
16:36 cognome joined #perl6
16:37 [Coke] looks like camelia's java build is eating all the memory, perhaps?
16:37 [Coke] ok. I'm killing the daily runs on host08, this is not usuable.
16:37 [Coke] *usable
16:38 [Coke] switching to ad hoc runs on my laptop.
16:41 b2gills Mouq: ok maybe there is two problems with `my $a = enum :a(1), 'b';`. `my $a = enum( :a(1), 'b');` only exhibits one of them ( fixed by PR:321)
16:42 Mso150 joined #perl6
16:45 dalek Perlito: 42aded4 | (Flavio S. Glock)++ | / (17 files):
16:45 dalek Perlito: Perlito5 - create Perlito5X namespace
16:45 dalek Perlito: review: https://github.com/fglock/Perlito/commit/42aded448d
16:45 [Coke] trying to rebuild rakudo-moar locally: getting: Configuration FAIL. You can try to salvage the generated Makefile.
16:46 [Coke] ah, the old I HATE SUBMODULES!@(*&!@(*#$@ problem.
16:46 [Coke] whenever we explicitly do a git clone, we try to respect --git-protocol. git submodules ignore that.
16:50 [Coke] (needed more work to setup my env so git https still tries to use my http proxy, done. whew)
16:53 [Sno] joined #perl6
16:55 Mouq b2gills: :) Does the PR pass the spectest? (make spectest) and also, it'd be super useful if you could add a test for it in S12-enums/anonymous.t ?
16:55 Mouq s:2nd/\?//
16:57 b2gills I only have Rakudo with rakudobrew, but it does work properly if I put the fixed ANON_ENUM in the test file
16:58 [Coke] https://gist.github.com/coke/987dd4a31524fa207aca - failures on spectest on OS X moar
17:04 kjs_ joined #perl6
17:06 Mouq m: sub foo { sub bar { -> { return 42 } }; my &ret = bar(); ret() }()
17:06 camelia rakudo-moar 329ed9: OUTPUT«Attempt to return outside of any Routine␤  in block  at src/gen/m-CORE.setting:628␤  in sub foo at /tmp/laHDOHb7b6:1␤  in block <unit> at /tmp/laHDOHb7b6:1␤␤»
17:07 vendethiel daxim: sorry I havn't been more clear on my ruby answer :)
17:07 dwarring joined #perl6
17:09 ptc_p6 joined #perl6
17:09 psch joined #perl6
17:09 pmichaud An interesting comment on my APW2014 post:  http://pmthium.com/2014/10/apw2014/#comment-1007732
17:10 grettis joined #perl6
17:11 psch hi #perl6
17:12 psch m: my $list = <a b c>; map(&say, $list)
17:12 camelia rakudo-moar 329ed9: OUTPUT«a b c␤»
17:12 psch pmichaud: so we are already "badly broken"?
17:15 SamuraiJack joined #perl6
17:17 Mouq We're the.. opposite of badly broken? `my $list1 = <a b c>; my $list2 = <d e f> map &say, $list1, $list2` if that doesn't output a b c\nd e f\n I'd be fairly upset
17:18 Mouq `my $list1 = <a b c>; my $list2 = <d e f>; map &say, @$list1, @$list2` is a different story, IMO
17:19 _slade_ joined #perl6
17:20 Mouq And if the person wants a special case for two-arg map, I don't think the person understands Perl 6
17:20 ghostlines joined #perl6
17:22 * lizmat is back from being away most of the day
17:24 Hor|zon joined #perl6
17:24 pmichaud well, in the commenter's defense, note that    (@$list1, @$list2).map(&say)   and map(&say, @$list1, @$list2) will now be different.
17:24 pmichaud and I can see how that would be more than a little confusion.
17:24 pmichaud *confusing
17:25 lizmat wrt to deprecations: the way I implemented it now, is that release 2014.10 would *not* complain
17:25 lizmat but any commit after that *would*
17:25 lizmat so: the new features / API would be in the next release, the old still there not complaining
17:26 lizmat but anybody on blead would get the deprecation warnings
17:26 lizmat and the next release would as well
17:26 lizmat this would allow the ecosystem 1 release to fix any deprecations
17:26 lizmat does that make sense ?
17:26 testserver41 joined #perl6
17:27 lizmat and ~1 year before the deprecated code is actually removed
17:31 cognome joined #perl6
17:32 masak I'm about to close https://rt.perl.org/Ticket/Display.html?id=118581 (because it no longer segfaults).
17:33 psch difference of flattening between method and function does not particularly appeal to me from a consistency perspective either, but i think i could deal with it, as it has clear semantics
17:33 masak just curious: what *should* this return?
17:33 masak m: say \(1) ~~ :(int $x as Str)
17:33 camelia rakudo-moar 329ed9: OUTPUT«False␤»
17:34 masak m: say \(1) ~~ :(1)
17:34 camelia rakudo-moar 329ed9: OUTPUT«True␤»
17:34 masak m: say \(1) ~~ :(Int)
17:34 camelia rakudo-moar 329ed9: OUTPUT«True␤»
17:34 masak m: say \(1) ~~ :(int)
17:34 camelia rakudo-moar 329ed9: OUTPUT«True␤»
17:34 masak m: say \(1) ~~ :(int $x)
17:34 camelia rakudo-moar 329ed9: OUTPUT«True␤»
17:34 Mouq m: say \(1) ~~ :($x as Str)
17:34 camelia rakudo-moar 329ed9: OUTPUT«True␤»
17:34 masak m: say \(1) ~~ :(int $x as Str)
17:34 camelia rakudo-moar 329ed9: OUTPUT«False␤»
17:34 masak yeah, that feels wrong. :)
17:34 masak so maybe I should just change the title of the ticket?
17:34 masak or open a new one?
17:35 jack_rabbit joined #perl6
17:35 psch it should autobox for the smartmatch, shouldn't it?
17:35 guru joined #perl6
17:35 masak psch: note that \(1) ~~ :(int) matches.
17:35 Mouq m: say \(1) ~~ :(Int $x as Str)
17:35 psch err, for the 'as Str'
17:35 camelia rakudo-moar 329ed9: OUTPUT«True␤»
17:36 psch masak: right, i'm typing before finishing thinking again it seems :)
17:36 masak happens to me all the time ;)
17:36 prevost joined #perl6
17:38 * masak closes the old ticket and opens a new one
17:40 bartolin sounds good, masak++
17:40 masak m: \(1) ~~ :(int as Str)
17:40 masak m: say \(1) ~~ :(int as Str)
17:40 camelia rakudo-moar 329ed9: ( no output )
17:40 camelia rakudo-moar 329ed9: OUTPUT«False␤»
17:41 bartolin [Coke]: wrt importing Test 3 times: do you think it's a bad idea to test with Test.pm? but it certainly is enough to import it once more.
17:43 nine_ m: BEGIN { my $class := Metamodel::ClassHOW.new_type(name => "Test"); $class.HOW.compose($class); GLOBAL::<Test> = $class; }; say Test.new();
17:43 camelia rakudo-moar 329ed9: OUTPUT«===SORRY!===␤Object of type Test in QAST::WVal, but not in SC␤»
17:44 nine_ m: BEGIN { my $class := Metamodel::ClassHOW.new_type(name => "Test"); $class.HOW.compose($class); GLOBAL.WHO<Test> = $class; }; say Test.new();
17:44 camelia rakudo-moar 329ed9: OUTPUT«===SORRY!===␤Object of type Test in QAST::WVal, but not in SC␤»
17:44 nine_ m: BEGIN { my $class := Metamodel::ClassHOW.new_type(name => "Test"); $class.HOW.compose($class); GLOBAL.WHO<Test> := $class; }; say Test.new();
17:44 camelia rakudo-moar 329ed9: OUTPUT«Test.new()␤»
17:44 psch btw, https://gist.github.com/peschwa/4cd283a7c2d450f9825b is how my cliopts grammar prototype behaves right now
17:44 nine_ Seems like I really should finally read up on when to use = and when := :)
17:44 psch integration into rakudo is probably a few days away, especially regarding the delimited options
17:45 psch oh, there's cases missing that (should) work
17:46 FROGGS[mobile] joined #perl6
17:47 psch gist updated.  negation of grouped short opts dies as does negation of opts that need a value
17:48 psch multiple -I, which recently came up, seems already supported and should still be supported when i get this into rakudo
17:48 psch i guess i'll put "write many more tests" onto my todo as well
17:49 bartolin moritz: thanks for updating t/spectest.data. I don't know about other newly created files which could be included
17:49 nine_ Is caller implemented?
17:50 vendethiel mmmh.
17:50 vendethiel m: sub f{caller.return(5)}; sub g {f}; say g
17:50 vendethiel Ihavenoideawhatimdoing.jpg
17:50 camelia rakudo-moar 329ed9: OUTPUT«(timeout)»
17:50 vendethiel m: sub f{caller.return(5)}; sub g {f}; say g #probably doesn't work
17:51 nine_ sub test { say caller.name; }; sub foo { test; }; foo();
17:51 PerlJam nine_: There's callframe
17:51 nine_ m: sub test { say caller.name; }; sub foo { test; }; foo();
17:51 camelia rakudo-moar 329ed9: OUTPUT«(timeout)»
17:51 camelia rakudo-moar 329ed9: OUTPUT«(timeout)»
17:51 vendethiel right.
17:51 Sqirrel joined #perl6
17:52 lizmat $ 6 'say callframe'
17:52 lizmat CallFrame.new(level => 2, annotations => ("file" => "-e", "line" => "1").hash, my => EnumMap.new("\$!", Nil, "\$/", Nil, "\$_", Nil, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, ))
17:52 vendethiel nice :)
17:52 nine_ PerlJam: thanks!
17:52 nine_ lizmat: thanks!
17:56 bartolin speaking about t/spectest.data: AFAIU it's best to put tests for tickets in existing files (in roast). but sometimes it's hard to find a good place for a test (at least for me). are "per ticket files" like rt98765.t okay in such cases or is better to create new "thematical" files -- as I did with S19-command-line/arguments.t?
17:57 FROGGS[mobile] +1 for the latter
17:57 vendethiel I'm glad we have all that power at hand. I'm still very impressed often :o)
17:58 vendethiel maybe "leave" should make it to the features matrix. It's kinda big.
17:58 vendethiel I guess I should not mention it in my tutorial until it Works(TM)
17:58 moritz bartolin: yes, new test files are fine
17:58 chenryn joined #perl6
17:59 moritz does anybody have a working niecza installation, and know whether it supports leave?
17:59 bartolin okay, thanks
18:00 [Coke] bartolin: nah, any issues will be limited to fallout in that test file.
18:00 [Coke] so "nah, no issues"
18:00 [Coke] moritz: niecza requires mono < 3 at this point.
18:00 [Coke] can I ask why you need a owrkign niecza?
18:01 [Coke] the project is dead at this point.
18:01 FROGGS[mobile] vendethiel: yes, leave qualifies for the features matrix
18:01 moritz [Coke]: sometimes it's still itneresting to see how it interprets stuff
18:01 masak now and then, niecza still proves a useful point of comparison against Rakudo, IMHO.
18:01 masak right. what moritz said.
18:02 gtodd .net is not so backward compatible as perl and java I guess
18:02 masak it's falling further and further behind, but some things (things like "goto") it still has on Rakudo.
18:02 adu joined #perl6
18:03 nine_ m: BEGIN { my $class := Metamodel::ClassHOW.new_type(name => "Test::More"); $class.HOW.compose($class); GLOBAL.WHO<Test::More> := $class; }; say Test::More.new();
18:03 camelia rakudo-moar a6f181: OUTPUT«Could not find symbol '&More'␤  in method <anon> at src/gen/m-CORE.setting:13622␤  in any find_method_fallback at src/gen/m-Metamodel.nqp:2725␤  in any find_method at src/gen/m-Metamodel.nqp:988␤  in block <unit> at /tmp/I8R3kS6pUv:1␤␤»
18:04 gtodd did it have the same approach as rakudo was it a "backend"?  (was there a "nqp-n")
18:04 nine_ m: BEGIN { my $class := Metamodel::ClassHOW.new_type(name => "Test::More"); $class.HOW.compose($class); GLOBAL<Test>.WHO<More> := $class; }; say Test::More.new();
18:04 camelia rakudo-moar a6f181: OUTPUT«Could not find symbol '&More'␤  in method <anon> at src/gen/m-CORE.setting:13622␤  in any find_method_fallback at src/gen/m-Metamodel.nqp:2725␤  in any find_method at src/gen/m-Metamodel.nqp:988␤  in block <unit> at /tmp/8KfDgLQ49n:1␤␤»
18:04 nine_ :(
18:05 moritz m: constant Test::More = Int; say Test::More
18:05 camelia rakudo-moar a6f181: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/D7koXr5WVSâ�¤Missing initializer on constant declarationâ�¤at /tmp/D7koXr5WVS:1â�¤------> [32mconstant Test[33mâ��[31m::More = Int; say Test::More[0mâ�¤    expecting any of:â�¤        statement …»
18:06 moritz m: BEGIN ::('Test::More') = Int; say Test::More # I don't expect this one to work
18:06 camelia rakudo-moar a6f181: OUTPUT«===SORRY!===␤No such symbol 'Test::More'␤»
18:07 anaeem1_ joined #perl6
18:08 moritz perl6-m -e 'BEGIN GLOBAL::<Test> = Int; say Test'
18:08 moritz ===SORRY!===
18:08 moritz Object of type Int in QAST::WVal, but not in SC
18:08 anaeem1_ joined #perl6
18:08 moritz that kind looks like a bug to me
18:08 nine_ m: BEGIN GLOBAL::<Test> := Int; say Test
18:08 camelia rakudo-moar a6f181: OUTPUT«(Int)␤»
18:08 nine_ moritz: := seems to work while = failes
18:09 dalek roast: de19d97 | usev6++ | S11-modules/import.t:
18:09 dalek roast: Modify test for RT #118231
18:09 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118231
18:09 dalek roast: review: https://github.com/perl6/roast/commit/de19d97459
18:10 fhelmberger joined #perl6
18:11 gtodd masak: leaving aside the technical questions .... didn't Scala "officially" drop the .Net platform just before it became wildly popular ... :-)  ?
18:12 gtodd i.e. just before Scala  became wildly popular ... :P
18:12 vendethiel gtodd: kind of
18:12 masak no idea. is it relevant?
18:12 vendethiel the scala.net backend was part of a GSOC 2011 project, IIRC
18:12 masak wow, I hadn't realized how awesome << >> quoting is. it's like a better heredoc in some cases.
18:13 vendethiel :D
18:13 masak works excellent for tabulating test cases, for example. especially since I can use "" strings inside!
18:13 gtodd masak: only for marketing ;-)
18:13 masak and then just loop over it with a for loop that picks out just the right number of elements at a time
18:13 masak <3
18:14 masak Perl 6: love in syntax form.
18:15 masak language point: 4 : quadrant :: 6 : ???
18:16 vendethiel wut?
18:16 kjs_ joined #perl6
18:16 gtodd haha
18:16 vendethiel masak: it's interesting to see even you get surprised by how the language works :P
18:16 masak the plane divides into four quadrants. is there a name for the thing it divides into when there's six of them?
18:16 masak vendethiel: I keep discovering things.
18:17 vendethiel yay, adventures!
18:17 masak vendethiel: it's not that I didn't know about << >>, it's just that I hadn't ever used it for this.
18:17 vendethiel yes, I get it
18:17 gtodd sextant?
18:17 vendethiel a feature isn't useful without use cases :)
18:17 masak gtodd: gonna go with that until someone comes up with something better :)
18:36 dalek roast: d55c943 | usev6++ | S (2 files):
18:36 dalek roast: Add tests for RT #118581 and RT #118067
18:36 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118581
18:36 dalek roast: review: https://github.com/perl6/roast/commit/d55c943637
18:42 nine_ aaaaaaaaaaah
18:42 nine_ m: BEGIN { my $class := Metamodel::ClassHOW.new_type(name => "Test::More"); $class.HOW.compose($class); GLOBAL.WHO<Test> := package {}; GLOBAL::Test.WHO<More> := $class; }; say Test::More.new()
18:42 camelia rakudo-moar a6f181: OUTPUT«(timeout)»
18:43 nine_ m: BEGIN { my $class := Metamodel::ClassHOW.new_type(name => "Test::More"); $class.HOW.compose($class); GLOBAL.WHO<Test> := package {}; GLOBAL::Test.WHO<More> := $class; }; say Test::More.new()
18:43 camelia rakudo-moar a6f181: OUTPUT«(timeout)»
18:44 colomon joined #perl6
18:44 aindilis joined #perl6
18:46 moukeddar joined #perl6
18:47 masak here's my use of << >> in code I just wrote: https://gist.github.com/masak/7404ebdd2ee6f397cb93
18:48 gtodd m:  my $国 = "日本" ; say $国 ";
18:48 camelia rakudo-moar a6f181: OUTPUT«(timeout)»
18:49 psch what exactly does Text::SmartLinks need in the L<> tags in roast? synopsis and (headline or some text that matches somewhere)?
18:50 vendethiel masak: you're of the "normalized returns" school :P?
18:50 masak oh, investment humor?
18:50 masak I had to look that one up :)
18:50 psch i did that too.  and it actually answered my question...
18:51 psch so, nvm that.  for the record it's syn/headline/start-of-paragraph, if i understand correctly
18:52 bartolin yesterday we spoke about a "ticket deal" (http://irclog.perlgeek.de/perl6/2014-10-15#i_9512823)
18:52 bartolin let's try it: for todays RT work (we are down to 740 tickets) it would be nice if
18:52 bartolin 1) someone looks at RT #99658 and comments if my explanation goes in the right direction and
18:52 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=99658
18:52 bartolin 2) someone looks at PR 319 for Rakudo (I wanted to add one or two typed exceptions)
18:52 bartolin *g*
18:52 masak bartolin: looking at (1) now
18:52 bartolin masak++
18:53 ilbot3 joined #perl6
18:53 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
18:53 gtodd list/s items etc. etc.
18:53 gtodd wow
18:53 timotimo gtodd: well, it's really just a flat list there
18:53 timotimo but masak is iterating over it by taking out the right amount of items each time
18:54 timotimo so it's effectively a table
18:54 gtodd it's cool .... but it crashed my repl :)
18:54 gtodd neat
18:54 f1 joined #perl6
18:55 zakharyas joined #perl6
18:56 gtodd actually it's the fact you can use a "tabular" flat list to work with ==>  for @tests -> $x, $y, $ox, $oy, $description { ... }  that is cool
18:56 timotimo that's cool, too.
18:56 timotimo i hadn't fully realized someone went ahead and fixed « »
18:56 timotimo m: say «Hello "How are you?" \"I am fine.\"».perl
18:57 camelia rakudo-moar a6f181: OUTPUT«("Hello", "How are you?", ("\"I", "am", "fine.\""))␤»
18:57 masak gtodd: combined with the fact that "" works well inside << >>
18:57 timotimo oh, huh?
18:57 psch m: say <<foo\ bar>>
18:57 camelia rakudo-moar a6f181: OUTPUT«foo bar␤»
18:57 timotimo that's strange
18:58 psch timotimo: yours does seem sensible to me.  you're escaping the quotes which makes « » split on <ws>
18:58 Hor|zon joined #perl6
18:58 dalek nqp: 3ea8d5c | (Mikhail Khorkov)++ | / (2 files):
18:58 dalek nqp: Add --git-depth option
18:58 dalek nqp:
18:58 dalek nqp: The option adds --depth option to all git clone commands
18:58 dalek nqp: review: https://github.com/perl6/nqp/commit/3ea8d5c0d4
18:58 dalek nqp: 7ec03cf | moritz++ | / (2 files):
18:58 dalek nqp: Merge pull request #191 from atroxaper/master
18:58 dalek nqp:
18:58 dalek nqp: Add --git-depth option
18:58 dalek nqp: review: https://github.com/perl6/nqp/commit/7ec03cfaea
18:58 dalek rakudo/nom: dd6ce68 | (Mikhail Khorkov)++ | / (2 files):
18:58 dalek rakudo/nom: Add --git-depth option
18:58 dalek rakudo/nom:
18:58 dalek rakudo/nom: The option adds --depth option to all git clone commands
18:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dd6ce687fa
18:58 dalek rakudo/nom: d4271c7 | moritz++ | / (2 files):
18:58 dalek rakudo/nom: Merge pull request #322 from atroxaper/nom
18:58 dalek rakudo/nom:
18:58 dalek rakudo/nom: Add --git-depth option
18:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4271c786a
18:59 timotimo psch: but where do the parens come from?
18:59 psch oh, right
18:59 psch m: say «Hello "How are you?" \"I am fine.\"».elems
18:59 camelia rakudo-moar a6f181: OUTPUT«3␤»
19:00 psch m: say «Hello "How are you?" \"I am fine.\"».flat.elems
19:00 camelia rakudo-moar a6f181: OUTPUT«5␤»
19:00 dalek rakudo/nom: 42841ad | (Brad Gilbert)++ | src/core/Enumeration.pm:
19:00 dalek rakudo/nom: Make anonymous enums follow Synopsis 2
19:00 dalek rakudo/nom:
19:00 dalek rakudo/nom: Adding a pair to an enum is supposed to change the value the next key would get.
19:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42841ada50
19:00 dalek rakudo/nom: 1de1488 | moritz++ | src/core/Enumeration.pm:
19:00 dalek rakudo/nom: Merge pull request #321 from b2gills/patch-1
19:00 dalek rakudo/nom:
19:00 dalek rakudo/nom: Make anonymous enums follow Synopsis 2
19:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1de1488aa7
19:00 psch hm, is \" another obscure escape sequence? :)
19:00 masak bartolin: I just rejected #99658, accepting your reasoning.
19:00 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=99658
19:00 psch like \qq in ' '...
19:00 dalek roast: cab366f | (Pepe Schwarz)++ | S19-command-line (4 files):
19:00 dalek roast: Add a few tests for S19.
19:00 dalek roast:
19:00 dalek roast: I hope I did the smart-linking correctly. I've prototyped
19:00 dalek roast: stuff to pass these tests but integration into Rakudo might
19:00 dalek roast: take a few more days.
19:00 dalek roast: review: https://github.com/perl6/roast/commit/cab366f45a
19:01 timotimo i don't know \qq actually
19:01 timotimo does that give you qq semantics for the rest of the literal?
19:01 bartolin thanks, masak!
19:01 virtualsue joined #perl6
19:02 dalek rakudo/nom: 32aa365 | usev6++ | src/core/Exception.pm:
19:02 dalek rakudo/nom: Add X::Syntax::Regex::SolitaryQuantifier
19:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/32aa365989
19:02 dalek rakudo/nom: c77c584 | usev6++ | src/ (2 files):
19:02 dalek rakudo/nom: Add typed exception X::Syntax::Term::MissingInitializer
19:02 dalek rakudo/nom: used for term definitions without initialization assignment (cmp RT #116607)
19:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c77c58436b
19:02 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=116607
19:02 dalek rakudo/nom: 86dc3c6 | moritz++ | src/ (2 files):
19:02 dalek rakudo/nom: Merge pull request #319 from usev6/nom
19:02 dalek rakudo/nom:
19:02 dalek rakudo/nom: Add two typed exceptions (X::Syntax::Regex::SolitaryQuantifier and X::Syntax::Term::MissingInitializer)
19:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/86dc3c60f7
19:02 psch m: say '\x0\qqx50'
19:02 bartolin wow, thanks moritz++
19:02 masak so, let me get this straight.
19:02 camelia rakudo-moar a6f181: OUTPUT«(timeout)»
19:02 masak bartolin++ asked us to live up to the deal we established yesterday.
19:02 psch timotimo: something like that.  i think it's still delimited
19:02 anaeem1 joined #perl6
19:02 masak and #perl6 did, within 10 minutes.
19:03 masak wow, that's what I call service.
19:03 Mso150_x joined #perl6
19:03 bartolin #perl6++
19:03 moritz m: token a { * }
19:04 camelia rakudo-moar a6f181: OUTPUT«(timeout)»
19:04 masak bartolin: let's do this again sometime! :D
19:05 timotimo b2gills: i'm glad you fixed the enum thing :)
19:09 pmichaud masak: ping
19:09 masak pmichaud: pong
19:09 pmichaud I don't understand the response to rt #99658
19:09 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=99658
19:09 pmichaud according to my tests, the sequence is already lazy.
19:09 masak oh!
19:10 virtualsue_ joined #perl6
19:10 pmichaud has been... like, forever.
19:10 itz_ joined #perl6
19:10 pmichaud r:  my @a = 1, 3, 5 ... *;   say @a[7];
19:10 pmichaud bleh
19:10 camelia rakudo-{parrot,moar} a6f181: OUTPUT«15␤»
19:10 masak so far, so good.
19:10 pmichaud there.
19:10 masak what about with s/\*/8/ ?
19:11 masak which was what the original requestor was asking about.
19:11 pmichaud in that case it's not lazy, because the system has no way to know it'll be infinite
19:11 masak that's what I was agreeing with bartolin about!
19:11 masak so I guess now you understand my response ;)
19:12 pmichaud okay, I get it.
19:12 bartolin maybe my second to last example was misleading?
19:12 pmichaud I thought you were referring to the ... * case not being detectable.
19:12 masak no, that one is fine.
19:12 masak the requestor was complaining about ... * differing from ... 8
19:12 pmichaud right.
19:13 pmichaud at the time the ticket was written, I don't think we were detecting *-infinities
19:13 masak then I don't know why the requestor was complaining about the discrepancy
19:13 pmichaud and the synopsis isn't all that rigorous when it talks about "infinite lists"
19:13 pmichaud well, Perl 6 knows that assignment of an infinite list has to be lazy
19:14 pmichaud but the synopsis also says (said) that    1,3,5 ... 8   will produce an "infinite list"
19:14 pmichaud anyway, it can stand as-is for now, and I agree with your response.  thanks.
19:14 masak \o/
19:16 kurahaupo joined #perl6
19:17 Alula joined #perl6
19:17 PerlJam Should there be tests so that the current behavior can confirmed the same with the GLR?
19:21 pmichaud I suspect the tests exist already.
19:21 FROGGS[mobile] joined #perl6
19:22 pmichaud well, looks like there's an advent test for it  (2009 day 23)
19:23 pmichaud I don't see a regular test.
19:25 dalek rakudo/nom: 0a7de34 | grondilu++ | src/core/operators.pm:
19:25 dalek rakudo/nom: use for loop instead of while in SEQUENCE
19:25 dalek rakudo/nom:
19:25 dalek rakudo/nom: This avoids side effects:
19:25 dalek rakudo/nom:
19:25 dalek rakudo/nom:    my @abc = ^10; my @ = @abc ... 4; say @abc;
19:25 dalek rakudo/nom:
19:25 dalek rakudo/nom: See IRC log for this day.
19:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0a7de34340
19:25 dalek rakudo/nom: d792a22 | grondilu++ | src/core/operators.pm:
19:25 dalek rakudo/nom: using binding for better performance
19:25 dalek rakudo/nom:
19:25 dalek rakudo/nom: There were concerns about loss of performance with for loop instead of while/shift.  A binding instead of an affectation might help.
19:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d792a2204e
19:25 dalek rakudo/nom: 8d0294b | moritz++ | src/core/operators.pm:
19:25 dalek rakudo/nom: Merge pull request #273 from grondilu/patch-2
19:25 dalek rakudo/nom:
19:25 dalek rakudo/nom: use for loop instead of while in SEQUENCE
19:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d0294b54f
19:26 timotimo wait, for loops are more performant than while loops by now? :)
19:26 moritz timotimo: nope
19:27 moritz timotimo: the 'for' loop was for correctness
19:27 timotimo oh
19:27 timotimo side effects vs binding, misread
19:29 pmichaud yeah, there was definitely a binding issue there.
19:30 dalek Inline-Perl5/create_used_packages: b290f89 | nine++ | / (2 files):
19:30 dalek Inline-Perl5/create_used_packages: Create a Perl 6 package for use'd Perl 5 modules.
19:30 dalek Inline-Perl5/create_used_packages:
19:30 dalek Inline-Perl5/create_used_packages: Allows:
19:30 dalek Inline-Perl5/create_used_packages: BEGIN $p5.use('Data::Dumper');
19:30 dalek Inline-Perl5/create_used_packages: my $dumper = Data::Dumper.new(perl5 => $p5, [{a => 1}]);
19:30 dalek Inline-Perl5/create_used_packages: say $dumper.Dump;
19:30 dalek Inline-Perl5/create_used_packages: review: https://github.com/niner/Inline-Perl5/commit/b290f895ae
19:30 nine_ Any comments on this ^^^ greatly appreciated!
19:30 dalek roast: 11ec63a | usev6++ | S13-overloading/operators.t:
19:30 dalek roast: Add test for RT #119473
19:30 dalek roast: review: https://github.com/perl6/roast/commit/11ec63aadd
19:30 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=119473
19:30 gtodd masak: hmm << >>  is cool and simple ... now I want to slurp files that are arranged in tables like that in @arrays... (and not bother splitting or using regex or grammar or tokens or using a module or ...) ... and then have at them and munge
19:31 psch STable conflict detected during deserialization.
19:31 psch (Probable attempt to load two modules that cannot be loaded together).
19:31 nine_ Does it look useful? Is the implementation somewhat sane? Can I somehow get rid of the perl5 parameter of new?
19:31 psch ...yep
19:31 psch i need to continue with this somewhen else
19:32 vendethiel joined #perl6
19:33 PerlJam nine_: you could get rid of the parameter by using a dynamic var perhaps?
19:33 moritz nine_: if such a module is precompiled, I don't see how $p5 could be serialized
19:34 dalek Perlito: c96ce25 | (Flavio S. Glock)++ | / (2 files):
19:34 dalek Perlito: Perlito5 - js - bugfix in "goto" emitter
19:34 dalek Perlito: review: https://github.com/fglock/Perlito/commit/c96ce25fb4
19:34 noganex_ joined #perl6
19:35 moritz nine_: one thing I could imagine is doing only a stub at compile time, and the stub wouldn't need the $p5
19:35 nine_ moritz: but where would the real code get $p5 from?
19:36 moritz nine_: well, that has to come from somewhere; either pass it as an argument, or require it in a contextual or a global
19:37 moritz nine_: none of those sound really satisfactory to me
19:38 nine_ I also played around with a parametric role, but that wouldn't let me override new
19:39 vendethiel- joined #perl6
19:41 masak moritz: I just use `my @.entries` in actual code instead of `my @entries; method entries { @.entries }`
19:41 masak moritz: first time I had a use for `my` + accessor. but it felt really right to reach for it.
19:41 vendethiel- masak: it's not the saaaaame. or is it?
19:41 masak TimToady++
19:41 masak vendethiel-: it is.
19:41 masak m: class A { my @.foo; }; A.foo.push("OH"); A.new.foo.push("HAI"); say A.foo.perl
19:42 vendethiel- masak: ooh. I thought myes were class-shared :) mb
19:42 dalek roast: 3b36aad | moritz++ | S19-command-line/dash-e.t:
19:42 dalek roast: fix fudging syntax error
19:42 dalek roast: review: https://github.com/perl6/roast/commit/3b36aad024
19:42 masak vendethiel-: they are.
19:42 Akagi201 joined #perl6
19:42 camelia rakudo-moar a6f181: OUTPUT«Array.new("OH", "HAI")␤»
19:42 masak vendethiel-: which is how I'm using it here.
19:42 vendethiel- ah. I misread.
19:42 vendethiel- I had no idea you could `my TWIGIL` :o)
19:43 masak AFAIR, moritz has gone on record not liking it. I've always been vaguely positive.
19:43 masak having just had a use case for it, I'm more than just vaguely positive.
19:43 moritz m: say ~&say
19:43 camelia rakudo-moar a6f181: OUTPUT«Code object coerced to string (please use .gist or .perl to do that)  in block <unit> at /tmp/nhfmFwv2YM:1␤␤say␤»
19:43 moritz why is that?
19:44 moritz I mean, stringify works fine, no?
19:44 moritz before, when I tried to stringify something, I could check for .defined, and if it was true, I could just stringify
19:44 moritz now I have to check for Callable too?
19:44 mauke m: say &say.perl
19:44 camelia rakudo-moar a6f181: OUTPUT«sub say (Any |) { #`(Sub|50185952) ... }␤»
19:45 masak moritz: see https://github.com/rakudo/rakudo/commit/af5df3e052e93995bf2389483853a2aec1e26c93
19:45 masak maybe more hints can be found in the backlog of Aug 15...?
19:46 bartolin moritz: one question about the follow-up with a new typed exception in Rakudo: Is it correct to update all tests which now fail because of the changed exception type as soon as the typed exception has landed in rakudo?
19:46 moritz bartolin: yes
19:46 moritz bartolin: but it's never right to check for X::AdHock in the first place
19:47 moritz bartolin: if you want to write a test that works, but will continue to work when there's a specific exception type, use Exception to check against
19:48 bartolin that makes a lot of sense, thanks!
19:49 masak m: class A { my @.foo handles <push> }; A.push("OH", "HAI"); say A.foo
19:49 camelia rakudo-moar a6f181: OUTPUT«(timeout)»
19:49 bartolin (sounds like a new task "adjust tests in roast which check against X::AdHoc to check against Exception)
19:50 masak locally: "Cannot call 'trait_mod:<handles>'; none of these signatures match" (Attribute, Method)
19:50 moritz good Google Code-In task, unless somebody else does it first
19:51 masak am I greedy for wanting `my` + twigil + `handles` to work?
19:51 masak is that even theoretically possible?
19:51 masak it would be so awesome.
19:52 kurahaupo joined #perl6
19:52 moritz TimToady: any reason why your new test in t/spec/S04-statements/return.t doesn't use eval_dies_ok or throws_like ?
19:52 ghostlines joined #perl6
19:54 dalek roast: ba89213 | moritz++ | S04-statements/return.t:
19:54 dalek roast: fudge new test for rakudo
19:54 dalek roast: review: https://github.com/perl6/roast/commit/ba892132ff
19:55 dalek roast: b99fd2d | moritz++ | S32-exceptions/misc.t:
19:55 dalek roast: Fix exception type
19:55 dalek roast: review: https://github.com/perl6/roast/commit/b99fd2d689
19:55 bartolin moritz: oh, was not fast enough ;-)
19:58 moritz I just did a spectest and had failures in 5 files
19:58 moritz and I thought "oh my god, I should have spectested each pull request individually"
19:58 moritz turns out two were flappers, and two new tests
19:59 bartolin sorry for part of the trouble
19:59 raydiak moritz: "15:35:38*  TimToady | for some reason eval_dies_ok doesn't work there, had to use try EVAL"
20:00 moritz oh
20:01 moritz because it's a routine
20:01 masak shouldn't it be EVAL_dies_ok these days? :/
20:02 jnthn masak: my @.foo supporting handles is a cute idea at least. It's not entirely straightforward.
20:03 jnthn masak: But feasible with effort.
20:03 masak developer torment? sounds like... a job for Perl 6! :P
20:03 jnthn No objections to filing a TODO ticket for it.
20:03 tadzik developer, is that a new dnd setting? :P
20:03 masak what's the saying again: "tormenting developers just for the sake of it"
20:03 tadzik I only heard of Planescape: Torment before
20:03 * masak submits TODO ticket
20:04 raydiak is there a way to interpolate an array into a regex as an alternation of subrules instead of literals?
20:04 jnthn Doesn't <@foo> do it?
20:05 FROGGS[mobile] joined #perl6
20:05 jnthn m: my @a = < .. .+ >; say 'abcd' ~~/ <@a> /
20:05 bartolin moritz: and one (hopefully) last question: should a new typed exception be added to S02-types/WHICH.t?
20:05 camelia rakudo-moar 86dc3c: OUTPUT«「abcd」␤␤»
20:06 virtualsue joined #perl6
20:06 raydiak thanks jnthn++ dunno how I missed that
20:07 moritz bartolin: dunno, I find that test file to be not very important
20:07 moritz bartolin: perl6/specs and perl6/doc is much more important IMHO
20:07 masak TODO ticket filed: https://rt.perl.org/Ticket/Display.html?id=122991
20:07 bartolin moritz: ah perl6/doc as well. (at least I had perl6/specs on my list ;-)
20:11 Mouq joined #perl6
20:11 raydiak okay, maybe this one will be harder: how do I interpolate an array *element* as a subrule? or is it necessary to assign it to a scalar first?
20:11 raydiak m: my @a = token {.+}; ("foo" ~~ /<@a[0]>/).perl.say
20:11 camelia rakudo-moar 86dc3c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/9RcI5wZhxQ�Unable to parse expression in metachar:sym<assert>; couldn't find final '>' �at /tmp/9RcI5wZhxQ:1�------> [32mmy @a = token {.+}; ("foo" ~~ /<@a[33m�[31m[0]>/).perl.say[0m�»
20:12 moritz if it's already a rule, @a[0] should work
20:12 Mouq m: my @a = token {.+}; ("foo" ~~ /@a[0]/).perl.say
20:12 camelia rakudo-moar 86dc3c: OUTPUT«Potential difficulties:â�¤    Apparent subscript will be treated as regexâ�¤    at /tmp/l4odDajQha:1â�¤    ------> [32mmy @a = token {.+}; ("foo" ~~ /@a[33mâ��[31m[0]/).perl.say[0mâ�¤Nilâ�¤Â»
20:12 Mouq m: my @a = token {.+}; ("foo" ~~ /<{@a[0]}>/).perl.say
20:12 camelia rakudo-moar 86dc3c: OUTPUT«Match.new(orig => "foo", from => 0, to => 3, ast => Any, list => ().list, hash => EnumMap.new())␤»
20:13 mauke it's perl5 all over again
20:13 raydiak thanks Mouq++
20:13 moritz m: my @a = token {.+}; say "foo" ~~ / @a[0] /
20:13 camelia rakudo-moar 86dc3c: OUTPUT«Potential difficulties:â�¤    Apparent subscript will be treated as regexâ�¤    at /tmp/wyLzzkJE9H:1â�¤    ------> [32mmy @a = token {.+}; say "foo" ~~ / @a[33mâ��[31m[0] /[0mâ�¤Nilâ�¤Â»
20:15 masak mauke: what is?
20:17 mauke <@a[0]> parsing differently from <$a>, subscripts being ambiguous in a regex, needing { } to disambiguate
20:17 njmurphy joined #perl6
20:19 Mouq mauke: It's not ambiguous; it's parsed as @a [0] and outputs a warning :P
20:19 masak m: class A { my ::?CLASS @.foo }; A.foo.push(2)
20:19 camelia rakudo-moar 86dc3c: OUTPUT«(timeout)»
20:19 masak locally, "Type check failed in .push; expected 'A' but got 'Int'"
20:19 masak (wow)
20:20 masak lizmat++ jnthn++, no doubt
20:20 Mouq But maybe we should consider having quote-like variable interpretation in regexes?
20:20 timotimo masak: are they to blame for this? :)
20:21 masak timotimo: it's amazing! it recognizes `A` as the current class, *and* it typechecks against it on .push
20:21 masak timotimo: woot!
20:21 timotimo that *is* neat.
20:21 mauke Mouq: how is that not ambiguous?
20:22 jnthn masak: Note it's more useful use is in roles, where ::?CLASS is generic.
20:22 masak jnthn: I'm just about to factor my current code into a role :>
20:23 itz joined #perl6
20:23 masak aww.
20:24 masak ===SORRY!===
20:24 masak No such method 'instantiate_generic' for invocant of type 'Array[::?CLASS]'
20:24 jnthn Awww :(
20:24 Mouq mauke: Mm, okay, I'll concede. I was thinking amiguous in that the spec decided it's too amiguous to allow
20:24 masak this... might be rakudobuggable.
20:24 masak hold on.
20:24 vendethiel- masak: code :P ?
20:25 dalek rakudo/nom: 1059957 | (Pepe Schwarz)++ | src/Perl6/Actions.nqp:
20:25 dalek rakudo/nom: Make flipflop smartmatch against $_ instead of calling .Bool.
20:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1059957a62
20:25 dalek rakudo/nom: dfb3e7a | moritz++ | src/Perl6/Actions.nqp:
20:25 dalek rakudo/nom: Merge branch 'smartmatch_flipflop' of https://github.com/peschwa/rakudo into nom
20:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dfb3e7a8c9
20:25 masak m: role R { my ::?CLASS @.x }; class C does R {}; say "alive"
20:25 masak locally: "No such method 'instantiate_generic' for invocant of type 'Array[::?CLASS]'"
20:26 camelia rakudo-moar 86dc3c: OUTPUT«(timeout)»
20:26 masak jnthn: any non-torment reason that shouldn't be possible?
20:26 masak m: role R { my ::?CLASS $.x }; class C does R {}; say "alive"
20:27 masak locally: "alive"
20:27 camelia rakudo-moar 86dc3c: OUTPUT«(timeout)»
20:28 masak if I remove the ::?CLASS type constraint, using a role still works.
20:29 psch $ ./perl6 -/h
20:29 psch >
20:29 psch hah
20:29 moritz timotimo: what's the state of https://github.com/rakudo/rakudo/pull/171 ? do you want to resolve the conflict(s), and merge yourself?
20:30 psch unfortunately my branch doesn't run in the harness anymore it seems
20:30 psch it does nothing, no cpu load, no progress
20:30 timotimo didn't someone (mouq?) make lol stuff much better recently?
20:31 timotimo i mean in combination with postcircumfix:<[ ]>
20:31 masak m: role R { has ::?CLASS @.x }; class C does R {}; say "alive"
20:31 timotimo or was that just for actually putting in the lol directly with the lol keyword?
20:31 colomon joined #perl6
20:31 masak locally: "alive"
20:31 camelia rakudo-moar 86dc3c: OUTPUT«(timeout)»
20:32 masak so it's only in the very specific case of `my` + `::?CLASS` + `@` that it blows up...
20:32 masak oh, and `role`
20:32 jnthn masak: It's the "my" that does it
20:32 jnthn masak: I think it's fixable
20:32 masak nice.
20:32 * masak submits rakuodbug
20:33 jnthn Well, I'd not say it'll be nice to fix, but... :P
20:33 jnthn m: sub foo(::T $x) { my T @a; }; foo(42)
20:33 camelia rakudo-moar 86dc3c: OUTPUT«No such method 'instantiate_generic' for invocant of type 'Array[T]'␤  in sub foo at /tmp/H_CQC3prDZ:1␤  in block <unit> at /tmp/H_CQC3prDZ:1␤␤»
20:33 jnthn Hah, gulf. :)
20:34 masak :)
20:34 masak but `my`, type parameter, and `@` sigil are still essential, yes?
20:34 muraiki joined #perl6
20:34 jnthn Yes, but it can be a type parameter of a role or the sub
20:34 colomon moritz++
20:35 masak right, so `role` wasn't essential like I thought.
20:35 psch moritz++ # PRs and fudge fix
20:35 masak m: sub foo(::T, T @a) {}; foo(42, [])
20:36 camelia rakudo-moar 86dc3c: OUTPUT«(timeout)»
20:37 psch good night, #perl6 o/
20:38 denis_boyun_ joined #perl6
20:41 masak m: sub foo(::T $x) { my T %h; }; foo(42)
20:41 camelia rakudo-moar 86dc3c: OUTPUT«(timeout)»
20:42 masak locally, "No such method 'instantiate_generic' for invocant of type 'Hash[T]'"
20:43 kurahaupo joined #perl6
20:43 jnthn Right, it'll be same underlying thing
20:49 kjs_ joined #perl6
21:01 Hor|zon joined #perl6
21:06 FROGGS[mobile] joined #perl6
21:14 masak somehow ended up filing three new rakudobugs today.
21:14 masak and two yesterday.
21:14 bartolin \o/
21:15 masak I blame bartolin++ ;)
21:15 bartolin but you closed a few as well!
21:15 masak balance++
21:16 masak 'night, #perl6
21:16 bartolin gnight
21:19 kjs_ joined #perl6
21:19 timotimo i still can't launch farabi6 :\
21:20 gtodd m: my @A = ( [< 1 2 3 4 5 >], [< 12 34 45 56 78>] ) ; say @A[*;2]
21:20 camelia rakudo-moar 86dc3c: OUTPUT«3 45␤»
21:23 gtodd is there a way to add those those numbers using that approach ?  Z+
21:23 timotimo sounds like [+] to me
21:23 gtodd oh right add all the columns  ...
21:24 timotimo you want to add up all columns?
21:24 gtodd I coudln't see how to do it with anon arrays in the array
21:24 pmichaud m: my @a = ( [< 1 2 3 4 5 >], [< 12 34 56 78 90 >] );  say @A[*;2].perl
21:24 camelia rakudo-moar 8d0294: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/L39a8kTWvkâ�¤Variable '@A' is not declaredâ�¤at /tmp/L39a8kTWvk:1â�¤------> [32m< 12 34 56 78 90 >] );  say @A[*;2].perl[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤Â»
21:24 pmichaud m: my @a = ( [< 1 2 3 4 5 >], [< 12 34 56 78 90 >] );  say @a[*;2].perl
21:24 camelia rakudo-moar 8d0294: OUTPUT«("3", "56")␤»
21:25 pmichaud hrm.
21:25 pmichaud m: my @a = ( [< 1 2 3 4 5 >], [< 12 34 56 78 90 >] );  say @a[*;2,3].perl
21:25 camelia rakudo-moar 8d0294: OUTPUT«(("3", "4"), ("56", "78"))␤»
21:26 gtodd it's cool but I thought I could make operators do things to it :-)
21:26 pmichaud m: my @a = ( [< 1 2 3 4 5 >], [< 12 34 56 78 90 >] );  say [Z] @a[*;2,3]
21:26 camelia rakudo-moar 8d0294: OUTPUT«3 4 56 78␤»
21:26 pmichaud m: my @a = ( [< 1 2 3 4 5 >], [< 12 34 56 78 90 >] );  say ([Z] @a[*;2,3]).perl
21:26 camelia rakudo-moar 8d0294: OUTPUT«(("3",), ("4",), ("56",), ("78",)).list␤»
21:27 pmichaud probably need some spec clarity there.
21:27 jnthn m: my @a = [< 1 2 3 4 5 >], [< 12 34 56 78 90 >]; say @a>>.reduce(&[+])
21:27 camelia rakudo-moar 8d0294: OUTPUT«15 270␤»
21:27 gtodd ok then :-)
21:28 jnthn That's the shortest I can immediately think of.
21:28 jnthn m: my @a = [< 1 2 3 4 5 >], [< 12 34 56 78 90 >]; say @a>>.reduce(*+*) # shorter I guess
21:28 camelia rakudo-moar 8d0294: OUTPUT«15 270␤»
21:28 gtodd :-D
21:29 jnthn Though I kinda prefix the first
21:29 jnthn uh, *prefer* the first...
21:29 gtodd I thought I could figure out how to add the "columns" (1+12) (2+34) etc
21:30 jnthn Oh...
21:30 jnthn Sorry, I misunderstood columns :)
21:30 timotimo it seems like you'll X+ |@a in that case?
21:30 gtodd AoA and the anon [ ] inside stumped me ... there's roundabout way to do it but ...
21:30 gtodd ah OK
21:31 gtodd trying that next :-D
21:31 jnthn m: my @a = [< 1 2 3 4 5 >], [< 12 34 56 78 90 >]; say [>>+<<] @a
21:31 camelia rakudo-moar 8d0294: OUTPUT«13 36 59 82 95␤»
21:31 dalek roast: 0c4dac7 | usev6++ | / (37 files):
21:31 dalek roast: Check for Exception instead for X::AdHoc
21:31 dalek roast: when using throws_like
21:31 dalek roast: review: https://github.com/perl6/roast/commit/0c4dac7cb6
21:31 gtodd \o/
21:32 gtodd [>>+<<]  that is what I wanted!!!
21:32 gtodd wheee
21:32 gtodd not [+]
21:32 timotimo ah
21:33 breinbaas hi.  I'm struggling a bit with install of a perl6 and its database access module, DBIsh
21:33 gtodd no need to do columnish things that way ... can do the columnn stuff after the arithmetic
21:33 pat_js joined #perl6
21:34 breinbaas I installed perl6 and I seem to have panda now as well, but any  panda install DBIsh  complains "could not find Shell::Command ..."
21:36 breinbaas so tried:  panda install Shell::Complain  but with same error.  I'm clearly missing something :)
21:36 breinbaas oops:  Shell::Command
21:37 timotimo panda needs Shell::Command to run at all :o
21:37 timotimo did you install a Rakudo Star?
21:38 breinbaas I downloaded from the git repo
21:38 gtodd jnthn: so add the "5th column" ( [>>+<<] @A )[4]  ... I think I was mesmerized by the awesomeness of "@A[*;2]"
21:38 timotimo breinbaas: you got yourself "rakudo/rakudo" from github?
21:39 gtodd I find "@A[*;2]"  so amazing that I think I have to use it but it is just another nice little "featurette"
21:39 timotimo maybe you have more than one rakudo on your system?
21:39 timotimo if you clone tadzik/panda and ./rebootstrap.pl you should get a working panda
21:39 breinbaas timotimo: git clone git://github.com/rakudo/rakudo.git
21:40 timotimo that shouldn't give you a panda
21:40 breinbaas timotimo: ah ok, I didn't do that yet, I'll try that, thanks
21:40 timotimo and if you built that rakudo and installed it to where your system looks for it, that should actually explode properly
21:40 timotimo which is why i think you have more than one rakudo
21:41 timotimo "make install" will install that rakudo to whatever --prefix= you supplied to Configure.pl - if you didn't supply any, it'll be in rakudo/install
21:41 breinbaas I build it every now and then but I now deleted everything before the rebuild, I think
21:42 timotimo hm, ok
21:42 breinbaas I did:  perl Configure.pl --gen-parrot --gen-moar --gen-nqp --backends=parrot,jvm,moar
21:42 breinbaas then   make && make test && make install
21:42 timotimo hmm, haven't built a rakudo-parrot or jvm in a long-ish time
21:43 breinbaas what's the preferred backend?
21:43 breinbaas moar then :)
21:44 timotimo yeah :)
21:46 breinbaas I'll just experiment some more, thank you
21:46 timotimo have fun! :)
21:47 breinbaas I hear perl6 became faster so I'nm curious about the db access :)
21:47 dalek nqp: 736f36a | TimToady++ | src/QRegex/NFA.nqp:
21:47 dalek nqp: calculate literal lengths
21:47 dalek nqp:
21:47 dalek nqp: We don't install lit length in the fates yet because this apparently
21:47 dalek nqp: blows up earlier stages of nqp build for some reason, so we'll wait till
21:47 dalek nqp: we rebootstrap stage0 for other reasons and see if it works then.
21:47 dalek nqp: review: https://github.com/perl6/nqp/commit/736f36a416
21:47 dalek nqp: f9c9461 | TimToady++ | src/QRegex/NFA.nqp:
21:47 dalek nqp: tabs -> spaces fixup
21:47 dalek nqp: review: https://github.com/perl6/nqp/commit/f9c9461dfd
21:47 j4jackj joined #perl6
21:49 timotimo good old circularity saw ...
21:49 timotimo breinbaas: we've been getting pretty nice performance improvements in over the last months
21:49 timotimo breinbaas: you may have heard talk of the "Great List Refactor", which is going to make our lists (both lazy and eager) better and faster
21:50 breinbaas timotimo: nice, there surely will be some trickle-down of that in the db access too ;)
21:51 timotimo sounds possible
21:51 breinbaas does this look ok?   perl Configure.pl --gen-parrot --gen-moar --gen-nqp --backends=moar    # still need that  --gen-parrot ?
21:51 timotimo don't need --gen-parrot
21:51 breinbaas ok
21:51 timotimo personally, i'm excited by the prospect of actually jitting a native call invocation into an actual regular native call
21:52 timotimo rather than going through the completely dynamic thingie that does it for regularly interpreted code
21:53 timotimo but also the jit is refusing some amount of frames because our parameter handling isn't awesome yet
21:59 _slade_ joined #perl6
22:01 Hor|zon joined #perl6
22:02 Mouq joined #perl6
22:21 breinbaas ok, rebuilt everything, works now.  Thanks!   ( you were right, there was an old panda/ dir )
22:23 denis_boyun_ joined #perl6
22:29 vendethiel joined #perl6
22:42 erkan joined #perl6
22:42 erkan joined #perl6
22:50 guru joined #perl6
22:53 [Coke] anyway to tell rakudo's configure to build nqp and moar with -jX ?
22:54 Srt left #perl6
23:24 Hor|zon joined #perl6
23:30 araujo joined #perl6
23:30 dalek rakudo/nom: 7c0c1b6 | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
23:30 dalek rakudo/nom: Make sure we can from/removed obsolete vars also
23:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7c0c1b660c
23:30 dalek rakudo/nom: 90fbcd7 | (Elizabeth Mattijsen)++ | src/core/ (13 files):
23:30 dalek rakudo/nom: Put from/removed info on current Deprecations
23:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90fbcd7261
23:30 dalek rakudo/nom: 0dcd0d6 | (Elizabeth Mattijsen)++ | src/core/Label.pm:
23:30 dalek rakudo/nom: Remove reference to obsolete $*OS
23:30 dalek rakudo/nom:
23:30 dalek rakudo/nom: $*DISTRO.is-win is what we really wanted
23:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0dcd0d6e9e
23:31 adu joined #perl6
23:34 woolfy left #perl6
23:36 woolfy joined #perl6
23:36 adu joined #perl6
23:37 BenGoldberg joined #perl6
23:43 dalek roast: 7f2ba11 | (Elizabeth Mattijsen)++ | S02-types/deprecations.t:
23:43 dalek roast: Adapt deprecation messages to new format
23:43 dalek roast: review: https://github.com/perl6/roast/commit/7f2ba115a6
23:44 lizmat good night, #perl6!
23:48 gtodd night!
23:48 gtodd lizmat: will ask you a question about error messages after I figure out a bit more where they come from
23:49 gtodd maybe tomorrow

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

Perl 6 | Reference Documentation | Rakudo