[00:05] *** LLamaRider left [00:12] *** berekuk left [00:15] *** pippo left [00:15] *** kivutar left [00:20] *** spider-mario left [00:21] *** dmol left [00:21] r: say ([[1,2,3],[4,5,6],[7,8,9]]»[1]).perl [00:22] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«(2, 5, 8)␤» [00:22] *** berekuk joined [00:22] r: say (-»[[1,2,3],[4,5,6],[7,8,9]]»[1]).perl [00:22] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Preceding context expects a term, but found infix - instead␤at /tmp/tmpfile:1␤------> say (-⏏»[[1,2,3],[4,5,6],[7,8,9]]»[1])…» [00:22] r: say (-«[[1,2,3],[4,5,6],[7,8,9]]»[1]).perl [00:22] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«(-2, -5, -8)␤» [00:23] heh [00:23] *** Grrrr joined [00:25] r: say ([[1,2,3],[4,5,6],[7,8,9]]».&prefix:<->).perl [00:25] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«(-3, -3, -3)␤» [00:25] (doesn't know about nodal yet) [00:29] *** simcop2387 joined [00:32] *** berekuk left [00:33] *** berekuk joined [00:40] *** mavcunha joined [00:41] *** stevan_ joined [00:43] *** stevan_ left [00:43] *** stevan_ joined [00:43] *** mavcunha left [00:44] *** berekuk left [00:45] *** berekuk joined [00:47] *** ilbot3 joined [00:52] *** tgt joined [00:52] *** xenoterracide left [00:53] *** denis_boyun_ left [00:53] *** _thou left [00:56] *** berekuk left [00:57] *** berekuk joined [00:57] *** tgt left [01:07] *** berekuk left [01:08] *** berekuk joined [01:15] *** hoverboard joined [01:18] *** berekuk left [01:19] *** Guest50972 left [01:19] *** araujo joined [01:19] *** berekuk joined [01:30] *** berekuk left [01:31] *** berekuk joined [01:36] *** benabik joined [01:42] *** berekuk left [01:43] *** berekuk joined [01:52] *** tgt joined [01:54] *** berekuk left [01:55] *** berekuk joined [01:57] *** tgt left [02:03] *** FROGGS_ joined [02:05] *** berekuk left [02:06] *** berekuk joined [02:07] *** FROGGS left [02:16] *** berekuk left [02:17] *** berekuk joined [02:24] *** kurahaupo_mobile left [02:27] *** berekuk left [02:28] *** berekuk joined [02:39] *** berekuk left [02:40] *** berekuk joined [02:41] *** xinming joined [02:44] *** xinming_ left [02:48] the codepoints actually start to get off after 0x33ff, so it's also a problem in the BMP [02:48] *** klapperl_ joined [02:49] m: say "\c[HEXAGRAM FOR THE CREATIVE HEAVEN]".ord.base(16) [02:49] rakudo-moar da53ec: OUTPUT«4DCA␤» [02:49] that should be 4DC0 [02:49] *** xinming_ joined [02:50] *** berekuk left [02:51] *** berekuk joined [02:51] *** klapperl left [02:53] *** xinming left [02:56] *** xinming joined [02:58] *** xinming_ left [03:01] *** berekuk left [03:02] *** xinming_ joined [03:02] *** berekuk joined [03:03] *** xinming left [03:13] *** berekuk left [03:13] *** dayangkun joined [03:14] *** berekuk joined [03:17] *** dayangkun left [03:18] *** dayangkun joined [03:22] *** xinming joined [03:24] *** berekuk left [03:24] *** xinming_ left [03:25] *** berekuk joined [03:29] *** segomos_ left [03:30] *** telex left [03:32] *** telex joined [03:36] *** berekuk left [03:36] *** rurban1 joined [03:37] *** berekuk joined [03:40] *** segomos joined [03:47] *** berekuk left [03:47] *** btyler joined [03:48] *** berekuk joined [03:59] *** berekuk left [04:00] *** berekuk joined [04:10] *** berekuk left [04:11] *** berekuk joined [04:15] *** sivoais left [04:19] *** xinming left [04:20] *** xinming joined [04:21] *** berekuk left [04:22] *** berekuk joined [04:27] *** sivoais joined [04:33] *** berekuk left [04:34] *** berekuk joined [04:45] *** berekuk left [04:46] *** berekuk joined [04:49] *** SamuraiJack joined [04:56] *** SamuraiJack left [04:56] *** berekuk left [04:57] *** berekuk joined [04:58] *** sivoais left [04:58] *** sivoais joined [04:59] *** grondilu left [05:07] *** berekuk left [05:07] *** skids left [05:08] *** berekuk joined [05:10] *** xinming_ joined [05:12] *** xinming_ left [05:13] *** xinming left [05:15] *** xinming joined [05:18] *** JumpingJackal joined [05:19] *** berekuk left [05:19] *** _thou joined [05:20] *** berekuk joined [05:27] *** sivoais left [05:28] *** sivoais joined [05:29] *** btyler left [05:30] *** berekuk left [05:31] *** berekuk joined [05:42] *** berekuk left [05:43] *** berekuk joined [05:53] *** berekuk left [05:54] *** berekuk joined [06:00] *** xinming_ joined [06:03] *** xinming left [06:04] *** berekuk left [06:05] *** berekuk joined [06:06] r: say "\c[CUNEIFORM SIGN AB2]" [06:06] rakudo-moar da53ec: OUTPUT«𠥒␤» [06:06] ..rakudo-jvm da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name CUNEIFORM SIGN AB2␤at /tmp/tmpfile:1␤------> say "\c[CUNEIFORM SIGN AB2⏏]"␤» [06:06] ..rakudo-parrot da53ec: OUTPUT«𒀖␤» [06:06] *** xinming_ left [06:08] *** xinming joined [06:11] I suspect that camelia is running with a detached head or an otherwise obsolete version of MoarVM (and maybe nqp too) [06:11] TimToady: is there a known pattern to moar's wrongness, aside from it starting with U+3400 ? [06:11] after futzing with it all afternoon, I discovered if I switched branches to master, it works right [06:12] trouble is, you need --gen-moar=master and --gen-nqp=master or you get detached heads, apparently [06:13] *** donaldh left [06:14] I was like 70 some patches behind on moar :/ [06:14] I have moar on the flatten_fastpath branch (or whatever its precise name is), and I get 0x020952 from that CUNEIFORM SIGN. I assume this was fixed very recently then? [06:15] dunno [06:16] *** berekuk left [06:17] *** berekuk joined [06:18] *** donaldh joined [06:20] doing a complete rebuild on my other machine to verify [06:20] *** xinming_ joined [06:21] *** BenGoldberg left [06:21] *** xinming left [06:27] *** berekuk left [06:28] *** berekuk joined [06:30] huh, works on one of my machines, but not the other [06:32] huh, that other machine used a headless nqp, despite removing reconfiguring with a --gen-nqp=master [06:32] * TimToady doesn't get it [06:33] trying again after forcing nqp branch to master [06:37] *** xinming joined [06:38] *** berekuk left [06:40] *** xinming_ left [06:42] *** xinming_ joined [06:44] *** xinming left [06:45] wow, amazing how much cleaner the spectest is with working unicode... [06:49] the parsing CORE on moar seems to be running considerably slower though on master than on my detached head [06:49] from 78 seconds to 113 [06:52] huh, still fails on my other machine :/ [06:53] *** xinming joined [06:54] the unicode.c files are identical, so that's not the problem [06:56] *** xinming_ left [06:57] both machines are 64-bit Linux [07:02] oh, I think I'm running with a libmoar.so that's from when I was experimenting with turning off unicode compression [07:05] drat [07:06] *** slavik left [07:11] so is it worth blowing up libmoar.so from 3meg to 8meg just to get unicode to work temporarily? [07:12] could conceivably explain the slower compile too [07:12] maybe I should just find the bug... [07:35] *** ilogger2 joined [07:35] *** ChanServ sets mode: +v ilogger2 [07:38] *** darutoko joined [07:40] *** slavik joined [07:46] *** SamuraiJack joined [07:51] *** kshannon joined [07:52] *** FROGGS joined [07:58] *** xinming joined [08:02] *** sivoais joined [08:03] *** xinming left [08:08] *** xinming joined [08:10] *** zakharyas joined [08:11] *** xinming left [08:12] *** rurban1 joined [08:13] *** SamuraiJack_ joined [08:13] *** SamuraiJack left [08:16] *** xinming joined [08:20] *** rurban1 left [08:30] *** tadzik joined [08:33] *** xinming left [08:33] *** tgt joined [08:34] *** xinming joined [08:37] *** tadzik left [08:38] *** tadzik joined [08:38] something's very wrong with feather's connection [08:39] *** pdcawley joined [08:39] there's something wrong with connectivity in the state of Denmar^Wthe Netherlands? :-) [08:40] :) [08:50] *** SamuraiJack_ left [08:54] * moritz will be offline most of today and tomorrow [08:58] *** xinming left [09:00] *** k1lldash9 joined [09:00] *** xinming joined [09:00] *** k1lldash9 left [09:02] *** tgt left [09:10] *** kaleem_ joined [09:12] *** dakkar joined [09:15] *** dayangkun joined [09:15] *** kaleem joined [09:17] *** kaleem_ left [09:21] *** dmol joined [09:21] *** denisboyun joined [09:26] *** kaleem left [09:27] *** kaleem joined [09:32] *** xinming_ joined [09:34] o/ [09:35] *** xinming left [09:40] *** atroxaper joined [09:40] *** xinming joined [09:40] *** atroxaper left [09:40] the end of the month nears and no star releaser has stepped up, to my knowledge :| [09:43] *** xinming_ left [09:46] *** SamuraiJack_ joined [09:54] *** rindolf joined [09:56] *** WACHYYM joined [09:56] *** denisboyun left [09:57] https://gist.github.com/timo/8f9a5591cdb48dcd0ab1 :\ [09:59] *** SamuraiJack_ left [09:59] I like how the passing test before that is called "we didn't segfault" [09:59] famous last words. [09:59] "phew! that was a tought one... but we survived!" *death* [09:59] tough* [10:00] *** Maddingue joined [10:00] :) [10:01] also: 1 megabyte lost all in all, that's a lot :| [10:04] timotimo: The work sharing code in parallel GC hasn't been exercised on a real workload until now. [10:04] timotimo: It'd be more surprising if we didn't find bugs. [10:05] jnthn: so, should i assume my changes aren't to blame? this is with the string_pressure branch [10:06] timotimo: Oh. Hm. [10:06] timotimo: *Probably* not. Probably you just changed when GC happens. [10:06] I'll try and find time to review that branch (which I'd like to do before it gets merged) [10:07] sure, the change to gc_status is potentially dangerous [10:07] so you're definitely right to want to review it before merging [10:10] timotimo: what test file is this? [10:10] threads.rakudo.moar.t [10:11] k [10:11] *** atroxaper joined [10:12] Good morning, #perl6 ! [10:12] hi atroxaper [10:12] FROGGS: Hi! [10:13] hi there :) [10:14] *** mavcunha joined [10:14] I have a bussiness trip to Paris for two months from my Siberia.) [10:14] timotimo: Hi! [10:15] Paris is really nice) [10:16] I'll just see Paris's airport in march [10:17] Hm, iirc I've been in Siberia more recently than I've been in Paris :) [10:19] jnthn: where in Siberia? [10:22] morning, atroxaper. [10:22] atroxaper: I can tell you're from Russia, because you close your parens but you do not open them :P [10:22] atroxaper: Novosibirsk last time, but I also have in my life done Trans-Sib railway )) [10:22] * masak .oO( Russians only open parens when they're sad ) [10:23] atroxaper: So been many places. [10:24] jnthn: I live in Novodibirsk. Tell me if you are going to visit it again. [10:26] masak: Is only russians do so? [10:27] masak: nice note. I'll remember it. ')' [10:28] atroxaper: yeah, it seems to be a Russian/slavic thing to not include the eyes of the smiley. [10:28] atroxaper: I still think it's reasonably avant-garde to get rid of the nose :) [10:28] atroxaper: Seen it used by Ukrainians also... It just doesn't surprise me any more... ) But masak seems creeped out by the eyelessness ;) [10:28] atroxaper: but you people go one step further! [10:29] not creeped out. just amused )))) [10:29] * masak gives atroxaper and jnthn some spare sets of eyes :::::::::: [10:29] * jnthn uses them to prevent backtracking in his regexes instead [10:29] bah! :o( [10:30] *** xinming_ joined [10:32] *** mavcunha left [10:32] *** mavcunha joined [10:34] *** xinming left [10:37] We not include eyes because multi parens for noting a grade of smile. Maybe ':)))' does't look well. On the other hand ':):):)' takes too many time. [10:38] Some people write '(:'. That really weird for me. [10:39] ☺ [10:39] ( ͡° ͜ʖ ͡°) [10:40] I have to backtrack to parse (:. I parse it as sad on the first char, then have to re-parse it as happy... :) [10:40] r: "( ͡° ͜ʖ ͡°)".chars.say [10:40] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«11␤» [10:40] hmm, I count 8 [10:42] *** kivutar joined [10:46] tadzik: me too. [10:46] tadzik: submit it! [10:46] clearly we should have a ( ͡° ͜ʖ ͡°) in RT :D [10:47] Need Flippin' Graphemes [10:48] those graphemes, how they flip. [10:49] n: "( ͡° ͜ʖ ͡°)".chars.say [10:49] niecza v24-109-g48a8de3: OUTPUT«11␤» [10:49] ha! [10:50] oh, no-ha [10:50] so maybe it's not wrong after all [10:50] I'd say it is. [10:50] if by .chars we mean "graphs". [10:50] * timotimo wishes to tackle https://questhub.io/realm/perl/quest/52d6ad48f6d329441a000089 today [10:51] which I *think* we do. [10:51] By default .chars means .graphs, I believe. [10:52] reported [10:55] tadzik++ [10:55] let's see what RT does with those characters :P [10:55] I'm mildly amused by my choice of words :) [10:57] *** donaldh joined [10:58] RT++ # renders the face quite nicely [11:01] * tadzik just noticed he bought a concert tickets for one of the PLPW days [11:06] maybe i'll think about how breakpoints for the "target code" could be implemented in the gdb support for moarvm [11:10] *** denisboyun joined [11:17] tadzik: can you have a look at that PR? [11:19] *** mtk joined [11:23] FROGGS: oh, by all means [11:23] humm? [11:23] *** atroxaper left [11:23] yes, I can have a look :) [11:24] ossum *g* [11:24] #69 would be important to merge also [11:26] I have mixed feelings about #69 [11:26] it looks like a workaround of sorts, for something I don't understand [11:26] I think I can explain [11:27] it is the same problem as like pushing to an array you are iterating lazily over [11:27] so in this can we create a .work dir in cwd, and then interating over cwd and the stuff that we created in that run [11:28] so fetching the dir list eagerly before we write to that dir seems very very sane [11:28] we should perhaps add a comment that says "eager evaluation needed here because we write to that directory" [11:31] ah! [11:31] of course [11:31] tell me: in moar-support, is compsuffix() used for anything? [11:32] since Builder moved to comptarget [11:32] ah, I see it now [11:32] you pass --target=mbc, but what you get out if .moarvm [11:32] is that so? [11:32] yes [11:32] target is mbc but fileext is moarvm [11:32] that's weird [11:33] but not my fault :o) [11:33] I know :) [11:33] well, we don't want to call it "moarvm byte code file" [11:33] because that's not really what it is [11:33] but --target=moarvm is even more confusing [11:34] maybe comptarget could be: if 'moar' { 'mbc' } else { compsuffix(@_) } [11:34] less code duplication [11:34] food& [11:35] hoelzro: do you know of any way to make vim cleverer about syntax highlighting beginning in the middle of a file? [11:39] *** Sqirrel joined [11:40] tadzik: that sounds good [11:41] timotimo / jnthn: perl6-m t/spec/S17-concurrency/thread.rakudo.jvm passes on my box [11:41] rakudo.jvm? :) [11:42] timotimo: so I don't have to fudge it :o) [11:43] the last three are skipped though [11:43] of course [11:44] hm. [11:44] how do i work a suggestion a la "the routine xx doesn't exist, but an infix operator xx does. maybe you need to add () before it?" into the X::Undeclared::Symbols? [11:45] maybe we could have a role "Suggestions" that would add any string to an exception's message? [12:02] *** atroxaper joined [12:06] https://gist.github.com/timo/ae5b88787b04aae3aa49 [12:09] maybe this error could be tackled from the other direction [12:09] "parsed a term with arguments that doesn't take arguments"? [12:10] *** gfldex_ is now known as gfldex [12:12] that's probably pretty fragile. [12:31] *** grondilu joined [12:31] check out my rewrite of http://rosettacode.org/wiki/One-dimensional_cellular_automata#Perl_6 guys. I gotta say I'm kind of proud of it. [12:31] hm. the artistic license 2 is kind of long [12:36] it seems like a very sensible license [12:37] *** kivutar left [12:55] *** Ven joined [12:56] i've been waiting to ask why the main branch of Rakudo names 'nom'? [12:59] it's named after the "new object model" [12:59] which refers to 6model [13:00] masak: one more thing about russian people. Often we write 'i' instead of 'I' becouse in russian language we should write 'You' instead of 'you' (with respect to somebody). And don't use single quotes at all :) [13:01] the I vs You thing is a thing in german as well :) [13:01] r: class A { has @.stuff; }; my A $a .= new(:stuff()); sub doom(A $a (:stuff [$first, *@rest])) { say :rest($a).perl; }; doom($a); [13:01] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Malformed parameter␤at /tmp/tmpfile:1␤------> stuff()); sub doom(A $a (⏏:stuff [$first, *@rest])) { say :rest($…» [13:04] r: class A { has @.stuff; }; my A $a .= new(stuff => ); sub doom(A $a (:stuff [$first, *@rest])) { say :rest($a).perl; }; doom($a); [13:05] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Malformed parameter␤at /tmp/tmpfile:1␤------> uff => ); sub doom(A $a (⏏:stuff [$first, *@rest])) { say :rest($…» [13:06] r: class A { has @.stuff; }; my A $a .= new(:stuff()); sub doom(A $a ( :stuff [$first, *@rest] ) ) { say :rest($a).perl; }; doom($a); [13:06] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Malformed parameter␤at /tmp/tmpfile:1␤------> tuff()); sub doom(A $a ( ⏏:stuff [$first, *@rest] ) ) { say :rest…» [13:06] err. [13:08] :stuff isn't a valid named param decl; needs to be :$stuff [13:09] *** Mouq joined [13:09] :\stuff could also work if you want it to be called just "stuff" [13:09] jnthn: http://perlcabal.org/syn/S06.html#Unpacking_tree_node_parameters is where I'm taking that from [13:10] r: class A { has @.stuff; }; my A $a .= new(:$stuff()); sub doom(A $a ( :stuff [$first, *@rest] ) ) { say :rest($a).perl; }; doom($a); [13:10] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$stuff' is not declared␤at /tmp/tmpfile:1␤------> { has @.stuff; }; my A $a .= new(:$stuff⏏()); sub d…» [13:10] atroxaper: yes, the 'You' thing is widespread in many languages. [13:10] atroxaper: only the British and US tribes are self-centered enough to capitalize 'I' instead :P [13:10] %) [13:11] jnthn: not sure I get what you mean [13:13] grondilu: your code seems elegant, but is about 75% mystifying to me. [13:13] *** Mouq left [13:13] *** pdcawley left [13:15] *** pmurias_ joined [13:15] *** pmurias_ left [13:15] Ven: I said parameter, not argument... :) [13:15] *** pmurias joined [13:15] Ven: let's sing the doom song! [13:15] timotimo: re suggestion error message, wouldn't it make sense to mix in a suggestion role of sorts? [13:15] Ven: You need the $ in the signature [13:16] pmurias: isn't that exactly what i suggested? :) [13:16] r: class A { has @.stuff; }; my A $a .= new(:stuff()); sub doom(A $a ( :$stuff [$first, *@rest] ) ) { say :rest($a).perl; }; doom($a); [13:16] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«"rest" => A.new(stuff => Array.new("a", "b", "c", "lel", "e", "f"))␤» [13:16] timotimo: just noticed that ;) [13:16] okay :) [13:16] glad to see you [13:16] how's life? :) [13:16] r: class A { has @.stuff; }; my A $a .= new(:stuff()); sub doom(A $a ( :@stuff [$first, *@rest] ) ) { say :rest($a).perl; }; doom($a); [13:16] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«"rest" => A.new(stuff => Array.new("a", "b", "c", "lel", "e", "f"))␤» [13:16] r: class A { has @.stuff; }; my A $a .= new(:stuff()); sub doom(A $a ( :@stuff [$first, *@rest] ) ) { say @rest.perl; }; doom($a); [13:16] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«Array.new("b", "c", "lel", "e", "f")␤» [13:17] ok, that seems to be what I wanted indeed [13:17] holy crap [13:17] :$foobar.perl [13:17] that's a really cool way to output the name and value of a variable [13:17] like, for debugging purposes [13:18] jnthn: I believe this needs fixing http://perlcabal.org/syn/S06.html#Unpacking_tree_node_parameters <= here, right ? [13:18] it's missing the $ [13:18] docs too long for github PR [13:19] oh, looks like a good catch! [13:20] *** awwaiid joined [13:20] grondilu: ah, figured it out [13:21] timotimo: might miss a @ instead, though [13:21] r: class A { has @.stuff; }; my A $a .= new(:stuff()); sub doom(A $a ( :$stuff [$first, *@rest] ) ) { say @rest.perl; }; doom($a); [13:21] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«Array.new("b", "c", "lel", "e", "f")␤» [13:21] meh, that's the same [13:23] timotimo: just started a new semester, I still have to finish some $other perl5 stuff before resuming work on rakudo-js [13:24] that's fine :) [13:25] pmurias: is rakudo-js on github ? [13:28] Ven: yes, see https://github.com/pmurias/rakudo-js [13:28] I should've guessed :). ++>>[ FROGGS , pmurias ] [13:28] *g* [13:28] why is that ++>> and not ++<< ? [13:29] m: constant FROGGS = 1; constant pmurias = 1; ++>>[ FROGGS , pmurias ] [13:29] rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/4YYAiHpm0p␤Preceding context expects a term, but found infix + instead␤at /tmp/4YYAiHpm0p:1␤------> ant FROGGS = 1; constant pmurias = 1; ++⏏>>[ FROGGS , pmurias ]␤» [13:29] well, does not make much sense with constants anyway >.< [13:30] * timotimo has been digging into the qt-creator source and asking questions on #qt-creator [13:30] m: my \FROGGS = 1; my \pmurias = 1; say ++<<[ FROGGS , pmurias ] [13:30] rakudo-moar da53ec: OUTPUT«2 2␤» [13:30] the architecture and design of the thing is a work of art [13:30] timotimo: in a good way? [13:30] yes [13:30] FROGGS: don't be so humble, you're at least 10! and pmurials, too [13:31] timotimo: I am just one :o) [13:32] timotimo: because I'm tired ! eh [13:35] *** spider-mario joined [13:39] r: sub a($n) { $n so true; }; a(1); [13:39] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> sub a($n) { $n ⏏so true; }; a(1);␤ expecting any of:␤ postfix…» [13:39] I remember seeing that, though. I'll need to find it again ... [13:39] *** kaleem left [13:43] r: sub b($v) { say $v.perl; }; sub a($n) { b so true; }; a(1); [13:43] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ true used at line 1␤␤» [13:43] r: sub b($v) { say $v.perl; }; sub a($n) { b so 1; }; a(1); [13:43] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«Bool::True␤» [13:43] That might [13:43] That might've been it, wouldn't make sense otherwise [13:45] *** pdcawley joined [13:46] *** rurban1 joined [13:50] *** awwaiid left [14:13] *** xragnar_ joined [14:13] *** xragnar left [14:13] *** xragnar_ is now known as xragnar [14:13] *** awwaiid joined [14:22] *** salv0 joined [14:28] *** araujo joined [14:28] *** rindolf left [14:33] *** btyler joined [14:39] *** [Sno] joined [14:40] *** rurban1 left [14:48] timotimo: there's a way, but I've never learned enough to make it work right [14:48] *** skids joined [14:52] dammit, another thing to support: https://github.com/atom [14:52] *** sivoais left [14:56] *** araujo left [14:57] *** araujo joined [14:57] *** Mouq joined [14:57] *** rindolf joined [14:59] *** rurban1 joined [15:00] another text editor? *baps github* [15:01] you fools want I should learn *another* editor? [15:01] geekosaur: what? [15:01] [27 14:52] dammit, another thing to support: https://github.com/atom [15:02] geekosaur: ah, yes, I heard about it. [15:02] *** Mouq left [15:02] I was told there were some heated threads about it on reddit. [15:02] (also referencing an old comic that I can't find any more about the zen master and the grasshopper who wants to solve the editor wars by building an editor combining both...) [15:05] *** jnap joined [15:06] *** treehug88 joined [15:11] *** darutoko- joined [15:13] *** Gruber joined [15:14] *** ggoebel1119 joined [15:14] *** spider-mario_ joined [15:14] *** bonsaikitten joined [15:15] *** sivoais joined [15:15] *** spider-mario left [15:15] *** yihshih joined [15:17] *** genehack_ joined [15:20] *** spider-mario_ left [15:21] *** rindolf left [15:21] *** grondilu left [15:21] *** mtk left [15:21] *** darutoko left [15:22] *** pecastro joined [15:22] *** spider-mario joined [15:23] <[Coke]> still no daily runs. [15:23] *** grondilu joined [15:23] *** _thou joined [15:23] *** bjz joined [15:24] <[Coke]> There is already a ticket that .chars doesn't mean .graphs. [15:24] <[Coke]> https://rt.perl.org/Ticket/Display.html?id=65170 [15:26] merge! child? [15:26] "references"? [15:26] things RT can do. [15:26] (which I think you already know) [15:27] <[Coke]> Yes. I'm mentioning it here to let someone who actually understands the -contents- of the tickets to chime in, then I can do the dirty bugadmin work. [15:27] *** sorear joined [15:28] *** yves_ joined [15:28] *** rindolf joined [15:29] *** xinming_ left [15:29] *** mtk joined [15:30] *** treehug88 left [15:31] * masak merges #121338 into #65170 [15:31] * synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=121338 [15:31] [Coke]++ [15:32] synopsebot: heh, you realize that was two RT references, right? :) [15:32] not that it matters in this case, since I merged them :P [15:33] <[Coke]> masak++ #thanks [15:33] *** xinming joined [15:36] *** awwaiid left [15:41] *** Guest23735 joined [15:42] * moritz back [15:46] hmm [15:46] apparently you can fairly easily convert a Textmate bundle to support Atom [15:46] that sounds good [15:47] well, we can kill two birds with one stone =) [15:49] oh, I didn't know TM was OS X only [15:49] now there's no hope of me working on it =/ [15:49] *** treehug88 joined [15:50] *** erkan joined [15:50] I just saw this in Grammar.pm: [15:50] for $ [15:50] how could that ever work? [15:51] shouldn't that be for $.list? [15:51] remember that Grammar.pm is NQP code [15:51] ahhhh [15:51] so that's different in NQP? [15:51] yes [15:51] there is no flattening in NQP [15:51] ah, I keep forgetting that [15:51] and 'for' always iterates over an array [15:52] and there's no distinction between itemized arrays and "flat" arrays [15:52] *** Guest23735 left [15:52] ok [15:54] *** donaldh left [15:57] *** Guest23735 joined [15:59] *** erkan left [16:00] *** Guest23735 left [16:00] *** jnap1 joined [16:01] *** jnap left [16:05] do we have e standard for what an "app" package should look like? [16:05] lib/ folder with lib/App/Programname/* and bin/ folder with the runnable in it? [16:11] yes, that is it mostly [16:13] *** _thou left [16:13] *** _thou joined [16:14] *** awwaiid joined [16:17] sounds good. [16:19] *** kst joined [16:21] *** torbjorn joined [16:22] *** fhelmberger joined [16:23] *** denisboyun left [16:29] is there something like perl6 -Mfoobar that will run the given module and any MAIN if there is one? [16:29] there's -M to load a module "prior to running the program" which doesn't seem to be exactly what i mean? [16:30] perl6 Module.pm6 will run any MAIN if there is one [16:30] well, any that matches the appropriate sig [16:32] ah, good. [16:33] *** Gruber is now known as Grrrr [16:34] *** hoverboard joined [16:34] *** zakharyas left [16:36] perl6 -Mfoobar will just run the repl with that module loaded [16:36] mhm [16:37] *** molaf__ joined [16:42] it would be nice to combine the running MAIN of perl6 Module.pm6 with the search through @*INC [16:42] but then again, can't you just distribute a small script that invokes your module? [16:45] Is there a way to skip a positional parameter when calling a subroutine such that it just uses the default? [16:46] maybe passing Nil? [16:47] no idea if rakudo supports that, and if it's specced [16:47] Generally that means "shoulda used named args" :) [16:47] uh, parameters [16:48] I agree, but the caller doesn't always have the power to refactor the callee [16:48] True :) [16:48] Aye, and I'm wondering about porting Perl 5 code that may use this "feature" [16:49] Nil as the argument seems to make sense [16:50] hoelzro: just like some .so files being actually executable (try it!), python has the convention that if you launch a module with python -m foo.bar.baz, it will execute the section that's separated out by the "if __name__ == '__main__'" [16:50] which is kind of meh, but ... whatevs :) [16:50] m: sub f($a = 'a', $b = 'b') { say ($a, $b).perl }; f(Nil, 'c') [16:50] rakudo-moar da53ec: OUTPUT«(Nil, "c")␤» [16:50] timotimo: right [16:50] I'm just wondering if that idea is Perl6y [16:51] well, you can include a MAIN in a module [16:51] to me, it's interesting that I can run a script via "script-name", which searches PATH [16:51] and it's only executed if you run the module as a script [16:51] or I can run a module via "perl6 -m ModuleName", which searches @*INC [16:51] *** colomon joined [16:51] (theoretical usage, of course) [16:51] but there seems to be no combination of searching in @*INC and executing MAIN [16:52] moritz: that's what I was getting at with -m [16:52] hoelzro: yes, I understand [16:52] if I want to run code as an executable, shouldn't I only have to worry about PATH? [16:52] why throw more variables into the equation [16:53] yes, adding a script in $PATH is certainly the least hacky / most obvious way [16:53] shells use $PATH, perl uses @*INC, what's the problem? [16:54] perl is not the shell [16:54] C compilers don't search PATH for libraries either [16:55] right, but it's generally understood (I think?) that one var is for executables, and another is for libraries [16:55] my point is, you explicitly said a module, not a script [16:55] granted, this usage would require the user to say "run this module" [16:55] perl does not search in PATH for scripts when I do: perl -e foobar.pl [16:55] system facilities know executables (scripts) not "modules" [16:56] and they should understand that, I guess [16:56] perl defines "module", by its rules [16:56] *** jnap1 left [16:56] and most modules have no business being on $PATH; "execute a module" is kinda weird on its face [16:56] *** jnap joined [16:56] I'm not saying that adding "search for this module and run it" is a bad idea; I'm more thinking about it =) [16:57] I wouldn't want something to be added just because Python has it [16:57] (I used the libraries thing for a reason; a module is more like a library than a program) [16:57] hoelzro: seems interesting to me. Dunno if there's a real need for it though. [16:58] I think it's interesting too [16:58] the one instance I found myself wanting something like that in Perl 5 was serving the current directory [16:58] in Python, it's something like python -m SimpleHttpServer [16:59] but the distributor could always bundle up a script to launch the appropriate module... [16:59] note, I'm not saying "execute a module" is *wrong*, just that it's not an obvious normal case. just like on Linux you can execute a shared library (the only one normally provided that *supports* this is libc.so and it just tells you about the libc version etc.) [16:59] geekosaur: I think we're both just elaborating on the idea =) [17:00] *** FROGGS[mobile] joined [17:03] how can I list where a module is loaded from? [17:03] (%INC in Perl 6) [17:03] er, Perl 5 [17:04] *** FROGGS left [17:04] hmm [17:04] %*INC in rakudo [17:04] if I use/need a module twice, does it get parsed/compiled twice? [17:04] moritz: that didn't work for me [17:05] erm [17:05] wait [17:05] i think modules are cached; though if you supply arguments and it has an EXPORT sub, that should be re-run of course [17:06] interesting...if I delete the precompiled .moarvm file in my module loading test for MoarMoneyMoarProblems, the test passes [17:06] hoelzro: it's stored in a lexical inside Perl6::ModuleLoader [17:06] also, a say() line in the precompiled module is run twice [17:07] this just gets moar and moar interesting.. [17:10] *** atroxaper left [17:11] hoelzro: what about a BEGIN say? [17:11] hmm [17:11] I'll try it [17:12] grr [17:12] *** Ven left [17:12] I fubar'd my mokudo [17:18] :( [17:31] *** btyler left [17:34] *** pdcawley left [17:35] *** kivutar joined [17:42] *** vendethiel joined [17:42] *** FROGGS joined [17:44] * timotimo builds a zeroconf-based "serverless" paste service for qt-creator to get accustomed to the codebase [17:46] <[Coke]> If you want to run a module's main without the six equiv of $^X, you can manually invoke it. [17:46] <[Coke]> no? [17:47] i don't know what $^X is [17:47] the difference between manually invoking it and using -M is the way you specify the path [17:47] perl6 -Minvoke Foo::Bar::Baz vs perl6 /home/timo/perl6/lib/Foo/Bar/Baz.pm6 [17:48] <[Coke]> i don't understand. if you're loading a module, you use whatever use is doing. yes/ [17:48] <[Coke]> timotimo: why on earth would you do the former on the command line? [17:48] <[Coke]> ... eh, i retract that, it seems vaguely useful. But it's clearly not the same thing: you want to use the name, you use the INC path, no? [17:49] <[Coke]> isn't this just timtoady? [17:49] *** benabik joined [17:49] wow, that's the first time I was able to sleep 8 hours in about three weeks [17:49] *** benabik left [17:51] *** xenoterracide joined [17:51] TimToady: 8 hours in three weeks is really not much sleep! you should really sleep at least one hour a day! [17:52] I also try to sleep one hour a day :P [17:52] [Coke]: the difference is that you can just say "run the module named foo" rather than having to know where it is [17:52] the -Minvoke is just my "pretend implementation" of this feature [17:53] <[Coke]> timotimo: what are you saying is the problem here? [17:53] *** _thou left [17:54] <[Coke]> I see two ways of doing the same thing that you might want to use depending on the situation. [17:54] *** _thou joined [17:54] yes. the former is currently impossible, though :) [17:55] <[Coke]> the first one shoudl be spelled 'perl6 -MFoo::Bar::Baz MAIN', mebbe? [18:00] TimToady: does the sleep deprivation explain the decision to start committing changes to Rakudo? ;) [18:01] undoubtedly 8] [18:01] hmm, that one looks like Cookie Monster [18:02] 8) <- Kermit [18:03] 8] 8 88 [18:03] or 888 since most cookie sheets are rectangular [18:08] *** skids left [18:15] *** tgt joined [18:16] *** dakkar left [18:18] *** berekuk joined [18:20] *** dmol left [18:28] *** bluescreen10 joined [18:33] grondilu: http://rosettacode.org/wiki/One-dimensional_cellular_automata#Perl_6 is spectacular. However, since I just made [Z+] work a couple days ago, I fixed your example for you. :) [18:34] grondilu++ TimToady++ [18:35] * colomon is still not convinced by the <| |>,join: Str idiom [18:35] *** bjz_ joined [18:35] *** bjz left [18:35] colomon: what's the idiom? [18:35] using .join inside-out [18:36] what TimToady said. for instance, method gist { <| |>.join: @!cells.map({$_ ?? '#' !! ' '}).join } [18:36] treating the string as the delimiter [18:36] and the delimiters as the list argument for join [18:37] it's kinda the same idea as '[' ~ ']' in regex [18:37] TimToady: I'm not wildly comfortable with that, either. :) [18:37] *** hoverboard left [18:37] putting the opener and closer next to each other makes the intent clearer [18:38] but using join makes the intent less clear [18:39] would <| |>.insert: be more to your liking [18:39] ? [18:40] … I don't know. [18:40] my code will probably give it as '|' ~ whatever ~ '|' for the foreseeable future. [18:41] which works as long as whatever is shorter than @!cells.map({$_ ?? '#' !! ' '}).join [18:41] m: use MONKEY_TYPING; augment class Str { method enclosed-by($a, $b = $a) { $a ~ self ~ $b } }; 'foo'.surrounded-by: '|' [18:41] rakudo-moar da53ec: OUTPUT«No such method 'surrounded-by' for invocant of type 'Str'␤ in block at /tmp/UcZNimHKuU:1␤␤» [18:41] m: use MONKEY_TYPING; augment class Str { method enclosed-by($a, $b = $a) { $a ~ self ~ $b } }; 'foo'.enclosed-by: '|' [18:41] rakudo-moar da53ec: ( no output ) [18:42] m: use MONKEY_TYPING; augment class Str { method enclosed-by($a, $b = $a) { $a ~ self ~ $b } }; say 'foo'.enclosed-by: '|' [18:42] rakudo-moar da53ec: OUTPUT«|foo|␤» [18:42] m: use MONKEY_TYPING; augment class Str { method enclosed-by($a, $b = $a) { $a ~ self ~ $b } }; say 'foo'.enclosed-by: |<| |> [18:42] rakudo-moar da53ec: OUTPUT«|foo|␤» [18:42] m: use MONKEY_TYPING; augment class Str { method enclosed-by($a, $b = $a) { $a ~ self ~ $b } }; say 'foo'.enclosed-by: |«< >» [18:42] rakudo-moar da53ec: OUTPUT«===SORRY!=== Error while compiling /tmp/AHBLBV15f4␤Confused␤at /tmp/AHBLBV15f4:1␤------> ~ $b } }; say 'foo'.enclosed-by: |«< >»⏏␤ expecting any of:␤ postfix␤» [18:42] I'm just wondering whether there's a different primitive that alternates whose degenerate case is this [18:42] insert all the following values between all the preceding values [18:45] looking at the RC code again, would @.code work as well as self.code ? I think the former might be clearer. (Though switching it from hash to array is already a huge step forward in clarity of intent -- I spent ten minutes thinking the old self.code{ } was trying to pass a code block to the function code. [18:45] .fmt("|%s|")? [18:45] (changing the subject because I don't have a good answer to TimToady++'s question.) [18:45] r: .join(" ").fmt("|%s|").say [18:45] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«|foo bar baz|␤» [18:45] ^ this seems okay [18:45] and still puts the | | close together [18:46] .fmt('|%s') looks fairly nice, timotimo++ [18:46] timotimo++ # perhaps less elegant, but definitely more to my liking [18:46] r: .fmt("|%s|").say [18:46] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«|foo| |bar| |baz|␤» [18:46] r: .Str.fmt("|%s|").say [18:46] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«|foo bar baz|␤» [18:46] * colomon didn't recall whether or not .fmt distributed across lists. [18:47] same keystrokes as join :) [18:47] r: say .fmt('%s', ', ') [18:47] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«foo, bar, baz␤» [18:48] *** FROGGS[mobile] left [18:49] hmm. i could imagine a three-argument-version of fmt [18:50] .fmt($foo, '%s', ', ') could then be equivalent to .fmt('%s', ', ').fmt($foo) [18:50] hm, no, that's kinda weird [18:50] then you'd have something like "|%s|", "%s", ", " [18:50] that's a mighty big WAT [18:50] about this cellular automaton code: it is very slow. I'm looking forward to the day it will run fast. But meanwhile if someone has ideas to speed it up, please go ahead. [18:51] *** rurban1 left [18:55] *** kivutar left [18:55] well, it wants a GPU :) [18:56] that it does. [18:57] grondilu: you can have bigger neighbourhoods that get zipped together to create more than one result cell at the next step or alternatively one result cell skipping a few steps [18:57] those bigger neighbourhoods and the cells they result in can then be cached i na hash [18:57] that's how HashLife gets so incredibly fast [18:57] *** skids joined [18:58] *** kurahaupo_mobile joined [18:59] hmm, my .insert is really a roundrobin in disguise [19:00] jnthn: could "Implement CUDA threads for MoarVM" be a GSoC project? [19:00] for me it feels as if this would be the right time and it would offer the right amount of work for a student [19:00] hang on. Are there serious hopes that P6 will allow GPU programming transparently?? [19:01] * grondilu thought TimToady was kidding when he talked about GPU [19:01] grondilu: i've got that hope in me [19:02] my hope is that the compiler might choose to use gpu threads if it sees that it has to compute a few hundreds small tasks at once [19:03] and that it chooses to use cpu threads for larger/fewer tasks [19:05] *** darutoko- left [19:06] i think a good first step would be to emit SIMD first [19:06] that'll already make a huge difference [19:06] as i understand it, there is significant overhead when putting data onto the GPU and retrieving data back [19:06] that's not the case with SIMD, afaik [19:07] of course is there is some bottelneck [19:07] now you need to build good heuristics to avoid GPU-offloading if it's not effective :) [19:08] the same issue make you to choose a software surface for one thing and a hardware surface for another [19:08] mh, right [19:08] I would have thought that "working ropes" and "NFG" were more useful projects this year [19:08] nwc10: true [19:09] CUDA sounds like something that optimises existing functionality. Which seems daft to do before needed functionality is "exsting functionality" [19:10] nwc10++ (ropes, NFG) [19:10] CUDA is problematic, because it's nvidia-only [19:10] OpenCL on the other hand is very, very poorly supported by NVidia [19:10] (they only support like OpenCL 1.1 or something like that) [19:14] okay okay, scratch that idea then :o) [19:14] one of these projects (was that opencl?) also supports putting code onto FPGAs and such :) [19:15] *** hoverboard joined [19:21] *** rurban1 joined [19:22] *** simcop2387 joined [19:26] *** rurban1 left [19:27] grondilu: why would I not be serious about GPUs? SIMD is the main reason for having hypers in the first place? See also S03:4254 for an explicit reference to GPUs [19:27] Link: http://perlcabal.org/syn/S03.html#line_4254 [19:27] s:2nd/'?'/./ [19:28] panda/moar-support: 9fb996e | (Tobias Leich)++ | lib/Panda/Common.pm: [19:28] panda/moar-support: simplify compfuffix/comptarget, tadzik++ [19:28] panda/moar-support: review: https://github.com/tadzik/panda/commit/9fb996ed88 [19:31] *** tgt left [19:35] I don't think English capitalizes 'I' out of self-regard, but because simply because people thought 'i' was too hard to see for a pronoun that is going to change how you parse the verb, not to mention all the pragmatics surrounding 1st vs 2nd vs 3rd persons. [19:36] p: sub MAIN($where = '.'.path.absolute) { say $where }; MAIN [19:36] rakudo-parrot da53ec: OUTPUT«IO::Path␤IO::Path␤» [19:38] and there may have been some intererence with normally seeing 'I' at the front of the sentence, so people got used to the capital. [19:38] i note also that we don't capitalize Me. [19:39] if it were purely self-regard, we'd capitalize that too :) [19:39] but We don't do that, do We? [19:39] *** dmol joined [19:40] so I think it's mostly just a visual huffman thing [19:40] *** tgt joined [19:46] another way to look at it is that the ideographical nature of 'I' came to override the regular case rules. there are probably other examples of this in English [19:48] some of our characters are fossilized ideographs of words, like & and @ [19:49] so @ is a word? [19:51] and the little circles in % and ‰ and ‱ surely used to be 0's [19:51] *** bjz_ left [19:52] yeah, I've always seen it that way [19:52] and was # meant to represent a table? (for a calculation?) [19:53] and arguably 􏿽xE2􏿽x84􏿽xAB is just the ideograph that evolved from Å [19:53] O.o [19:54] .u 􏿽xE2􏿽x84􏿽xAB [19:54] U+212B ANGSTROM SIGN [Lu] (􏿽xE2􏿽x84􏿽xAB) [19:54] so a good case could be made that I is just an ideograph for I, except that Unicode hasn't yet assigned a separate codepoint :) [19:54] .u Å [19:54] U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE [Lu] (Å) [19:54] *g* [19:57] though obviously the I/me distinction keeps it from becoming a complete ideograph [19:57] or we'd write 'I' and pronounce it 'me' [19:59] I pronounce it "Ei" :o) [19:59] I daresay most people write I rather than i because it's the convention, which is breaking down a bit nowadays due to lazy typists [19:59] or "egg", even [19:59] *** dmol left [19:59] *** tgt left [20:00] I've made the P5 translation http://rosettacode.org/wiki/Elementary_cellular_automaton#.7B.7Bheader.7CPerl.7D.7D [20:00] P5 is waaay faster than P6 on this. [20:01] *** beastd joined [20:01] s/this/most things/ [20:01] *** rurban1 joined [20:02] I know but it's kind of worrying because that shows all the work that still needs to be done to catch up with P5 [20:02] in P5 you get the eager optimization for "free" :) [20:02] so everything is batched [20:03] we'll have to work a bit harder to propagate eager context [20:03] you'll note that hypers are implicitly eager, unlike Z [20:03] *** denis_boyun joined [20:04] for some reason I could not overload ++ in P5. I thought I knew how to do this kind of things. Haven't done it for quite some time, though. [20:04] overloading in P5 is a complete hodgepodge of special cases [20:05] implemented by a brilliant but mad Russian :) [20:06] *** tgt joined [20:13] *** telex joined [20:16] *** telex left [20:17] tadzik: I've cloned all ecosystem modules and there are only three that have a Build.pm [20:17] Math--ThreeD/Build.pm: method build ($where) { [20:17] perl6-Imlib2/Build.pm: method build(Pies::Project $p) { [20:17] perl6-IUP/Build.pm: method build(Pies::Project $p) { [20:17] and the last two seem to be off [20:18] *** telex joined [20:20] *** hoverboard left [20:21] *** hoverboard joined [20:24] TimToady: who implemented overloading in P5? [20:26] I seem to be unable to use Panda anymore :( The error is "Cannot assign a non-Perl 6 value to a Perl 6 container" (previously spelled "cannot unbox to native int"), and it seems to be related to the "when X::Panda" bit in MAIN('install' [20:27] <[Coke]> oh. hey. I just had a horrible horrible idea involving something like CORBA and our metamodel. [20:27] *** berekuk left [20:28] lue: can you provide more information? [20:29] *** berekuk joined [20:29] lue: what (rakudo) branches are you on? what are you doing to get the error? [20:29] *** dmol joined [20:30] during bootstrap.pl, under ==>Building File::Find, panda/master, rakudo/nom, nqp/master, moarvm/flatten_fastpath (though my default perl6 is perl6-p), parrot/master [20:31] (I know it's the when conditional because I expanded the CATCH { } into a multiline statement to better see what's failing) [20:35] FROGGS: https://gist.github.com/lue/9258983 [20:38] lue: can you invoke the shell cmd within bootstrap.pl with --ll-exception added? [20:38] sure, just a second [20:41] *** kivutar joined [20:43] FROGGS: updated the gist. [20:48] *** grondilu left [20:48] *** tgt left [20:49] *** tgt joined [20:49] *** aindilis joined [20:52] lue: I don't see the issue :/ [20:59] *** kaare_ joined [21:02] *** dayangkun left [21:04] :/ [21:12] panda/absolute: 026cd23 | (Tobias Leich)++ | / (7 files): [21:12] panda/absolute: use absolute paths where possible [21:12] panda/absolute: review: https://github.com/tadzik/panda/commit/026cd23367 [21:16] *** dayangkun joined [21:17] *** bjz joined [21:27] FROGGS: I'm running perl6-j ./bootstrap.pl , and it got past where parrot died. [21:29] perl6-m has segfaults, which considering the existence of panda/moar-support isn't surprising :) [21:29] So, it looks to be a Parrot issue I'm having :/ [21:29] pandarot [21:29] which is a weird thing [21:32] *** rurban1 left [21:34] My guess is that for some part of the implicit $_ ~~ X::Panda in the when conditional is making Parrot complain. [21:35] *** rurban1 joined [21:42] * lue considers bisecting rakudo to find the issue... too bad parrot is the slowest of them all to build :/ [21:45] *** dayangkun left [21:48] *** rindolf left [21:53] *** dayangkun joined [21:57] *** dayangkun left [22:01] *** treehug8_ joined [22:02] *** treehug88 left [22:07] *** dayangkun joined [22:10] lue: where does it die? did you gdb it? [22:11] it dies upon "when X::Panda" in bin/panda. [22:12] *** treehug88 joined [22:12] I'm not sure what I would gdb, seeing as it's a P6/nqp-level exception. [22:12] rurban: it dies in perl land, a few layers above gdb [22:12] oh [22:12] * lue is in the process of bisecting rakudo to find where it happens [22:12] lue++ [22:13] tell me when you found a parrot problem. I just have a lot of parrot time [22:13] I have no other idea/advice [22:13] the slow, slooow process of bisecting the backend that happens to be the slowest to build rakudo for :) [22:13] lue: do you have a "good" revision already? [22:14] nope, I'm still waiting to be done compiling the first revision I want to see if it's good (that's 2014.02 specifically) [22:14] *** treehug8_ left [22:15] are you recompiling parrot/nqp also? [22:15] nope, just rakudo so far. I hope that's where the error lies :) [22:15] should be, yes [22:16] well, gdb should even catch perl errors (using the proper breakpoint) [22:17] well, he is far away from such a breakpoint atm [22:18] just so everyone here knows, I started compiling just perl6-p at 13:45:33, at it just got done now at 14:17:31 :P [22:18] ?? [22:18] you are not supposed to compile rakudo on your toaster... [22:19] that is kinda slow [22:19] Yeah, to the point where I wish I had a better way of even finding what the cause is. But I don't :/ [22:19] I guess it takes about five minutes on my laptop btw [22:20] I am compiling rakudo/nom now too [22:20] *** _thou left [22:20] Way to make me feel like I have a stupid computer, FROGGS :P [22:20] hopefully I get the same problem [22:20] *g* [22:20] *** _thou joined [22:21] Yeah, if *you* could do the bisecting, it'd be over with in a quarter of the time :) [22:21] yeah, we should try :o) [22:21] Cool, 2014.02 is a good revision, I'm testing File::Find right now ( /me ^C and goes to the next revision) [22:23] okay, I get the same error as you [22:25] FROGGS: Note that before a recent update, I instead got "cannot unbox to native int" in the same spot, so I believe that qualifies as the same error. [22:25] *** BenGoldberg joined [22:26] it definitely feels related, yes [22:27] In fact, when I first saw the "Perl 6 object" error message, I thought it was a reworded form of the native int message. Could be wrong though :) [22:27] no, it is a different one [22:27] p: my $l = nqp::list [22:27] rakudo-parrot da53ec: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in block at /tmp/VsJRK0667T:1␤␤» [22:28] p: my $l = nqp::hllize( nqp::list ) [22:28] rakudo-parrot da53ec: ( no output ) [22:28] that is one way to trigger it [22:29] I made parrot -O1 stable, -O2 soon. benchmarks: https://github.com/parrot/parrot/issues/1037#issuecomment-36274524 [22:31] p: say 16.269/17.428 [22:31] rakudo-parrot da53ec: OUTPUT«0.933498␤» [22:32] rurban++ [22:32] btw, my box takes 5m28.473s to build perl6-p 2014.02 [22:33] * lue should probably invest in a cooler processor some time :P [22:34] I've got a core i5 [22:34] i don't understand these benchmarks? [22:34] 'night, #perl6 [22:34] gnight masak [22:34] ♞ masak o/ [22:34] tomorrow is Perl 6 day for me. [22:34] nice! [22:35] yes! [22:35] :o) [22:35] ^---- nose [22:35] ja! [22:36] make-4.0 -j10 should help [22:36] make 4 fixes a lot of concurrency issues, and -j10 saturates your cores better [22:36] FROGGS: I have a dual core Athlon that came with the computer; should shoot for a much nicer AMD CPU at some point :) [22:36] rurban: that does not help building rakudo though [22:36] and using ccache also helps a lot with bisecting [22:37] rurban: don't have make 4, so I'll be sure to check out sometime (for other stuff if not rakudo ☺) [22:37] no parallelisms in the rakudo makefile [22:37] the problem is that the dependencies almost force a sequential build [22:38] and the setting is one huge chunk wich takes like 40% of the total time [22:38] ah, the setting. yes, RAM. nobody has make 4 yet, because some devs spreading the rumors that their builds will break [22:39] it fixed my -j4 builds with some hairy shellcode in the makefile [22:40] *** rurban1 left [22:42] *** hoverboard is now known as iq2400 [22:47] Bisecting: 4 revisions left to test after this (roughly 2 steps) [22:50] *** skids left [22:52] *** iq2400 is now known as hoverboard [22:54] *** rurban1 joined [22:54] *** rurban1 left [22:56] *** Alina-malina joined [22:56] *** denis_boyun left [23:02] *** virtualsue joined [23:02] lue: this seems to it: e6c7baf01de1f38175ed4a51f9c2cfab2edfa9ba [23:04] *** panchiniak joined [23:05] FROGGS: I'm in the process of bisecting 4x as long as you took, let's see in a couple hours or so if my findings corroborate :P Could it possibly be the de-listification of lol there? [23:05] *** pmurias left [23:07] *** virtualsue left [23:07] lue: my guess is that this X op (METAOP_CROSS) does return something that wants hllizing: [23:07] panda/blib/lib/Panda/Builder.pm:8: my %color_of = @modules X=> 'not yet visited'; [23:08] p: say < foo bar baz > X=> 'nyv' [23:08] rakudo-parrot da53ec: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in method REIFY at gen/parrot/CORE.setting:8407␤ in method reify at gen/parrot/CORE.setting:7279␤ in method gimme at gen/parrot/CORE.setting:7724␤ in method push at gen/parrot/CORE.setti…» [23:08] \o/ [23:08] FROGGS: What's weird is that error backtrace does not in any way go past bin/panda [23:08] \o/ [23:09] lue: see https://gist.github.com/lue/9258983#file-output-L25 [23:09] Ah, I was referring to the non---ll-exception backtrace :) [23:09] m: say < foo bar baz > X=> 'nyv' [23:09] rakudo-moar da53ec: OUTPUT«"foo" => "nyv" "bar" => "nyv" "baz" => "nyv"␤» [23:10] lue: yes, when you hit stuff in the setting, the non-ll hides it often [23:11] *** Psyche^ joined [23:11] Well no, I'm referring to how I never learned it was in Builder.pm from the error message, which I think at least is Wrong™ [23:11] *** tgt left [23:12] I suspected Builder.pm fwiw :o) [23:13] *** Mouq joined [23:13] Yeah, but still. :) I should still be told where in the code the issue came up. [23:13] yes but... [23:20] *** timotimo joined [23:22] *** treehug88 left [23:23] FROGGS: I assume the problem is bigger than a simple nqp::hllize ? [23:23] lue: I dunno yet [23:23] I am staring at the line else { $i = $i + 1; @j.push($j); $j = 0; } [23:24] ah, alright. [23:24] that native int $j seems to cause the issue when getting pushed to @j [23:24] p: my @j; my int $j = 0; @j.push($j) # like that [23:24] rakudo-parrot da53ec: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in method REIFY at gen/parrot/CORE.setting:8407␤ in method reify at gen/parrot/CORE.setting:7279␤ in method gimme at gen/parrot/CORE.setting:7724␤ in method push at gen/parrot/CORE.setti…» [23:25] damn, I am an awesome golfer :P [23:25] huh [23:25] that's not right [23:25] don't you say *g* [23:25] m: my @j; my int $j = 0; @j.push($j); # does that work? [23:25] rakudo-moar da53ec: ( no output ) [23:25] star: my @j; my int $j = 0; @j.push($j) [23:25] star 2013-09: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in method REIFY at src/gen/CORE.setting:8332␤ in method reify at src/gen/CORE.setting:7265␤ in method gimme at src/gen/CORE.setting:7675␤ in method push at src/gen/CORE.setting:7754␤ in metho…» [23:25] how did we b0rk that?! [23:25] p6: my @j; my int $j = 0; @j.push($j) [23:26] rakudo-jvm da53ec, rakudo-moar da53ec: ( no output ) [23:26] ..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/tmpfile line 1:␤------> my @j; my⏏ int $j = 0; @j.push($j)␤␤Parse failed␤␤» [23:26] ..rakudo-parrot da53ec: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container␤ in method REIFY at gen/parrot/CORE.setting:8407␤ in method reify at gen/parrot/CORE.setting:7279␤ in method gimme at gen/parrot/CORE.setting:7724␤ in method push at gen/parrot/CORE.setti…» [23:28] rakudo/nom: 3c80d3a | (Tobias Leich)++ | src/core/metaops.pm: [23:28] rakudo/nom: parrots arrays do not seem to like natives [23:28] rakudo/nom: [23:28] rakudo/nom: This explodes using perl6-p: my @j; my int $j = 0; @j.push($j) [23:28] rakudo/nom: Since I dont expect that this will be fixed quickly, I am de- [23:28] rakudo/nom: optimizing the code slightly to make it work on perl6-p. [23:28] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3c80d3ae0e [23:29] timotimo: wasn't it the case that native ints have no container? [23:29] er [23:30] ... and that an array relies on these containers? [23:30] the array should build a container, though [23:30] (it's what arrays do) [23:30] except when it does not (or so) [23:30] p: my int @j; my int $j = 0; @j.push($j) [23:30] btw: is there a good "eselsbrücke" to remember which of array and list have containers and which doesn't? [23:30] rakudo-parrot da53ec: OUTPUT«Cannot call 'push'; none of these signatures match:␤:(Any:U \SELF: *@values, *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in method push at gen/parrot/CORE.setting:1596␤ in block at /tmp/n4KI3lz…» [23:31] dunno, is that a Fangfrage? [23:32] FROGGS: "mnemonic" [23:33] What's the proper way to do something like: [23:33] sub foo(int $native) { say $native }; foo(42); [23:33] FROGGS: Ah, nevermind :) /me needs a drastically better Deutsch vocabulary [23:33] lue: *g* [23:38] BenGoldberg: writing "r: " in front of it? [23:38] r: sub foo(int $native) { say $native }; foo(42); [23:38] rakudo-parrot da53ec, rakudo-jvm da53ec, rakudo-moar da53ec: OUTPUT«42␤» [23:39] *** kurahaupo_mobile left [23:41] *** berekuk left [23:41] *** bluescreen10 left [23:44] *** awwaiid left [23:44] *** Maddingue left [23:45] *** segomos joined [23:45] *** _thou left [23:45] *** berekuk joined [23:45] *** awwaiid joined [23:46] timotimo: btw I think the array should build the containers, but for some reason it does not seem to happen [23:46] * BenGoldberg feels silly ;) [23:46] :o) [23:46] Why can't the dispatcher autobox natives? [23:46] it can't? [23:46] I always thought it does that [23:46] Well, considering that the error message for 'p: my int @j; my int $j = 0; @j.push($j)' failing is 'Cannot call 'push'; none of these signatures match:', it seems to me that it's a failure to autobox. [23:46] BenGoldberg: it's a Parrot thing, not a Perl6 thing. [23:46] my guess is that this is Array specific and not dispatcher specific [23:46] -j and -m do just fine with said code. [23:46] *** bluescreen100 joined [23:46] lue: still likely to be a rakudo thing [23:46] well, parrot-leaning rakudo thing :) [23:46] yes [23:46] *** spider-mario left [23:46] *** Maddingu1 joined [23:46] *** Kelder joined [23:46] *** _thou joined [23:46] .u 「」 [23:46] U+FF62 HALFWIDTH LEFT CORNER BRACKET [Ps] (「) [23:46] U+FF63 HALFWIDTH RIGHT CORNER BRACKET [Pe] (」) [23:48] *** berekuk left [23:48] *** Psyche^ left [23:48] FROGGS: is that just for parrot, or does the parse time skyrocket for all backends? [23:49] *** Psyche^ joined [23:49] I think it is for all, but I'm not sure [23:50] I think it happened on the jvm at least, six months ago when lizmat++ added set/bag uniode ops [23:51] FROGGS: waitaminute: " otherwise the setting parse time increases insanely." but that's not the setting, it's the Grammar. Or is it affecting how fast the parser itself is? [23:52] you are right, the last time the unicode ops where added to the setting [23:52] so perhaps this is really about Grammar.pm parse time [23:52] I can benchmark that tomorrow [23:52] but now I wanna go to bed :o) [23:53] gnite everyone [23:53] ♞ FROGGS o/ [23:53] ♞ timotimo o/ [23:53] gnight