[00:02] *** sue left [00:04] *** alx741 joined [00:07] *** tardisx joined [00:08] *** tardisx left [00:08] *** hotel_california left [00:08] *** tardisx joined [00:09] *** AlexDaniel left [00:18] *** mr-foobar left [00:19] *** mr-foobar joined [00:23] *** _nadim left [00:23] *** tardisx left [00:23] *** mr-foobar left [00:23] *** tardisx joined [00:24] *** mr-foobar joined [00:28] *** zeki joined [00:29] *** zeki left [00:30] *** sue joined [00:30] *** spider-mario left [00:34] *** hotel joined [00:35] *** mr-foobar left [00:37] *** mr-foobar joined [00:41] *** TEttinger joined [00:43] *** mr-foobar left [00:45] *** mr-foobar joined [00:46] *** espadrine left [00:49] *** sue left [00:55] *** n0xff left [01:04] *** wamba left [01:08] *** alx741 left [01:11] *** TEttinger left [01:15] *** itcharlie left [01:19] *** sue joined [01:24] *** sue left [01:29] ugexe++ # zef's new upgrade command [01:36] *** mr-foobar left [01:37] *** mr-foobar joined [01:39] *** huggable left [01:39] *** huggable joined [01:44] *** mr-foobar left [01:46] *** mr-foobar joined [01:48] *** Ben_Goldberg joined [01:48] *** BenGoldberg left [01:48] *** Ben_Goldberg is now known as BenGoldberg [01:54] tbrowder++ # Revived perl6-examples's travis-ci build \o/ [01:56] *** Khisanth left [02:06] psch: pong [02:11] *** Herby_ left [02:19] *** kid511 left [02:20] *** noganex_ joined [02:22] hi #perl6 [02:23] *** Khisanth joined [02:23] *** noganex left [02:26] \o zacts [02:33] *** pierre_ joined [02:34] *** mr-foobar left [02:35] *** mr-foobar joined [02:39] :-) [02:39] I wonder if there is a lojban module for Perl6 yet? (/me searches) [02:40] *** mr-foobar left [02:41] *** mr-foobar joined [02:55] *** yqt left [02:56] *** mr-foobar left [02:57] *** mr-foobar joined [03:16] *** TEttinger joined [03:26] *** TreyHarris left [03:26] *** molaf joined [03:28] *** mrsolo joined [03:30] *** pierre_ left [03:32] *** cibs joined [03:37] DBIish: ca68436 | (Salvador Ortiz)++ | lib/DBDish/Pg (3 files): [03:37] DBIish: Pg: Add a few connection status methods to $dbh [03:37] DBIish: [03:37] DBIish: Add pg-db, pg-user, pq-host, pq-port, pq-options methods. [03:37] DBIish: These methods can be used to interrogate the status of an existing database [03:37] DBIish: connection object. [03:37] DBIish: review: https://github.com/perl6/DBIish/commit/ca68436d95 [03:41] *** TreyHarris joined [03:43] *** pierre_ joined [03:54] *** pierre_ left [04:00] *** mr-foobar left [04:01] *** mr-foobar joined [04:03] *** Cabanossi left [04:04] *** TreyHarris left [04:05] *** tardisx left [04:06] *** Cabanossi joined [04:07] *** BenGoldberg left [04:11] *** TreyHarris joined [04:13] *** tardisx joined [04:22] *** molaf_ joined [04:24] *** molaf left [04:30] *** TreyHarris left [04:31] *** molaf_ left [04:33] *** TreyHarris joined [04:38] *** molaf joined [04:39] *** mr-foobar left [04:40] *** mr-foobar joined [04:47] *** javan joined [04:48] *** mr-foobar left [04:48] *** mr-foobar joined [04:49] *** sno left [04:54] *** skids left [05:01] *** Cabanossi left [05:03] *** molaf left [05:05] *** Cabanossi joined [05:07] is there a way to know how much memory a given object consumes? [05:11] *** mr-foobar left [05:11] *** khw left [05:13] *** TreyHarris left [05:24] *** javan left [05:27] *** cpage_ left [05:32] *** javan joined [05:36] *** pierrot joined [05:37] *** tardisx left [05:37] *** tardisx joined [05:39] *** huggable left [05:39] *** huggable joined [05:39] *** TreyHarris joined [05:53] *** domidumont joined [05:56] *** rindolf joined [05:57] *** domidumont left [05:58] *** domidumont joined [06:05] morning, #perl6 :) [06:05] *** sno joined [06:05] going to teach Python 3 today. always interesting from a Perl 6 perspective ;) [06:05] & [06:05] *** domidumont left [06:06] *** domidumont joined [06:08] *** _nadim joined [06:13] *** domidumont left [06:13] *** tardisx left [06:14] *** rurban joined [06:21] *** tardisx joined [06:22] *** CIAvash joined [06:24] *** tardisx left [06:29] *** _mg_ joined [06:30] *** TreyHarris left [06:30] *** tardisx joined [06:33] *** xinming_ left [06:34] *** xinming joined [06:35] m: my enum ; say foo [06:35] rakudo-moar a16f0a: OUTPUT«foo␤» [06:36] *** domidumont joined [06:36] *** firstdayonthejob joined [06:36] m: my enum ; my $x = foo; say class { method foo { "hi" } }.new.$x() [06:36] rakudo-moar a16f0a: OUTPUT«()␤» [06:36] m: my enum ; my $x = foo; say class { method foo { "hi" } }.new."$x"() [06:36] rakudo-moar a16f0a: OUTPUT«hi␤» [06:38] *** jjido joined [06:48] *** javan left [07:09] *** jjido left [07:12] *** wamba joined [07:16] *** TreyHarris joined [07:21] *** tardisx left [07:22] *** tardisx joined [07:27] *** rindolf left [07:30] timotimo: you asked about spreading colours to not be confusing the answer is to use HSV colour space not RGB http://blog.mattoates.co.uk/2012/01/generating-perceptually-distinct.html [07:30] *** espadrine joined [07:30] *** TreyHarris left [07:30] I have a nicer version since that post, I can probably add it to one of the colour Perl 6 modules if they dont already have something [07:31] *** dwarring left [07:34] also http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/ may be handy [07:36] *** rindolf joined [07:41] .tell diakopter 'twas about dalek, but moritz++ took care off that [07:41] psch: I'll pass your message to diakopter. [07:43] *** abraxxa joined [07:44] *** daniel-s joined [07:48] *** tardisx left [07:59] *** nutshell joined [08:00] *** domidumont left [08:00] *** nutshell left [08:00] *** domidumont joined [08:01] *** RabidGravy joined [08:07] hah, i just noticed Zoffix++ "Canon in D" example for A::M::N is actually in C :P [08:08] C makes a good foot-canon... [08:09] * psch .oO( "fugue this!" ) [08:11] *** darutoko joined [08:15] *** CIAvash left [08:16] *** TreyHarris joined [08:16] I got another "Internal error: zeroed target thread ID in work pass", this time "frozen" by "panda install". [08:17] *** daniel-s left [08:19] *** tardisx joined [08:20] *** tardisx left [08:24] *** diakopter left [08:29] *** rindolf left [08:30] *** jdv79 left [08:31] *** jdv79 joined [08:31] MARNIN! [08:32] *** TreyHarris left [08:32] *** rindolf joined [08:35] *** domidumont left [08:36] *** domidumont joined [08:40] *** g4 joined [08:40] *** g4 left [08:40] *** g4 joined [08:46] *** daniel-s joined [08:54] given https://github.com/rakudo/rakudo/blob/nom/src/core/Version.pm#L155-L161 if I have a subclass of Version with none of those defined, will these get called? [08:55] *** brrt joined [08:58] *** pierre_ joined [08:58] yes [08:58] *** CIAvash joined [09:00] the type constraints are essentially smart matched against the actual parameter [09:05] *** domidumont left [09:07] *** Relsak joined [09:07] *** Timbus left [09:13] *** loren joined [09:15] *** TEttinger left [09:21] *** TreyHarris joined [09:25] *** rurban left [09:27] *** espadrine left [09:28] *** TreyHarris left [09:28] .ask jnthn i'd like some new ideas where to look with the reframe-jit branch [09:28] brrt: I'll pass your message to jnthn. [09:39] *** huggable left [09:39] *** huggable joined [09:40] *** wamba left [09:41] *** wamba joined [09:42] A simple test case for "Cannot invoke this object" error: https://gist.github.com/salortiz/3ca2276bde035e690c22ea3b3810362c [09:43] sortiz: probably not on reframe-jit? [09:43] *** jjido joined [09:44] no, that is unlikely to be jitcompiled [09:44] *** CIAvash left [09:45] sortiz: can you call $C2 inside the module ? [09:45] lizmat, yes. [09:46] *** ufobat joined [09:47] zostay++ :) [09:47] lizmat, ups, seems no. [09:47] sounds related to the category of "closures in pre-compiled things not working" which afflicts .wrap as well [09:50] yeah, adding "no precompilation' to the module, fixes the issue :-( [09:50] well, bypasses, I guess [09:51] lizmat, $C1 can be called, $C2 no. [09:51] yeah, so it's not the export doing stuff [09:51] it's precomp doing stuff [09:51] https://rt.perl.org/Ticket/Display.html?id=127860 and others [09:51] and it doesn't depend on order [09:52] -ll-exception results in a long diagnose... [09:53] I think it boils down to "closures not surviving precomp under some circumstances" [09:54] in the wrap case it appears that the .candidates attribute winds up empty when precomped [09:54] RabidGravy, Yes, the interesting thing is that the 'say' method call survive, the 'say0 sub no. [09:57] *** TreyHarris joined [09:57] *** loren left [09:58] Well, method calls don't require any kind of lexical lookup to resolve, whereas the &say sub does, and only the latter would be affected by any closure serialization issues. [09:58] 09:28Z jnthn: i'd like some new ideas where to look with the reframe-jit branch [10:00] *** jjido left [10:01] oh, i'm off for lunch anyway :-) [10:01] hmm... it also doesn't seem to catch that I changed the source file sometimes :-( [10:02] brrt: Yeah, I'm stuck in meetings for a bit at the moment [10:02] brrt: So will have to catch up on where you got to / got stuck after that :) [10:05] *** _notbenh joined [10:06] *** TreyHarris left [10:06] *** nowan_ left [10:08] *** nowan joined [10:09] Well, at least is enough golfed. [10:10] *** Timbus joined [10:14] sortiz: did you take out the "is export" ? [10:14] did you try without "our" but with "my" [10:14] In my latest test, yes. [10:15] and only with $C2 in there ? [10:15] ok :-) [10:16] AAARGH TO MANY TERMINAL WINDOWS [10:16] TOO [10:16] *** brrt left [10:16] lizmat, My latest version is only: "BEGIN { -> { say "In closure2" } }();" :-) [10:17] could you try with just "note" in the block ? :-) [10:17] also: without the outer curlies ? [10:18] *** espadrine joined [10:20] without the outer curlies pass: Noted [10:20] (BEGIN -> { note })(); [10:21] BEGIN {-> { note }}(); # This fails [10:24] well, that's an interesting metric :-) [10:24] *** dalek left [10:24] *** dalek joined [10:24] *** ChanServ sets mode: +v dalek [10:26] *** bazzaar joined [10:26] *** TreyHarris joined [10:27] *** d4l3k_ joined [10:27] *** tokomer joined [10:27] *** JimmyZ left [10:29] \o [10:29] *** JimmyZ joined [10:29] *** dalek left [10:29] *** lucs joined [10:30] m: token feline { \s+ 'CAT' } [10:30] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ruDKhrMyNL␤Unable to parse expression in metachar:sym; couldn't find final '>' ␤at /tmp/ruDKhrMyNL:1␤------> 3token feline { \s+ 'CAT' }␤» [10:30] *** ZoffixWin joined [10:30] *** ZoffixWin left [10:30] *** ZoffixWin joined [10:31] $=[<.TOP>||<.BOB>] [10:31] Or did you want to match those as literal strings rather than subrules? [10:32] $=< TOP BOB > if literals [10:32] (Which is short for $=[TOP|BOB]) [10:32] *** Timbus_ joined [10:32] *** nightfro` joined [10:33] jnthn: many thanks, have been trying for last 30mins without luck :-) [10:34] psch++ Good eye. The original actually was in D, but then I realized it was too big so I found another version :) [10:34] *** zhmylove_ joined [10:35] m: BEGIN {-> { note }}(); [10:35] rakudo-moar a16f0a: OUTPUT«Noted␤» [10:36] *** araujo_ joined [10:36] Seems online log isn't loggin/... [10:36] *** TreyHarris left [10:37] *** d4l3k_ is now known as dalek [10:37] *** sftp left [10:37] *** Timbus left [10:37] *** zhmylove left [10:37] *** dalek left [10:37] *** dalek joined [10:37] *** nightfro` is now known as nightfrog [10:37] *** ChanServ sets mode: +v dalek [10:37] *** sortiz left [10:38] *** sortiz joined [10:38] *** lichtkind joined [10:38] *** araujo_ left [10:38] *** sftp joined [10:38] does anybody know how much influence tim had on Perl 5 posftix-deref design? [10:39] thanks in advance [10:39] *** xiaomiao joined [10:39] .oO( who's tim :P ) [10:39] lichtkind: do you mean Tim Bunce? [10:39] And how do you measure the amount of influence :P [10:39] lichtkind: and why don't you ask in #p5p, where this would be on topic? [10:40] moritz: no timtowdi [10:40] sure but i dont get to ask larr< in #pwel5 and besides my article is also a bit about perl 6 [10:40] lichtkind: well, postfix dereference is very much timtowtdi, because prefix derefence already exists :-) [10:41] I think lich is asking how much influence Larry Wall had on the design. [10:41] yes [10:42] I don't think he's involved with P5 any more, is he? [10:42] Which is why it's probably best to ask in #p5p :P [10:42] as far as i know he at lesat ok's such decision so ther eis still some influence [10:43] *** araujo_ joined [10:43] does anyone know what the purpose of empty '{}' in the Perl6::Grammar is? [10:43] like | {} <.panic: "Bogus statement"> [10:43] llfourn: to terminate LTM [10:43] lichtkind: I don't think TimToady's opinion was asked about postfix deref syntax [10:43] moritz: thanks! [10:43] lizmat thank you [10:44] llfourn: {} serves as a sequence point, which prevents backtracking over itself [10:44] psch: {} does not prevent backtracking, I think [10:45] You can backtrack over a {} [10:45] ...did that change? o.O [10:45] no [10:45] Though of course only if you're in a backtracking context. [10:45] oh, then i completely misremembered or misunderstood it [10:46] it does terminate LTM, though, doesn't it? [10:46] As moritz said, it makes anything after it invisible to LTM. [10:46] and much of the Perl 6 grammar is made of token {}s, which don't backtrack [10:46] ohh, i didn't even see moritz++ reply [10:46] * psch goes back to grmbling at MIDI :S [10:47] so why would you want to terminate LTM before a panic? # still understanding regex concepts [10:47] I assume so the panic doesn't too eagerly happen [10:48] right [10:48] there could be a zero width match elsewhere that could avoid... thanks I get it now [10:51] *** kaare_ joined [10:53] *** rindolf left [10:59] *** TreyHarris joined [11:00] *** brrt joined [11:00] *** pierre_ left [11:01] *** rindolf joined [11:02] *** araujo_ left [11:04] *** tokomer left [11:05] specs: e094a61 | RabidGravy++ | S22-package-format.pod: [11:05] specs: Bring META format closer to reality [11:05] specs: [11:05] specs: * resource has been implemented differently [11:05] specs: * version literals should omit "v" [11:05] specs: * use proper JSON bool [11:05] specs: review: https://github.com/perl6/specs/commit/e094a61055 [11:06] jnthn: np, eventually we'll get to the bottom of it :-) [11:06] it seems to only happen in perl6 code, though [11:07] which is why i was thinking about the extops, but that doesn't seem to be it [11:09] right, where was I? [11:09] *** TreyHarris left [11:09] *** domidumont joined [11:10] ask your GPS? :-) [11:13] Talking about S22, is a ':ver' part allowed in 'provides'? [11:19] As panda/zef can uses 'provides' to resolve install requests, I hope so. [11:22] <_nadim> morning all [11:22] *** wamba left [11:22] *** daniel-s left [11:22] <_nadim> jnthn: did you have a look at my patch or shall I create another module? [11:22] *** daniel-s joined [11:23] *** CIAvash joined [11:24] *** wamba joined [11:24] PSA: Richard Hainsworth built http://finanalyst.github.io/ModuleCitation/ which tracks "citation" (reverse dependency) index of Perl 6 modules over time [11:25] _nadim: Didn't have time to fully look over it. I'm think I'm good with some aspects of it, sad to lose the tree though. [11:25] *** TreyHarris joined [11:26] _nadim: So if you feel strongly on that aspect you'll probably need to create your own :) [11:26] <_nadim> jnthn: I can make that optional when one uses the module. [11:26] People generally seem to like G::T so I'm not inclined to overly change its output. [11:27] Yeah, that's another option. [11:27] <_nadim> I also though about some stats about which part of the grammar fires the most. that could be a little hint for optimization. [11:28] what is G::T? [11:28] Grammar::Tracer or so? [11:29] <_nadim> Grammar::Tracer [11:29] _nadim: I think there's a Grammar::Profiler [11:29] <_nadim> jnthn: they may like it because they haen't seen anything else ;) [11:29] <_nadim> I'll check that [11:30] <_nadim> there is indeed https://github.com/perlpilot/Grammar-Profiler-Simple [11:31] *** TreyHarris left [11:34] *** tbrowder left [11:36] .oO is learning to construct grammars and 'stress testing' Grammar::Debugger :-) [11:45] *** sortiz left [11:51] *** wamba left [11:52] ZoffixWin, have you noticed https://github.com/ufobat/Bailador/blob/master/lib/Bailador/Route/StaticFile.pm ? it might be similar to one of your modules you have recently developed [11:57] *** _notbenh left [11:57] *** _notbenh joined [11:59] *** daniel-s left [12:04] http://finanalyst.github.io/ModuleCitation/ it seems that JSON::Fast is eating JSON::Tiny's lunch :-) [12:05] *** domidumont left [12:05] *** TreyHarris joined [12:06] *** domidumont joined [12:07] the fact that I switched JSON::Marshal (which is depended on indirectly by about seven modules) to JSON::Fast probably had some of that :) [12:07] ah, cool [12:12] *** pmurias joined [12:13] is examples/rubyish meant to grow into a full ruby implementation? [12:14] ahh, it seems it was just unbitrotted [12:15] *** ZoffixW joined [12:17] ufobat, I saw it, but I found no documentation at all. Nor was it `used` anywhere else in Bailador. What is the similarity that you mention? [12:18] i just think it serves the same purpose [12:18] i updated the documentation yesterday [12:20] *** TreyHarris left [12:22] ufobat, yeah, it's pretty much the same. The only differences I see is mine takes no configuration and will return a 404 if the file is not there. [12:22] *** _notbenh left [12:23] mine is not supposed to return a 404 because of my ideas for "nested routes" handling :-) [12:24] It kinda bugs me that Bailador sometimes uses kebob-case and sometimes the underscore_case... sessions-config/content_type, cookie-expiration/add_route [12:24] ufobat, I didn't even know you could return a False until just now :) And I wrote ::Static while drinking at the bar :P [12:24] *** macsnowball joined [12:24] I hate flappy tests [12:25] ufobat, all this tells me is I need to actually sit down and read all the docs :) [12:25] ZoffixW, yeah! i was quite unhappy that i didnt write documentation nor a good test for it.. i started to write a "playground web app" to get a feeling whats missing in bailador.. [12:26] to be honest i am just greedy for getting feedback :p [12:27] *** _notbenh joined [12:27] ufobat, my biggest "concern" is concurrency. I've seen someone comment on PSGI module that, say, when you .slurp a file it's all blocking. [12:27] yeah [12:27] absolutly [12:28] i am not sure, but i think first the webservers have a different understanding of the p6w / p6sgi draft [12:28] and 2nd the content can be a supply [12:28] If you're using IO::Socket::Async and tap that, the incoming requests are automatically processed across multiple threads anyway. [12:29] so in fact the staticfile should return a supply [12:29] well could [12:30] *** macsnowball left [12:30] *** macsnowball joined [12:30] i shouldn't ever say should again, i know [12:31] but isn't it better if the staticfile thingy would return a supply instead of the Blob? [12:31] If there isn't a module that does async file I/O to a supply, I'd make that separately first [12:32] it may have a separate utility [12:32] i dont know, i was just thinking about the psgi spec so far. i dont know whats easy or available so far :-( [12:32] I think the idea of p6 IO is that you don't have to worry about blocking/non-blocking in situations like this? [12:33] (as long as the requests are being handled Async) [12:33] Well, I now mentioned Bailador::Route::StaticFile in Bailador::Plugin::Static. My only reservation against deleting it entirely is that I feel I shouldn't need to configure anything for my app to serve static files. It should come by default (with, say, using `public` dir to look for static files at, if all the routes fail). An app that doesn't use any static files ever is a rare beast. [12:33] *** sue joined [12:33] * ZoffixW & # work [12:33] *** ZoffixW left [12:34] I keep thinking it's Sunday [12:34] <[Coke]> sadly, nope [12:35] llfourn, i think the idea is that you webapp is slurping the file, responding to the http server, and while asyncronously reading the file the server could respond to the client [12:35] if it is a static file, why slurp the file in userland at all? [12:35] if you "slurp" the file first, then keep the promise and then the server responds it is not as good as it could be [12:36] isn't there a way to directly pipe a file to a handle ? [12:36] first you need to check if you use any kind of encoding.. URL encoding or form multipart thingy i think [12:36] there is in posix, yeah [12:36] ufobat: I don't think it matters. Unless you are trying to say that you want to return chunks of the file to client. When .slurp is called the whole webserver is not blocking. [12:37] i forgot what it's called, though [12:37] sendfile isn't it? [12:38] could be [12:38] <_nadim> Yo, anyone here that would like to share a bigger place in cluj for YAPC? [12:38] yeah, it is [12:38] https://github.com/zostay/P6SGI fyi [12:40] the Supply thing in the p6sgi response is more useful for streaming type thingies where you need to send the start of the response to the client and then carry on sending an unknown amount of data [12:41] _nadim: you mean share a room? [12:41] *** Sgeo_ left [12:41] <_nadim> a room or rather an appartment [12:41] Oh, where are you staying? [12:41] <_nadim> I'm good for a room if we are not many [12:42] <_nadim> I aven't decided anything, there are appartments on rbnb, 3 rooms, and smaller ones too [12:42] a real world example is maybe when you compute something that takes its time and you'd like to transmit what you've done so far [12:42] ? [12:44] well a real, real world example is audio streaming where the output doesn't end until the client disconnects, but you need a response for the client to know what it is going to get [12:44] yes! [12:46] the only reason I implemented the streamthing server from scratch was that there is no way to do the reverse in any of the current implementations [12:46] <_nadim> DrForr: here's an example https://www.airbnb.com/rooms/12693204?checkin=08%2F23%2F2016&checkout=08%2F27%2F2016&guests=6&s=N5l-eWp7 [12:46] i.e. a connected client will keep sending data for ever but needs a response up front to know that it was accepted [12:48] when exactly is YAPC in Cluj? [12:49] <_nadim> 24-26 August. I plan to come the day before and leave the day after [12:50] hmm, hope i'll be able to come this year [12:50] although i've already missed GPW and NLPW, which were closer by [12:51] That's probably just a mile or so from my place. [12:51] DrForr: what is your place [12:52] Uh, my apartment? :) [12:53] fair enough [12:54] *** Sgeo_ joined [12:56] var InvalidVersion = props => [12:56] [12:56] Sorry! This tutorial format version, {props.version}, is not supported. [12:56] Supported version: {supportedVersion} [12:56] argh! [12:56] sorry [12:56] actually it just occurred to me that the "source client" connection for a streaming server could do what Websocket::PSGI does and respond but continue reading from the socket [12:56] :-) [12:57] do we have a pg client actually? [12:58] the DBIish pg thing works fine [12:58] alpine perl workshop has switched datespace with YAPC this year [12:58] pg <3 [12:58] well, postgresql, anyway [13:03] * pmurias needs to come up with a name for his rakudo.js YAPC::EU talk [13:04] *** sue left [13:05] "Anything that can be compiled to JavaScript will be compiled to JavaScript, Perl 6 edition" :P [13:07] *** molaf joined [13:07] *** Sgeo_ left [13:09] *** sufrostico joined [13:11] *** sue joined [13:13] _nadim: (yapc) sounds good :) [13:14] *** macsnowball left [13:14] *** macsnowball joined [13:18] tadzik, just invited you to the perl6-noise-gang "organisation" [13:19] yay! [13:19] anyone else? [13:22] *** macsnowball left [13:22] *** macsnowball joined [13:23] *** macsnowball left [13:27] ugh [13:28] everything has suddenly become really really slow [13:28] yes, I will get to finishing and publishing my music sheet editor:) [13:29] do it! [13:29] tadzik++ [13:29] I guess I could also port my midi-to-musicsheets thing to perl 6 [13:30] it may turn out to be a bit computationally heavy [13:31] *** daniel-s joined [13:36] *** daniel-s left [13:36] *** sufrostico left [13:37] *** sufrostico joined [13:38] *** TreyHarris joined [13:39] *** huggable left [13:39] *** huggable joined [13:43] <[Coke]> (sixfix) ... that escalated quickly. [13:44] *** sue left [13:48] *** pierre_ joined [13:49] *** TreyHarris left [13:51] ...sixfix? :) [14:01] *** domidumont1 joined [14:01] *** domidumont left [14:01] google says it's some kind of diet/life style fad, I guess that's not what we're taling about here ;-) [14:02] sounds like a mailing list [14:05] *** cdg joined [14:14] *** tharkun left [14:15] *** skids joined [14:15] *** loren joined [14:15] *** pierre_ left [14:16] *** tharkun joined [14:16] *** pierre_ joined [14:18] *** itcharlie joined [14:20] *** khw joined [14:21] *** mcsnolte joined [14:25] *** TreyHarris joined [14:26] http://sixfix.nigelhamilton.com [14:29] ah yes [14:32] *** g4 left [14:39] *** TreyHarris left [14:40] *** daniel-s joined [14:42] *** rindolf left [14:50] *** rindolf joined [14:57] *** sue joined [14:57] slow day today [14:57] *** brrt left [15:02] *** ufobat left [15:11] *** sergot_ joined [15:12] *** shmibs_ joined [15:13] *** remmie2 joined [15:13] *** shlomif joined [15:13] what's the canonical form of an IRC URI? [15:13] is it something like irc://server/channel ? [15:13] *** Tux__ joined [15:14] *** aindilis` joined [15:14] *** rindolf left [15:14] *** shlomif is now known as rindolf [15:15] https://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt [15:15] *** [Coke]_ joined [15:16] *** _mg__ joined [15:16] *** PotatoGim_ joined [15:17] *** nowan_ joined [15:18] *** mrsolo_ joined [15:18] *** lichtkind_ joined [15:18] *** cosarara_ joined [15:19] *** Brock joined [15:20] *** hoelzro_ joined [15:20] *** sufrosti1o joined [15:20] *** ambs_ joined [15:21] *** remmie left [15:21] *** mrsolo left [15:21] *** pierre_ left [15:21] *** JimmyZ left [15:21] *** [Coke] left [15:21] *** nowan left [15:21] *** damnlie left [15:21] *** Juerd left [15:21] How does :sym work on regexes... 1) can X be multiple characters, 2) does have to appear in the regex, 3) can the regex be more than just [15:21] 4) can you arbitrarily-parameterize regexes, and/or are there any other :sym<>-like things [15:21] *** zacts left [15:21] *** _mg_ left [15:21] *** sufrostico left [15:21] *** _mg__ is now known as _mg_ [15:22] *** silug joined [15:22] *** lichtkind left [15:22] *** damnlie joined [15:22] mspo, so yes [15:22] :) [15:23] *** TeamBlast joined [15:23] *** Relsak left [15:23] *** mrsolo_ is now known as mrsolo [15:24] *** JimmyZ joined [15:24] m: grammar G { proto token foo {*}; token foo:sym { } }; G.parse("anything", :rule) [15:24] rakudo-moar a16f0a: ( no output ) [15:24] teatime: yes, no, yes, yes-ish :) [15:25] i think 4 is yes/no..? [15:25] *** PotatoGim_ is now known as PotatoGim [15:26] *** sno left [15:26] as in, any regexen can take an abritrary amount of parameters, but i at least don't know of anything else but :sym<> that works that way [15:26] depends on exactly what is meant by ":sym<> like things" [15:27] i read it as "adverbs to the declaratee" [15:27] but, "no" to that one is a very good approximation anyway. [15:27] I think I read earlier that the 'regex foo { }' syntax cannot take a parameter list, or did I not? [15:27] It can take a paraemter list too [15:28] *** loren left [15:28] The :sym thing isn't about parameters though [15:29] It's about collecting candidates of a protoregex together [15:29] The choice of foo doesn't matter, unless you use in which case that is replaced with $=[foo] by the compiler [15:30] RabidGravy: yes I think so too [15:30] RabidGravy: but you can also use ,options it seems [15:30] is it really [foo] and not ['foo'] ? [15:30] *** zacts joined [15:30] nm, I don't actually care about that [15:31] it's close enough for jazz and I'm not sure any actual browsers support it without a plugin anyway [15:31] m: for ^Inf { .say if ($_ eq .flip given .base(2)) } # binary palindromes [15:31] m: for ^Inf { .say if $_ eq .flip given .base(2) } # binary palindromes, in binary [15:31] camelia: sorry about the Inf :/ [15:31] rakudo-moar a16f0a: OUTPUT«(timeout)0␤1␤3␤5␤7␤9␤15␤17␤21␤27␤31␤33␤45␤51␤63␤65␤73␤85␤93␤99␤107␤119␤127␤129␤153␤165␤189␤195␤219␤231␤255␤257␤273␤297␤313␤325␤341␤365␤381␤387␤403␤427␤443␤455␤471␤495…» [15:31] rakudo-moar a16f0a: OUTPUT«(timeout)0␤1␤11␤101␤111␤1001␤1111␤10001␤10101␤11011␤11111␤100001␤101101␤110011␤111111␤1000001␤1001001␤1010101␤1011101␤1100011␤1101011␤1110111␤1111111␤10000001␤10011001␤10100101␤10111101␤11000011␤11011…» [15:32] those parens come out really nice. I hadn't really realized that you could do that, but I tried it, and it worked! \o/ [15:33] m: for ^0b111111 { .say if .&[eq] .flip given .base(2) } # away with explicit topics! [15:33] rakudo-moar a16f0a: OUTPUT«0␤1␤10␤11␤100␤101␤110␤111␤1000␤1001␤1010␤1011␤1100␤1101␤1110␤1111␤10000␤10001␤10010␤10011␤10100␤10101␤10110␤10111␤11000␤11001␤11010␤11011␤11100␤11101␤11110␤11111␤100000␤100001␤100010␤100…» [15:34] and minus the one extra space it's the same length too [15:34] oh, but it doesn't work... :/ [15:34] :P [15:35] m: for ^0b111111 { .say if .&[eq]: .flip given .base(2) } [15:35] rakudo-moar a16f0a: OUTPUT«0␤1␤11␤101␤111␤1001␤1111␤10001␤10101␤11011␤11111␤100001␤101101␤110011␤» [15:35] missing colon [15:35] yeah, i didn't really parse this right i guess :) [15:35] nice. [15:35] very Perlonic :) [15:36] too bad you can't use "with" instead of "given" ;) [15:38] m: (.say if .&[eq]: .flip given .base(2)) for ^0b111111 [15:38] rakudo-moar a16f0a: OUTPUT«0␤1␤11␤101␤111␤1001␤1111␤10001␤10101␤11011␤11111␤100001␤101101␤110011␤» [15:40] teatime: $='foo' would be another way :) [15:40] Those forms all compile into the same thing anyway :) [15:41] m: grammar G { proto token foo {*}; token foo:sym<$x> { } }; say G.parse('$x', :rule) [15:41] rakudo-moar a16f0a: OUTPUT«「$x」␤ sym => 「$x」␤» [15:41] m: say '$x' ~~ / [$x] / [15:41] *** _mg_ left [15:41] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8J16GL07DJ␤Variable '$x' is not declared␤at /tmp/8J16GL07DJ:1␤------> 3say '$x' ~~ / [7⏏5$x] /␤» [15:43] Well, of course you need quotes if the thing contains non-alphanumerics [15:43] jnthn: $='foo' != $=[foo] if instead of foo you have something like + [15:44] m: enum Player (Player1 => +1, Player2 => -1); sub opponent(Player $p --> Player) { Player(-$p) }; say opponent(Player1); say opponent(Player2) [15:44] rakudo-moar a16f0a: OUTPUT«Player2␤Player1␤» [15:44] so would you do it as regex foo:sym<'@non-alpha stuff'> ? [15:44] Well yeah, but this is all rather silly given the compiler transforms things using ASTs [15:44] Not text. [15:44] m: enum Player (Player1 => +1, Player2 => -1); sub opponent(Player $p --> Player()) { -$p }; say opponent(Player1); say opponent(Player2) [15:44] rakudo-moar a16f0a: OUTPUT«Type check failed for return value; expected Player(Any) but got Int (-1)␤ in sub opponent at /tmp/DznC9f91X6 line 1␤ in block at /tmp/DznC9f91X6 line 1␤␤» [15:44] aww :) [15:44] jnthn: I'm just trying to figure out how it works and/or what language feature it is an instance of. [15:44] jnthn: do we have atomic file rename support for Windows? [15:44] So it's a non-issue :) It just produces an AST node that literally matches whatever's in the :sym<...> :) [15:44] * masak wonders if implementing coercing return types would be within his ken [15:44] *** domm joined [15:45] is the < > here the quote-words operator? [15:45] :sym is an adverb [15:45] The compiler recognizes it and treats it specially on token/rule/regex [15:47] nine_: "It's complicated"... http://stackoverflow.com/questions/167414/is-an-atomic-file-rename-with-overwrite-possible-on-windows has some info [15:48] ok, it is quote words.. does that mean maybe you can do :sym「\」 ? [15:48] Think that'd work out OK [15:49] jnthn: ack turns up 0 results for ReplaceFile in our code base, so I guess the answer is very close to "no" [15:50] nine_: Oh, I interpreted the question more as "is it even possible on Windows" ;) [15:50] nine_: We use libuv, and *it* may end up calling ReplaceFile [15:50] Somehow search results for "flock() performance" are much more sheepish than I had anticipated... [15:50] jnthn: don't we bundle libuv? [15:51] heh, :sym("\\") works but :sym「\」 and :sym(「\」) say malformed regex *shrug* [15:52] nine_: But I'm reading the MSDN docs on ReplaceFile and...it doesn't say anything about atomicity :/ [15:52] *** domidumont1 left [15:53] nine_: Yes, MoarVM staticly links in libuv and implements most of its IO using it [15:53] er, nm, :sym(「\」) works.. so that's not *as* weird [15:54] nine_: Reading around a bit, I see various indications that ReplaceFire is indeed not atomic. [15:56] *** kurahaupo joined [15:57] jnthn: ok, thanks! I guess I should first sit down and think through how much consistency I'm actually gonna need anyway. [15:57] *** sue left [15:58] *** prammer joined [15:58] teatime: I wonder why there isn't a postfix 「」 like there is for <> [15:59] I thought 「」 was more like '' than like <> [16:00] heh, I thought '' and <> were more alike than different :) [16:00] Hm...I guess the colonpair parsing is a little less liberal than I remembered :) [16:00] (As in, it's not "any opener/close will do" [16:00] ) [16:00] masak: see? even jnthn expected it to work :) [16:01] heh :) [16:01] heh [16:01] I'm frazzled from having to attend a couple of meetings today, though, so I'd not read too much into that :P [16:02] ` is there a way to know how much memory a given object consumes? [16:02] <> is quoteword [post]circumfix and 「」 is raw quote construct (no escaping anything) [16:02] ^^ I would like to know this too. [16:03] (Afternoon #perl6) [16:03] Xliff: Devel::SizeMe (as soon as someone writes something like that for Rakudo ;) [16:04] LOL! [16:04] Will that work with Inline::Perl5? [16:04] *** ptolemarch joined [16:04] try it! That could be interesting [16:05] likely though, you'll get the size of the wrong things [16:05] or not enough of the right things [16:05] I will! Can I dump any SEGVs in your inbox? [16:05] *** araujo joined [16:05] There's a heap profiler [16:05] That you can use to understand memory use [16:06] *** Actualeyes left [16:06] Fairly early, but already been good enough for me to hunt/fix leaks :) [16:06] jnthn, you mean "perl6 --profile" ? [16:07] I have used it. And it is nifty. [16:07] Xliff: That's the instrumenting profiler, which is good for working out what allocates memory etc. [16:07] Oh. My bad. [16:07] *** TreyHarris joined [16:07] jnthn: you can't run the heap profiler from within a running program, can you? [16:07] Xliff: But less good at telling you actual sizes, and how memory is being retained [16:07] The heap profiler is --profile=heap [16:07] Right. But knowing size of objects in runtime can be useful. [16:08] Which spits out a huge file that you can analyze with App::MoarVM::HeapAnalyzer [16:08] Xliff: There's no way to do that right now [16:08] jnthn, gotcha. [16:08] Hence why I've just done "cpan install Devel::SizeMe". Time to see if something explodes. BBIAB. [16:09] And lo, something did! Namely SizeMe.o [16:09] :) [16:09] * jnthn goes to rest and make dinner [16:09] bbl o/ [16:10] * masak .oO( truly a SizeMic event ) [16:10] I will be highly surprised if Inline::Perl5 + Devel::SizeMe will be able to tell you anything about the bits of memory that Rakudo is holding onto. (if you can even get it to work) [16:10] One of many... "SizeMe.xs:2226:57: error: ‘PL_L1Posix_ptrs’ undeclared (first use in this function)" [16:11] perlpilot: I just tried. It failed. Miserably. [16:11] But some of that is likely due to my Debian install. [16:11] *** sue joined [16:11] * Xliff makes note to try this again when he next boots into Ubuntu. [16:12] *** rurban joined [16:13] *** ZoffixW joined [16:14] Xliff, ::SizeMe fails to install for me completely. [16:14] This works: perl6 -e 'use Devel::Size:from ; say size "A string"' [16:14] Gives me '34'... I wonder if there's any truth to it [16:15] compare it with the equivalent perl5 program? [16:15] psch, there isn't one. Perl 5's strings aren't objects :) [16:16] so Devel::Size doesn't work on a string in Perl 5? [16:16] Ah, I see what you mean. [16:16] ZoffixW, interesting! Thanks. [16:16] Gives 34 in Perl 5 too: perl -wlE 'use Devel::Size qw; say total_size "A string"' [16:17] *** rurban left [16:17] Can anyone tell me the lag time it takes for modules.perl6.org to show new modules in the ecosystem? [16:17] So I guess it just reports whatever it is when it gets translated to Perl 5 by Inline::Perl5 (/me is unsure what it does) [16:17] it's like under 2 hours i think [16:17] ZoffixW: that's what i'd have thought. Inline::Perl5 builds... yeah [16:17] Xliff: I think it's something like 15 or 30 minutes [16:17] (but I dunno) [16:17] Xliff, about 2 hours. Here's a full update log, see the timestamps: http://modules.perl6.org/update.log [16:17] Hmm... I thought RabidGravy added Audio::OggVorbis into the ecosystem, but panda isn't seeing it. [16:18] I think he merged either Thursday or Friday. [16:18] I did [16:18] Xliff, the process is started at :20 and :40 minutes of each our, unless it's already running [16:18] [Mon May 2 15:39:41 2016] [error] Failed to parse: JSON error: '"' expected, at character offset 264 (before "#"Audio::OggVorbis" ...") at /home/modules.perl6.org/perl5/perlbrew/perls/perl-5.22.0/lib/site_perl/5.22.0/JSON/Meth.pm line 34. [16:18] That's because there's a JSON error [16:19] D'oh! [16:19] How did I miss that. [16:19] Lemme see. [16:19] Hm, there's also a whole bunch of 404s on supernovus's modules :/ [16:19] Xliff, there's a hashmark "comment" on the first line of `provides` [16:20] *** sue left [16:20] if your module ever doesn't show up, check the update.log and search for your module, I'm pretty sure it's always going to be a JSON error of some kind [16:20] *** TreyHarris left [16:20] It should just fix my broken JSON for me ;) [16:20] Use Test::META + Travis :P [16:21] OK. I had a spurious comment in META.info -- fixed. [16:21] So I will wait an hour and see if that was indeed the problem. [16:22] ZoffixW, these are new to me. I will look into it., [16:23] yeah even just "json_xs ecosystem: 8b7824d | (Zoffix Znet)++ | META.list: [16:23] ecosystem: Bunch of META.info -> META6.json fixes [16:23] ecosystem: review: https://github.com/perl6/ecosystem/commit/8b7824d57c [16:23] *** Praise left [16:24] # Failed test 'Can load "JSON::Marshal" ok' [16:24] # at t/010-use.t line 7 [16:24] # ===SORRY!=== [16:24] # Could not find JSON::Fast:ver<0.4..*> at line 60 in: [16:24] WTF? [16:24] old [16:24] panda install JSON::Fast [16:24] it's because panda bundles JSON::Fast [16:25] Yeah. My first instinct, and it's working now. [16:25] and until recently that was a version that JSON::Marshal doesn't work with [16:25] But I thought panda had already installed it. [16:25] yeah v0.3 until about a week ago though [16:25] I would expect JSON::Marshall to automatically fix dependency, though. [16:25] Maybe my expectations are unfounded?!? [16:26] *** wamba joined [16:26] yes [16:26] please feel free to make panda understand versioned dependencies [16:27] *** tharkun left [16:27] *** tharkun joined [16:27] *** [Coke]_ is now known as [Coke] [16:28] *** Praise joined [16:28] *** Praise left [16:28] *** Praise joined [16:29] zef can understand, I think? [16:29] zef understands versioned dependencies but panda doesn't so putting them in the META file would cause it not to work for panda [16:29] *** Timbus_ left [16:29] I'm getting a feeling zef is superior to panda in many ways. [16:32] well, tadzik has always said it wasn't really his area, and he mostly continues to work on panda because people keep insisting on using it [16:33] Is that the case because it's packed by default with R*? [16:34] RabidGravy, are you trying to trap me in a non-trivial task coz... I asked for it? :P [16:34] (That is how Audio::OggVorbis got started...I'm sensing an MO) [16:34] Xliff, no, you're just invited to make software better :) [16:35] doc: ab41b98 | (Jan-Olof Hendig)++ | doc/Language/functions.pod: [16:35] doc: Fixed typo in example, nd3i++ [16:35] doc: review: https://github.com/perl6/doc/commit/ab41b988af [16:35] ZoffixW, *HAH* [16:35] yes, make stuff better [16:35] ZoffixW, it would get worse before it got better. [16:35] Coz...bugs. [16:35] Xliff, write tests :) [16:36] And Test::META is slightly useful. "Your META.info --> EPIC FAIL" -- Even gives reason, but... no location. [16:36] Location of what? [16:36] https://github.com/Xliff/p6-audio-oggvorbis/blob/master/META.info [16:37] # Failed test 'META parses okay' [16:37] # at site#sources/62C0821641BBCD0B13EDADAEA5223AD3BA53FBE2 (Test::META) line 79 [16:37] # at 470: json requires object keys to be strings [16:37] But all my keys are strings. [16:37] I have yet to have coffee. Maybe coffee will help. [16:38] * RabidGravy looks [16:38] ZoffixW: do you think https://github.com/perl6/doc/issues/48 can be closed? [16:38] Xliff, you have a trailing comma in provides [16:38] Xliff, http://jsonlint.com/ is your friend :) [16:38] *** nd3i joined [16:39] im looking for something like a reverse zip (Z) operator [16:39] (╬ಠ益ಠ) [16:40] I thought extra commas like that could be safely ignored. [16:40] * Xliff makes note of jsonlint. [16:40] dogbert2, yeah, close it. [16:40] given @c = , I'd like to get ((a b c d)(s t u v)) [16:41] so far, I just do two passes with substr [16:41] Seems there should be a more consise approach [16:42] ZoffixW: done [16:42] dogbert2++ [16:44] not really a zip, is it? more of a hyper ~ [16:45] nd3i: just pushed a fix fo https://github.com/perl6/doc/issues/479 [16:45] can't hyper a split() though [16:45] m: my @c = ; my @res; @c».comb.map({ @res[0].push: $_[0]; @res[1].push: .[1]}); say @res [16:45] rakudo-moar a16f0a: OUTPUT«[[a b c d] [s t u v]]␤» [16:46] Not sure if this is any better than two-pass substr :/ [16:46] m: my @c = ; say [Z] @c>>.comb [16:46] rakudo-moar a16f0a: OUTPUT«((a b c d) (s t u v))␤» [16:46] waaat [16:46] psch++ [16:47] holy cow [16:47] nd3i: so "nah, it's a zip" :) [16:48] dogbert: cool! [16:49] psch: ima have to chew on that a bit ... thx! [16:50] I have yet to get to the Z operator. [16:50] psch++ # Mind... blown. [16:52] * Xliff plays with camelia. [16:53] it's really just @c[0].comb Z @c[1].comb Z @c[2].comb Z @c[3].comb [16:54] I don't get what it does though. The docs for Zip operators (http://docs.perl6.org/language/operators#Zip_Operators) say "The zip metaoperator, Z, will apply a given infix operator to pairs"... [16:54] But in this case, there's no given infix operator [16:54] m: say (1 Z 2).WHAT [16:54] rakudo-moar a16f0a: OUTPUT«(Seq)␤» [16:54] ZoffixW: defaults to , [16:54] m: say (1 Z 2).perl [16:54] rakudo-moar a16f0a: OUTPUT«((1, 2),).Seq␤» [16:55] lizmat, thanks [16:55] *** jjido joined [16:55] m: dd 1 Z 2 [16:55] rakudo-moar a16f0a: OUTPUT«((1, 2),).Seq␤» [16:55] m: dd a Z=> 42 [16:55] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nyEVVQMkRY␤Undeclared routine:␤ a used at line 1␤␤» [16:55] Soooo.... [16:56] m: dd a =>Z 42 [16:56] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gqlMnGwQ2O␤Undeclared name:␤ Z used at line 1␤␤» [16:56] hmmm... [16:56] lizmat: Z doesn't autoquote the lhs [16:56] m: dd 'a' =>Z 42 [16:56] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/46F1wMar0g␤Undeclared name:␤ Z used at line 1␤␤» [16:56] Easy list interleave: [Z](@l1, @l2, @l3).flat? [16:56] m: dd 'a' Z=> 42 # sigh [16:56] rakudo-moar a16f0a: OUTPUT«(:a(42),).Seq␤» [16:57] doc: e4bcf5f | (Zoffix Znet)++ | doc/Language/operators.pod: [16:57] doc: Mention , as default infix for Z operators [16:57] doc: review: https://github.com/perl6/doc/commit/e4bcf5f55f [16:57] m: my @l1 = ^4; my @l2 = 10..13; my @l3 = 100..103; say [Z](@l1, @l2, @l3].flat [16:57] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/i4NTJNP1yZ␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/i4NTJNP1yZ:1␤------> 3my @l3 = 100..103; say [Z](@l1, @l2, @l37⏏5].flat␤» [16:57] m: my @l1 = ^4; my @l2 = 10..13; my @l3 = 100..103; say [Z](@l1, @l2, @l3).flat [16:57] rakudo-moar a16f0a: OUTPUT«(0 10 100 1 11 101 2 12 102 3 13 103)␤» [16:57] m: my @l1 = ^4; my @l2 = 10..13; my @l3 = 100..103; say [Z](@l1, @l2, @l3) [16:57] rakudo-moar a16f0a: OUTPUT«((0 10 100) (1 11 101) (2 12 102) (3 13 103))␤» [16:57] ok, have to remember, meta[] applies to operators; hyper >><< applies to oper or methods [16:58] Damn if that didn't just answer a problem I was worried about with Audio::OggVorbis v0.0.2! ^_^ [16:59] m: sub plus($a, $b) { $a + $b }; say [&[plus]] ^4 [16:59] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wDIczVRYHv␤Missing infix inside []␤at /tmp/wDIczVRYHv:1␤------> 3sub plus($a, $b) { $a + $b }; say [&[7⏏5plus]] ^4␤ expecting any of:␤ infix␤ infix noun␤ infix stoppe…» [16:59] ergh, every time... :) [16:59] m: sub plus($a, $b) { $a + $b }; say [[&plus]] ^4 [16:59] rakudo-moar a16f0a: OUTPUT«6␤» [16:59] nd3i: [&sub] makes an infix of your sub though [16:59] Now... the trick is to interleave arrays stored inside a hash! [17:00] m: say [[&infix:<+>]] ^4 [17:00] rakudo-moar a16f0a: OUTPUT«6␤» [17:00] m: say [+] ^4 [17:00] rakudo-moar a16f0a: OUTPUT«6␤» [17:00] m: my @a = ^5; say ++<<@a # and ops on hyper works too [17:00] rakudo-moar a16f0a: OUTPUT«[1 2 3 4 5]␤» [17:01] oh, "oper or methods" [17:01] So if I have a list of lists... how can I get [Z] to operate on each list as an independent argument? [17:01] * psch misread [17:02] $lol».comb [17:02] ? [17:02] m: my @a = ([1,2,3],[4,5,6]); say @a>>.&[+]: 1 [17:02] rakudo-moar a16f0a: OUTPUT«[[2 3 4] [5 6 7]]␤» [17:03] Xliff: not sure what you want to zip there..? [17:04] m: my @c = (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'); say @c[0] Z @c[1] [17:04] rakudo-moar a16f0a: OUTPUT«(((1 a) (2 b)))␤» [17:04] How come these don't get grouped like the original >>.comb stuff did? [17:05] I don't get why it's [Z] and not [\Z] :/ [17:06] ZoffixW: to follow up on what mst said, I have another reason for keeping panda alive, and that's dogfooding the rest of the ecosystem, which zef doesn't really do [17:07] panda keeps on using our http clients, TAP processors etc to give them usage and stresstests, zef just ships their own stuff for reasons I completely understand [17:07] m: my @c = (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd');say @c[0] Z=> @c[1] [17:07] rakudo-moar a16f0a: OUTPUT«((1 a) => (2 b))␤» [17:07] *** espadrine left [17:07] psch: [Z](@l1, @l2, @l3).flat… Except the @lₙ list are in a listref [17:07] I have a bit more tuits for panda these days, and will be shipping a major release in the coming days, which will hopefully catch up zef's superiority a bit :) [17:08] So... basically a zip on each list element in a listref. [17:08] m: my @c = (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'); say @c[0].list Z @c[1].list [17:08] rakudo-moar a16f0a: OUTPUT«((1 2) (a b))␤» [17:09] tadzik, I see that reason as a negative, TBH, but I'll await to see the major update :P [17:09] "$() is a shorthand for $($/.made // ~$/)" ... it would be handy if match objects had a method or attrib that did the same thing as $(), for those cases where it isn't named $/ [17:09] Xliff: "listref"? [17:09] arrayref [17:09] Still no coffee.... proper terminology eludes me. [17:09] Maybe I should fix that. [17:09] Xliff: an Array in a Scalar..? :) [17:10] ZoffixW: well, I care about overall perl6 improvements more than I do about panda's spotless reputatoin, tb [17:10] *tbh [17:10] m: my $l1 = ^4; my $l2 = 10..13; my $l3 = 100..103; say [Z](@$l1, @$l2, @$l3).flat # like this..? [17:10] rakudo-moar a16f0a: OUTPUT«(0 10 100 1 11 101 2 12 102 3 13 103)␤» [17:10] psch: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)); say $lol [17:10] m: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)); say $lol [17:10] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hz_iDvUjva␤Unable to parse expression in array composer; couldn't find final ']' ␤at /tmp/hz_iDvUjva:1␤------> 3 $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)7⏏5); say $lol␤ expecting any of:␤ …» [17:11] m: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]; say $lol [17:11] rakudo-moar a16f0a: OUTPUT«[(1 2 3) (4 5 6) (7 8 9)]␤» [17:11] ohh [17:11] but I understand why ugexe++ would rather ship his own versions for stuff rather than endlessly awaiting upstream fixes :) [17:11] Yah [17:11] m: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]; say [Z](|$lol).flat [17:11] rakudo-moar a16f0a: OUTPUT«(1 4 7 2 5 8 3 6 9)␤» [17:11] \o/ [17:11] tadzik, how come those HTTP clients and TAP processors aren't in `provides` of panda? [17:11] because panda doesn't provide them [17:11] psch++ # My hero of the day. I owez you a beer. [17:11] it depends on them [17:12] Random question... is anyone in here from the DC area? [17:12] tadzik, err, right, I meant why aren't they listed in `depends`? [17:12] HTTP::UA is an optional dependency for a few reasons [17:12] TAP is a hard dependency, but in the new branch that's not merged yet [17:12] tadzik, right, I guess that's my opinion too I guess... "endlessly awaiting upstream fixes" while millions of users (one can dream!) are stranded and can't install Perl 6 modules :) [17:13] ah, now you're dramatizing :) [17:13] it's nowhere near as bad [17:13] Alright :) [17:13] *** TreyHarris joined [17:15] *** frew joined [17:15] to be honest in at least two cases I have ditched upstream dependencies and reimplemented myself because of that [17:15] other thing is that every time I myself tried to use zef something either wasn't working or wasn't working in a way I liked it (ie fast enough), so I at least have a reason to keep panda alive so I myself can enjoy it :P [17:15] even though these days redpanda does everything I need a module installer to do, and is much faster than everything else [17:16] Yeah, I did notice zef was significantly slower than panda [17:16] *** _mg_ joined [17:16] strange, zef is quite a bit faster on my machine than panda is [17:17] new panda is much faster than current panda too [17:17] maybe because it doesn't have all the features just yet :P [17:17] :D [17:17] but I guesstimate it will remain that way anyway [17:19] \o/ Finally clicked when [Z] and not [\Z] [17:19] Getting old :'( brain is slow [17:19] s/when/why/; [17:19] zef can use whatever http client, test harness, etc fwiw. you just have to write a small facade and add it to the config file. Each phase of zef is entirely pluggable, and not just with a singleton but with aggregations [17:20] *** Juerd joined [17:20] Net::HTTP and Grammar::HTTP both were originally zef http clients [17:20] *** nd3i left [17:20] *** TreyHarris left [17:22] having got the domain noisegang.com I am going to have to get noiseganga.com as I keep typo-ing it ;-) [17:22] *** Timbus joined [17:22] RabidGravy, get noiseganja.... just coz [17:23] s/noiseganja/noiseganja.com/ [17:23] it is essentially a dependency inversion engine with aggregation [17:26] *** TreyHarris joined [17:28] RabidGravy, you're rather a prolific module author :) more than twice the modules of the second-most-prolific author: https://gist.github.com/zoffixznet/56f4d47693937cd25559b1c7cc0c1be0 [17:29] I think it's some kind of undiagnosed mental illness [17:29] ;-) [17:30] what happens is that I start making something and then I find I need something else so write that and so on [17:30] *** dupek joined [17:30] hi :) [17:30] Same :) Hoping to successfully write a MultiMarkdown module by the end of the week. [17:31] \o [17:31] *** jjido left [17:31] I'm also procrastinating about five [17:32] RabidGravy: yak stack effect [17:32] I tend to start a few with sketches and put them aside when I get a better idea [17:32] tadzik: a cursory glance at readmes/helps seems to support zef having more features currently (rdepends, test, fetch, build, upgrade, and several flags) [17:33] *** TreyHarris left [17:33] *** CIAvash left [17:34] I'm having a spell of going back and fixing some of the older modules at the moment [17:36] *** CIAvash joined [17:36] *** domidumont joined [17:37] *** jjido joined [17:37] *** ZoffixW left [17:38] *** sno joined [17:39] ZoffixWin: with GitHub orgs a better tally of authors would be traversing META6 files [17:39] *** huggable left [17:39] *** huggable joined [17:39] dynamic/lazy plugins for each phase, aggregation (results from multiple content storages at once), structured to easily allow concurrency (which even existed at one time), dry installs, the ability to keep from installing dependencies when part of the dependency chain fails, API separation of CLI and Client (to easily allow a GUI), supports archives (.zip/.tar.gz), supports versions/auth in module [17:39] requests/depends, etc [17:39] I'd still have twenty more modules than anyone else ;-p [17:41] lately ive been working on an interactive config generator as well (like the first time running cpan client) [17:41] nice! [17:42] I really would like a runtime object memory utility in Perl6. I have no idea as to where I would start, though. [17:42] * MadcapJake thinks a GUI for modules would be really slick [17:42] NQP? [17:43] MoarVM? [17:44] Xliff: maybe someone in #p6dev or #moarvm might know :\ [17:44] YH, [17:44] *Yah. Meaning I put another post-it note on my monitor and come back to it later. [17:44] * Xliff is going to need a bigger monitor, soon..... [17:45] or maybe a post-board :) [17:45] Xliff: i think where to start depends on whether bits of the heap profiler could be coopted [17:45] What a sensible idea! No wonder I never thought of it!!! [17:46] psch++: Was thinking the same thing. [17:46] i'd guess not much, if anything *can* be coopted though, which would probably mean starting with adding moar ops that give you access to struct sizes... [17:46] .sigma [17:46] I actually thought of a good design for a P6 version of Scrumblr this morning, speaking of post-boards [17:46] ER [17:46] .u sigma [17:46] U+037B GREEK SMALL REVERSED LUNATE SIGMA SYMBOL [Ll] (ͻ) [17:46] U+037C GREEK SMALL DOTTED LUNATE SIGMA SYMBOL [Ll] (ͼ) [17:46] U+037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL [Ll] (ͽ) [17:47] but I'll let someone else make it [17:47] .u Σ [17:47] U+03A3 GREEK CAPITAL LETTER SIGMA [Lu] (Σ) [17:47] Why didn't that come up with ".u sigma"? [17:47] .u greek sigma [17:47] U+03F2 GREEK LUNATE SIGMA SYMBOL [Ll] (ϲ) [17:48] *** sno left [17:48] .u letter sigma [17:48] U+03A3 GREEK CAPITAL LETTER SIGMA [Lu] (Σ) [17:48] U+03C2 GREEK SMALL LETTER FINAL SIGMA [Ll] (ς) [17:48] U+03C3 GREEK SMALL LETTER SIGMA [Ll] (σ) [17:48] <[Coke]> because it's only showing you 3. [17:48] Ah. Max result size,then. [17:48] *** sno joined [17:48] <[Coke]> if you want to dig through unicode, a local perl6 program is probably better. [17:48] m: say Σ.WHAT [17:48] rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eYcQjhe65G␤Undeclared routine:␤ Σ used at line 1␤␤» [17:49] * Xliff whistles innocently... [18:01] yay, Xliff your module should be on the list now [18:01] unless you object I am going to include it in the first cut of "Task::Noise" [18:01] *** spider-mario joined [18:02] No objections whatsoever! ;) [18:02] Oh, I just love the travis status of "Unknown" [18:03] The repository at Xliff/p6-audio-oggvorbis was not found. [18:03] o_O [18:03] Is there a webpage that explains this Travis thing, so I can get it working? [18:05] it's basically create an account on travis using your gh account, switch on the builds for the things you want, add a .travis.yml to your modules repository [18:06] Already had the .travis.yml [18:06] It's "syncing" now. Taking a long time. [18:06] *** itcharlie left [18:11] *** firstdayonthejob left [18:12] *** firstdayonthejob joined [18:12] Aaand... we're off! [18:12] That was ... actually not bad. [18:12] *** cpage_ joined [18:13] Travis is slow though. [18:15] Does travis actually have to compile rakudo before testing the project? [18:18] I think so. It probably starts from a generic docker image. As long a recent rakudo is not part of a recent linux distro, compiling would be the way to go [18:18] <[Coke]> we could probably get a 2014.04 image or something for modules to test, I imagine. [18:19] blah; I can't decide which of my several low-priority self-directed projects to work on :0 [18:21] *** _mg_ left [18:21] *** cognominal joined [18:23] Wow! [18:24] Travis-CI does NOT include Test::META [18:24] I might need to add that to build dependency. [18:24] [Coke]: I think that would be really great [18:24] er why would it? [18:25] Aaannd. Need libogg and libvorbis. [18:25] * Xliff goes to read up on setting up proper dependencies with travis. [18:26] *** cpage_ left [18:27] If Travis has a feature where you could specify version of Perl 6, a bleeding-edge version would ofc compile, but then select a release and it could use an image (seems like Travis supports something like this but I'm not sure) [18:28] (though you'd really need to hinge on rakudo versions) [18:29] m: module B {}; sub () { import B }; [18:29] rakudo-moar a16f0a: OUTPUT«===SORRY!===␤Cannot find method 'ast'␤» [18:29] m: module B {}; import B; [18:29] rakudo-moar a16f0a: ( no output ) [18:30] m: module B { our sub f is export {} }; sub () { import B }; [18:30] rakudo-moar a16f0a: OUTPUT«===SORRY!===␤Cannot find method 'ast'␤» [18:30] I know hoelzro_ maintains a rakudo star docker image that could be used for that. In case not, I don't mind uploading the one I use for internal projects: https://gist.github.com/nxadm/a2abb4b34e962d4b5a2a [18:30] ecosystem: 3331b09 | RabidGravy++ | META.list: [18:30] ecosystem: Add Task::Noise [18:30] ecosystem: [18:30] ecosystem: See https://github.com/Perl6-Noise-Gang/Task-Noise [18:30] ecosystem: review: https://github.com/perl6/ecosystem/commit/3331b09997 [18:30] there [18:31] *** zakharyas joined [18:32] in file A.pm6: 'unit class A; sub f { use B; }' [18:32] *** sno left [18:32] in file B.pm6: 'unit class B; sub foo { note "foo!" }' [18:33] *** sno joined [18:33] and then: $ perl6 -e 'use A; B::foo;' # should not reckognize B::foo, should it? [18:33] yet it does [18:34] Oh lord... Travis is hardcore. It has to build the entire container, install rakudo and then process .travis.yml [18:34] erratum: [18:34] No wonder it's slow [18:34] in file B.pm6: 'unit class B; our sub foo { note "foo!" }' [18:38] Now in addition to having to test my own code, I have to test Travis integration. [18:38] *** Praise left [18:40] *** cdg left [18:41] Technically, Travis is awesome. Just a pain in the ass right now. [18:41] El_Che: would that recompile every time you run CI? [18:43] In mine CI, no. I hope that once an image is "certified" (by the people that create the perl6-travis support) there is no need to recreate each time [18:43] But I don't know [18:44] even if the case if the image is recreated each time (e.g. by policy) there is a speedup workaround: create a rekudo package and wget from the image [18:44] I'll try to find out tomorrow who's reponsible for the travis-perl6 integration. 99% someone from this channel :) [18:46] MadcapJake, currently rakudo is compiled for every build request. I am at #4 now coz... nonsensical Ubuntu package names. [18:46] apt-get install libogg libvorbis <- Failed. [18:46] *** hoelzro_ is now known as hoelzro [18:47] apt-get install libogg0 libvorbis0a libvorbisenc <- Hopefully work. [18:47] El_Che: yeah I can't recall who it is but definitely someone in here [18:47] Xliff: right, we're talking about finding a way to *not* compile rakudo every time [18:47] j'accuse tadzik [18:47] :) [18:48] MadcapJake, somehow make install package when rakudo is pushed, then install those bins on projects that depend on it. [18:48] *** milwaukee joined [18:50] well of course the travis logs show who is responsible up front [18:50] no, I think that's szabgab [18:50] *** sue joined [18:50] Perl6 support for Travis-CI is community maintained. [18:50] Please open any issues at https://github.com/travis-ci/travis-ci/issues/new [18:50] and cc @paultcochrane, @hoelzro, @ugexe, and @tony-o [18:51] doc: 7ef1d75 | (Zoffix Znet)++ | doc/Type/Routine.pod: [18:51] doc: is cached is experimental [18:51] doc: review: https://github.com/perl6/doc/commit/7ef1d7543c [18:52] Xliff: right! I'm not at all knowledgeable on Travis or their build architecture to say whether that's possible though [18:53] Is it ok, compare two (integer) lists by eq or sometimes can fails? [18:53] *** rindolf left [18:54] *** CIAvash left [18:54] * Xliff pulls hair. [18:54] https://travis-ci.org/Xliff/p6-audio-oggvorbis/jobs/127303057 [18:55] So I expressly say "install these libs", travis comes back and say "yeah, they are already installed", but when it finally gets around to the NativeCall tests travis comes back with "libogg....WTF?" [18:55] wamba: just use eqv, it should be more efficient anyway [18:55] yu didn't add an api version so you need the -dev package [18:55] I will soon have no hair! [18:55] for the non-versioned .so [18:55] Oooo [18:55] geekosaur++ [18:55] so don't do that [18:56] this (and the facvt that apis are, yknow, versioned because they change) is why you should include an api version [18:57] *sigh* [18:57] But API versions are highly dependend on the distribution. [18:57] wamba: eq will work on integer lists, because integers are never accidentally stringified with spaces, but it's a bad habit to get into, since eq can fail with strings containing spaces, unless you want that exact semantics for some reason [18:57] Which is what I wanted to avoid. [18:58] So I have dev package for everything but libvorbisenc, which looks like it needs a v2. [18:58] But here I am forcing additions to complete tests where I should need no addition at all. [19:00] yeah v2 will work [19:01] ...you do realize that it goes beyond distro A has v1, distro B has v2? like, v1 *may not work* if you are using v2 features, and just leaving off the api version doesn't magically fix this? [19:02] *** Ven joined [19:05] geekosaur, Yes. Frustration talking. Move along. [19:05] I think it is P5's XML::LibXML that used to have a very, very specific library version check and used to make massive warnings if you tried to use the wrong version [19:05] Travis Build #5 [19:06] I would be < $snark if builds didn't take 15-20 minutes [19:07] *** Relsak joined [19:07] maybe you need to take up sheep farming [19:08] I do that when I try to sleep. Coz...insomnia! [19:09] I wouldn't be taking the time to do this if it wasn't worth doing. But I expected easy integration. I should have known better. [19:09] *** ZoffixW joined [19:10] Still. Compiling rakudo at every push... hurts. [19:10] Is anything wrong with this? https://gist.github.com/zoffixznet/629a926568d787c21e635daa58a531ee [19:10] I'm getting syntax error at test.p6 line 2, near "use Foo :" [19:10] On the language interop story/wars.. This time a Ruby/Rails video... featuring PHP. https://www.youtube.com/watch?v=MpBtj2rMBnY [19:11] *** TreyHarris joined [19:12] ZoffixW: Apparently, the syntax error at line 2... :P [19:12] *** jjido left [19:12] dammit... "perl test.p6" [19:12] Isn't there a 2016.04 release tag for rakudo? [19:13] Travis is reporting this "error: pathspec '2016.04' did not match any file(s) known to git." [19:13] Funny this happens right after I removed "use v6;" from a code example in the docs ~_~ [19:13] So I am assuming I have the wrong one. [19:13] ZoffixW: Heh. I finally get it to open in my browser and you already solved it. :) [19:13] jnthn++ at least you tried :) [19:14] Xliff: Seems to exist [19:14] $ git rev-parse 2016.04 [19:14] c1c3990c2c2d1821d83d6ea45681b213501c81d1 [19:15] It's interesting that use Foo :!special :ALL; works, but still includes :special [19:15] I see a possible area of improvement :) [19:15] Xliff, where's your .travis.yml [19:15] *** jjido joined [19:16] s/works/doesn't cry about it/ [19:16] TimToady: ok, thank you. But in my one-liners, "eq" works, but "eqv" fail with "This Seq has already been iterated ...". [19:16] *** daniel-s left [19:16] *** daniel-s joined [19:17] https://github.com/Xliff/p6-audio-oggvorbis/blob/master/.travis.yml [19:18] *** nchambers is now known as sillytime [19:19] *** daniel-s left [19:19] And right now, Test::META isn't installing on Travis images due to an error. [19:19] *** daniel-s joined [19:19] *** TreyHarris left [19:20] that looks fine to me [19:21] Looks like it's a "rakudobrew build-panda" issue. [19:21] Xliff, what's the error? [19:21] however let me just check Test::META as I made some changes to META6 over the last couple of days [19:21] *** daniel-s left [19:22] *** daniel-s joined [19:22] Xliff, just list it in "test-depends" in your META.... [19:22] m: .say for ("3","3" ... *)[^10] ==> {  @^a.rotor(2 => -1)>>.map: { .comb(/\d+/).[*-1] } }() ==> [19:22] squish  with => &[eqv] [19:22] rakudo-moar ef3e62: OUTPUT«5===SORRY!5=== Error while compiling /tmp/r9RKcLBgy9␤Missing required term after infix␤at /tmp/r9RKcLBgy9:1␤------> 031)>>.map: { .comb(/\d+/).[*-1] } }() ==>7⏏5␤ expecting any of:␤ prefix␤ term␤» [19:22] m: .say for ("3","3" ... *)[^10] ==> {  @^a.rotor(2 => -1)>>.map: { .comb(/\d+/).[*-1] } }() ==> squish  with => &[eqv] [19:22] rakudo-moar ef3e62: OUTPUT«(3 3)␤This Seq has already been iterated, and its values consumed␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤ in block at /tmp/0286JowrWU line 1␤␤» [19:22] "xliff" at 217.168.150.38 pasted "Travis Test::META install log" (114 lines) at http://fpaste.scsys.co.uk/512100 [19:23] m: .say for ("3","3" ... *)[^10] ==> {  @^a.rotor(2 => -1)>>.map: { .comb(/\d+/).[*-1] } }() ==> squish  with => &[eq] [19:23] rakudo-moar ef3e62: OUTPUT«(3 3)␤» [19:23] ZoffixW, won't that run into the same problem?> [19:23] mh mh.. It's that "P6M Merging GLOBAL symbols" issue again. [19:23] er what the actual? [19:23] Xliff, probably, but you still need to list it, because the build will fail when users try to install it on a box without it already installed [19:23] kk [19:24] the reason for that *was* that JSON::Marshal required a different version of the one installed by panda [19:24] oh [19:25] you installed a tagged version of panda [19:25] yes that will break it [19:25] just install the latest one [19:26] *** daniel-s left [19:26] *** smls joined [19:27] *** domidumont left [19:27] OK, so I drop the 2016.04 and the 2016.01 from the perl6: section? [19:27] I was hoping to test against last 3 releases. [19:27] *** daniel-s joined [19:28] which works fine [19:28] just you're doing rakudobrew build-panda ${TRAVIS_PERL6_VERSION#latest} [19:28] *** daniel-s left [19:29] just drop the ${TRAVIS_PERL6_VERSION#latest} [19:29] *** daniel-s joined [19:29] it doesn't need it unless you want to test panda [19:29] Ohh! OK. That was in the docs so I thought panda version needed to match rakudo. [19:30] *** TreyHarris joined [19:30] no, I'm doing latest and 2016.04 for all my modules [19:30] kk [19:31] Now, instead of watching Travis-CI watching paint dry...I will make a milkshake. [19:31] *** avenj joined [19:32] * ZoffixW now wants a milkshake.... [19:33] *** daniel-s left [19:34] https://www.youtube.com/watch?v=y2SZPb7UUtc [19:36] *** cschwenz joined [19:37] \o #perl6 [19:37] yo [19:37] are there any known performance issues with using "where" in method signatures? [19:38] *** TreyHarris left [19:39] cschwenz, well, IIUC, a where clause has to be evaluated at runtime, while plain types can be done at compile time, so that's where a performance hit can be found, but it's not an "issue". [19:39] the class i'm writing is seeing execution times double when i put "where …" restrictions on some of the methods and (the important bit) i never call the methods with the where restrictions [19:40] so i put a where on method A and call method B [19:40] RabidGravy, LOL ... however video is blocked here. [19:40] and method B is slowed even though it never has a where on it [19:41] <[Coke]> same method name? [19:41] <[Coke]> not sure how different A/B is supposed to imply. [19:42] <[Coke]> anyway, yes, it's quite possible there's a slowdown there. I'd open a rakudobug with that and include [PERF] in the subject, and a before/after code example. [19:42] OK. Dropping 2016.01 because Test::META is failing, there. [19:42] Coke: ah, sorry. one sec, writing example. [19:43] *** _mg_ joined [19:43] https://github.com/rakudo/rakudo/#reporting-bugs [19:45] *** ChristopherBotto joined [19:45] Xliff, I'm not entirely surprised tbh, I've not worried that much about backward compatibility [19:45] Hello #perl6! [19:45] yo [19:46] p6: class Foo { multi method aaa() { my Int $y = 0; }; multi method aaa(Int $x = 1) { my Int $y = $x; }; }; my Instant $t1 = now; for (1 .. 10000) { Foo.aaa() }; my Instant $t2 = now; my $d1 = ( $t2 - $t1 ).narrow; say "$d1"; [19:46] rakudo-moar ef3e62: OUTPUT«0.00490609␤» [19:46] m: chdir '.' [19:46] rakudo-moar ef3e62: ( no output ) [19:46] RabidGravy, yes, well there will always be another release. [19:46] p6: class Foo { multi method aaa() { my Int $y = 0; }; multi method aaa(Int $x where $x > 0 = 1) { my Int $y = $x; }; }; my Instant $t1 = now; for (1 .. 10000) { Foo.aaa() }; my Instant $t2 = now; my $d1 = ( $t2 - $t1 ).narrow; say "$d1"; [19:46] rakudo-moar ef3e62: OUTPUT«0.31616794␤» [19:46] ^^^ that [19:46] New blog post: "Perl 6: There Are Traitors In Our Midst!" http://blogs.perl.org/users/zoffix_znet/2016/05/perl-6-there-are-traitors-in-our-midst.html [19:47] Well, this has been an interesting (and educational) experience. [19:47] v0.0.2 will include API parameters. [19:47] * Xliff wants to leave a note, but finds no empty real-estate on the monitor. [19:48] * geekosaur hugs NamedScratchpads :p [19:48] cschwenz, I think that checks the sigs for both multies to figure out which one to call, hence the slowdown. It's huge though, so maybe it's worth reporting as Coke suggested (https://github.com/rakudo/rakudo/#reporting-bugs) [19:49] okay, will do [19:49] *** ZoffixW left [19:49] * [Coke] finally updates the README to encourage pull requests instead of RT for patches. [19:53] *** yqt joined [19:58] *** k-man joined [19:58] \o/ - nine travis builds and finally passed. [19:58] the above potential performance issue has been reported and it is assigned to [perl #128055] [20:04] Thanks, #perl6 for the Travis help. [20:04] *** molaf left [20:05] *** cschwenz left [20:05] *** cpage_ joined [20:06] *** bazzaar left [20:08] *** hotel_california joined [20:09] *** hotel left [20:12] *** rurban joined [20:12] *** sue left [20:13] m: class C {}; module M { multi prefix:<+>(C $) is export { say "+C!"; C } }; import C; say "starting"; sleep 1; my $ = +C; [20:13] rakudo-moar 631a36: OUTPUT«starting␤Use of uninitialized value of type C in numeric context in block at /tmp/kPqQq2N36v line 1␤» [20:13] m: class C {}; module M { multi prefix:<+>(C $) is export { say "+C!"; C } }; import M; say "starting"; sleep 1; my $ = +C; [20:13] rakudo-moar 631a36: OUTPUT«+C!␤starting␤» [20:13] * grondilu was expecting "startingn+C!" [20:14] *** cdg joined [20:14] why is the code inside the multi executed before even we do any call to the multi??? [20:14] *** dupek left [20:15] constant folding... [20:15] m: my $count = 0; class C {}; module M { multi prefix:<+>(C $) is export { $count++; C } }; import M; say $count; my $ = +C; [20:15] rakudo-moar 631a36: OUTPUT«0␤» [20:16] m: my $count = 0; class C {}; module M { multi prefix:<+>(C $) is export { do { say "counting"; $count++ }; C } }; import M; say $count; my $ = +C; [20:16] rakudo-moar 631a36: OUTPUT«counting␤0␤» [20:16] m: class C {}; module M { multi prefix:<+>(C $) is export { say now - BEGIN now; say "+C!"; C } }; import M; say now - BEGIN now; say "starting"; sleep 1; my $ = +C; [20:16] rakudo-moar 631a36: OUTPUT«0.08060253␤+C!␤0.06330614␤starting␤» [20:17] m: class C {}; module M { multi prefix:<+>(C $) is export { say now; say "+C!"; C } }; import M; say now; say "starting"; sleep 1; my $ = +C; [20:17] rakudo-moar 631a36: OUTPUT«Instant:1462220303.923699␤+C!␤Instant:1462220303.936886␤starting␤» [20:18] I can't tell where the instants come from [20:19] m: class C {}; module M { multi prefix:<+>(C $) is export { say "A-time ", now; say "+C!"; C }; import M; say "B time", now; say "starting"; sleep 1; my $ = +C; [20:19] rakudo-moar 631a36: OUTPUT«5===SORRY!5=== Error while compiling /tmp/D4S4_SeLrD␤Missing block␤at /tmp/D4S4_SeLrD:1␤------> 3now; say "starting"; sleep 1; my $ = +C;7⏏5␤» [20:20] m: class C {}; module M { multi prefix:<+>(C $) is export { say "A-time ", now; say "+C!"; C } }; import M; say "B time", now; say "starting"; sleep 1; my $ = +C; [20:20] rakudo-moar 631a36: OUTPUT«A-time Instant:1462220437.798976␤+C!␤B timeInstant:1462220437.821858␤starting␤» [20:20] I don't get what's happening here. [20:20] *** Xliff_ joined [20:20] me not quite either. [20:21] the Instant results and the BEGIN results seem to say different things. [20:21] maybe different idea of BEGIN [20:21] *** nebuchad` joined [20:22] *** parisba__ joined [20:22] *** pnu__ joined [20:22] m: class C {}; module M { multi prefix:<+>(C $) is export { say "A BEGIN", BEGIN now; say "+C!"; C } }; import M; say "B BEGIN", BEGIN now; say "starting"; sleep 1; my $ = +C; [20:22] rakudo-moar 631a36: OUTPUT«A BEGINInstant:1462220583.002580␤+C!␤B BEGINInstant:1462220583.049084␤starting␤» [20:22] *** MadcapJake_ joined [20:23] The compiler sees +C. The proto of prefix:<+> carries "is pure". Therefore, it dispatches it at compile time. The A-time say/now runs, followed by the say +C. Then the B-time, now runs, then the starting. The sleep happens after all the prints. [20:23] *** mindos_ joined [20:23] And my $ = +C just grabs the constant-folded result of +C and uses it. [20:24] and the different BEGIN times explain the other things, yeah. [20:24] *** Spot___ joined [20:24] *** caasih_ joined [20:25] is it correct, or sheer nonsense, that $*THREAD contains a Thread object describing the currently executing thread? [20:25] m: dd $*THREAD [20:25] rakudo-moar 631a36: OUTPUT«Thread Initial thread = Thread.new(app_lifetime => Bool::False, name => "Initial thread")␤» [20:25] *** Peter_R left [20:25] *** au_ joined [20:25] dogbert2: looks like it :-) [20:25] dogbert2: Correct [20:25] trying to coerce some documentation here :) [20:26] *** ggherdov_ joined [20:26] *** Peter_R joined [20:26] *** sillytime is now known as nchambers [20:26] and $*SCHEDULER is an object describing the current default scheduler? [20:26] *** mls left [20:27] *** TreyHarris joined [20:27] *** rurban left [20:27] dogbert2: Yes [20:28] dogbert2: $*SCHEDULER is docced in the synopsis IIRC. [20:28] *** boegel|quassel joined [20:28] lizmat++, jnthn++, trying to do something with https://github.com/perl6/doc/issues/473 [20:29] skids++ [20:29] *** ggherdov left [20:29] *** [ptc] left [20:29] *** nebuchadnezzar left [20:29] *** boegel left [20:29] *** winger__ left [20:29] *** SmokeMachine____ joined [20:29] *** SmokeMachine____ left [20:29] *** SmokeMachine____ joined [20:29] *** pnu__ is now known as pnu_ [20:29] *** MadcapJake_ is now known as MadcapJake [20:29] I guess I need to read about constant folding. [20:30] dogbert: https://design.perl6.org/S17.html#Schedulers [20:30] *** Spot___ is now known as Spot__ [20:30] *** parisba__ is now known as parisba_ [20:30] *** mindos_ is now known as mindos [20:30] skids: thx [20:30] *** winger__ joined [20:30] *** caasih_ is now known as caasih [20:31] gronilu: basically you're running into the fact that trying to play with core math is like trying to subclass Int: optimizations are lurking there. [20:31] *grondilu [20:32] *** darutoko left [20:32] *** timotimo joined [20:32] *** [ptc] joined [20:32] *** webmind joined [20:32] *** ggherdov_ is now known as ggherdov [20:32] ok [20:34] It's not even just a core thing; you can put "is pure" on your own operator protos too and the optimizer will do similar :) [20:34] grondilu: say you had "5 + 5" in your code. The compiler would say "why should I remember 5 + 5 when I can just remember 10", and put 10 into the precomp. [20:34] *** TreyHarris left [20:35] Though yes, if you overload built-in operators then you need to play by the rules their proto sets. [20:35] *** adu joined [20:35] That prefix:<+> should have an implementation that's fine with being compile-time constant folded is part of the contract for that. [20:35] *** flaviusb joined [20:38] jnthn: Is is by design that when an exception occurs inside a `Promise.start/then` block, the backtrace does not show the line-number and routine-name where it occurred, but only the line where the Promise ended up being awaited? [20:38] *** mls joined [20:38] That reminded me of this very bad idea based on Zoffix's "is Int" post: [20:38] I find this currently the biggest obstacle when trying to develop multi-threaded programs in Perl 6. [20:38] m: use nqp; multi sub infix:<+>(Int:D ::IntT \a, Int:D \b) is default { IntT.new(\a.Int + \b) }; class I is Int { }; (I.new(42) + 32).WHAT.say; my $i; for 0..100000 { $i += I.new(42) + 42 }; say now - INIT now; [20:38] Occasional crashes, I can handle... ;) [20:38] rakudo-moar 631a36: OUTPUT«(I)␤0.7649241␤» [20:39] (that slows down + for everything) [20:39] *** kaare_ left [20:39] *** hotel joined [20:40] *** hotel_california left [20:40] *** TreyHarris joined [20:40] smls: No, not by design...we'd really like to get both locations. [20:40] Ok [20:40] jnthn: Should I RT it? [20:41] smls: Yes...I'd rather it not be forgot :) [20:41] Will do. [20:41] We have a similar ticket for react blocks. [20:41] On occasional crashes - I've got a Moar branch that deals with at least a few of the causes of them, so hopefully when that lands things'll be a little better. :) [20:41] RT#126692 already [20:42] skids: I'd only expect it to slow down + on integers, not on everything? [20:42] smls: ^^ [20:42] Well, yes only on Ints. [20:43] ok [20:43] *** _mg_ left [20:43] skids: I'm not sure why that's surprising. :) [20:43] *** dalek left [20:43] Oh it isn't. Like I said, it's a bad idea. [20:43] Ah, I see :) [20:44] jnthn: I currently deal with the crashes by making sure the scripts work incrementally and never leave the filesystem in an inconsistent state. [20:44] So when the script crashes after doing half the work, I simply run it again, and it will do the rest... :P [20:44] smls: I "deal with" then by spending hours in the debugger. ;-) [20:44] But yes, that's a good approach for now. Nice for braving it! ;) [20:44] *** dalek joined [20:44] *** ChanServ sets mode: +v dalek [20:44] It did make me wonder whether a type smiley or trait that maens "this type exactly and no subclasses" which is faster than a where clause might be useful. [20:45] skids: I've pondered that a few times :) [20:45] It'd be a good bit as a type smiley [20:47] *** milwaukee left [20:48] :E [20:50] doc: dda6151 | (Jan-Olof Hendig)++ | doc/Language/variables.pod: [20:50] doc: Added some documentation about THREAD and SCHEDULER. jnthn++, lizmat++ & skids++ [20:50] doc: review: https://github.com/perl6/doc/commit/dda61518fe [20:51] *** geraud joined [20:52] *** rurban joined [20:52] Hrm now that I look at the code snippet again, I wonder why it doesn't infinitely recurse. [20:52] *** Zoffix joined [20:55] *** ZoffixLappy joined [20:59] *** skids left [20:59] *** Ven left [21:00] and another P6W hits the Net: https://p6weekly.wordpress.com/2016/05/02/2016-18-long-awaited-landings/ [21:01] *** ChristopherBotto left [21:01] \o/ [21:01] 12 Mar 2016 16:27Z Zoffix: In your design notes for perl6-IRC-Client-Plugin-Factoid, you say that the plugin must handle "addressed, notice, and private message requests and respond using the same method" ... if one follows the IRC RFCs, all bots should *never* respond to a "notice" message with another message, and bots *should* use "notice" to reply to messages they got via "privmsg". [21:01] lizmat++ [21:01] *** adu left [21:01] *** AlexDaniel joined [21:01] whoa... Looks like it's been ages since I've used the "Zoffix" link :P [21:02] s/link/nick/; [21:03] Zoffix: http://irclog.perlgeek.de/perl6/2016-05-01#i_12416802 [21:04] *** dolmen joined [21:04] haha [21:05] ah, right, that's right when I was moving to the new apartment, and I had trouble with my linux drive after the move, so I was just using Windown with a VM linux, and I use ZoffixWin on Windows :P [21:05] but indeed, I'm surprised that “Documentation” link on perl6.org does not DWIM [21:06] that being said, perl6intro has to be reachable as well [21:08] MadcapJake: what would GUI for modules give you over a CLI? [21:08] Very nice Weekly. So much work has been done \o/ [21:08] * Zoffix passes around a round of ++ [21:08] pmurias: prettitudinal awesomesauciness [21:09] *** shmibs_ left [21:09] *** prammer_ joined [21:10] *** prammer left [21:10] *** prammer_ is now known as prammer [21:10] pmurias: not much else :) other than maybe dependency graphs, ease-of-use, and being cool enough to illicit some looks from the greater programming community [21:10] *** zakharyas left [21:11] *** shmibs joined [21:13] *** daniel-s joined [21:14] pmurias: Eventually I want to work on GTK3 with Perl 6 and perhaps that would be a fun little project (since todo lists are kinda overdone :) [21:14] Ulti: thanks for the suggestion. as you were writing to let me know, i had already gone with HSV, because graphviz actually supports that "natively" already :) [21:17] lizmat: \o/ [21:17] I made da weeklies! [21:17] *** cpage_ left [21:17] Xliff_++ [21:17] *** jjido left [21:18] Ulti: https://github.com/MoarVM/MoarVM/commit/592cbb4df5358dd745e79dbd32af8dc81eb71f7c - look at ma codez [21:18] *** pecastro left [21:20] Should we add something like [THREADS] or [CONCURRENCY] or [CONC] to the names of RT's for multi-threading related issues? [21:20] Like we already do for [JVM], [UNI], [BUILD], [PERF]... [21:21] *** adu joined [21:22] we should allow every possible re-ordering of the letters in THREADS [21:22] ;) [21:24] Zoffix, Regarding your article on augmentation... Dark Side FTW*!!! (* --> when carefully implemented) [21:24] .oO( RDEATHS ) [21:24] *** cpage_ joined [21:25] Xliff_, I'm not really a fan of introducing changes to other people's code :P [21:25] Though, I'm learning JS more in-depth at the moment, so the feeling may change. [21:26] *** pecastro joined [21:26] that's odd, the original default dns for perl6.noisegang.com introduced a 301 redirect and I can't get chrome to forget it [21:27] Go to chrome://net-internals/#dns and click clear host cache? [21:29] nope, it's still redirecting itself [21:29] *shrug* [21:31] This is weird. Seems zef is installing some older version of Bailador, without a patch that went in yesterday :/ [21:31] Zoffix, hence the caveat. If I am going to change the behavior of a foreign module, I damned well better make sure the new behavior is what I want. [21:31] And I did do `zef update` [21:31] Zoffix, and that the changes are app specific. [21:32] That means... lots of warnings... and tests.... and tests... and MOAR TESTS!!! [21:32] *** boegel|quassel is now known as boegel [21:32] RabidGravy, what platform? [21:32] windows and various linuxes also have dns caches [21:32] Linux, [21:32] some of the linux ones are known buggu [21:32] got it [21:33] (nscd sometimes needs to be killed and restarted, for example) [21:33] *** sue joined [21:33] systemd interoduced a new dbus-based cache that may also need to be whacked occasionally but I don't know offhand how [21:33] it's developer tools -> settings -> disable cache (open url in same tab) [21:33] not dns [21:33] ah [21:34] too many caches at too many levels >.> [21:34] m: use MONKEY-TYPING; class Foo is Int { method even { self + 1 unless self %% 2; self } }; augment class Int { method even { self %% 2 } }; say 42.even [21:34] rakudo-moar 631a36: OUTPUT«True␤» [21:34] Xliff_, yeah, but then you can have a case like this ^ [21:35] Err [21:35] m: use MONKEY-TYPING; class Foo is Int { method even { self + 1 unless self %% 0; self } }; augment class Int { method even { self %% 0 } }; say Foo.new(41).even [21:35] rakudo-moar 631a36: OUTPUT«41␤» [21:35] Never mind me. [21:35] * Zoffix resumes drinking and hacking on perl6.party [21:35] where's the party at? :) [21:36] on the web? :p [21:36] tadzik, http://perl6.party [21:36] :P [21:37] WAN party? :) [21:39] *** huggable left [21:39] *** huggable joined [21:41] *** nebuchad` is now known as nebuchadnezzar [21:42] *** wamba left [21:43] RT #77820 [21:43] Zoffix, I grok what you mean. Hence caveat! ;) [21:43] :) [21:43] Zoffix, CY00T KITTEHS! Bahahahaha! [21:43] Awesome! [21:44] lizmat, https://rt.perl.org//Public/Bug/Display.html?id=77820 [21:45] Zoffix++ [21:45] *** Praise joined [21:45] *** Praise left [21:45] *** Praise joined [21:50] *** prammer left [21:50] *** prammer joined [21:50] *** Relsak left [21:51] *** Sgeo_ joined [21:53] *** rurban left [21:57] why would you ever use a backward feed over a forward feed? [21:58] *** cpage_ left [21:59] *** Peter_R left [22:00] *** cpage_ joined [22:04] *** Peter_R joined [22:04] *** daniel-s left [22:05] .u clef [22:05] U+1D11E MUSICAL SYMBOL G CLEF [So] (𝄞) [22:05] U+1D11F MUSICAL SYMBOL G CLEF OTTAVA ALTA [So] (𝄟) [22:05] U+1D120 MUSICAL SYMBOL G CLEF OTTAVA BASSA [So] (𝄠) [22:05] *** ptolemarch left [22:11] *** Zoffix left [22:11] *** ZoffixLappy left [22:11] *** ZoffixLappy joined [22:12] *** dolmen left [22:13] *** ajr_ joined [22:15] *** sufrosti1o left [22:15] Is there a way to make the Rakudo* install work quietly? I/O tends to be surprisingly expensive, and I'm not usually interested in it. [22:16] *** firstdayonthejob left [22:16] *** sufrostico joined [22:19] *** firstdayonthejob joined [22:26] *** adu left [22:27] *** firstdayonthejob left [22:27] *** firstdayonthejob joined [22:27] *** firstdayonthejob left [22:28] *** firstdayonthejob joined [22:30] *** nd3i joined [22:30] *** firstdayonthejob left [22:31] *** firstdayonthejob joined [22:33] *** pmurias left [22:33] can someone point to a good example of MAIN that handles named args, plus the usual process "stdin OR all given files" situation? [22:34] mine keeps dying when I give a named arg, --min=2, saying "can't open file "--min=2" [22:35] *** pmurias joined [22:35] I got the impression that I could just use for lines() ... and it would "just work" [22:36] nd3i, how are you making a call? [22:36] to the program [22:36] The error sounds like you're trying to pass the argument to perl6 itself [22:36] here: https://gist.github.com/nd3i/03750ed3a67a2c0368773c127d165e6a [22:37] *** firstdayonthejob left [22:37] invoked with: perl6 wc.p6 --min=2 [22:38] *** sortiz joined [22:38] \o #perl6 [22:38] *** firstdayonthejob joined [22:38] *** Sokel joined [22:38] must be something simple I've missed. brain.fried [22:39] nd3i, I can reproduce the issue... Seems it might be a bug [22:40] *** Sokel left [22:41] *** pmurias left [22:43] ok. thanks. I added a comment with the complete error mesage [22:43] Looks like MAIN simply leaves @*ARGS intact.. [22:43] perl6 -e 'sub MAIN ($a) { say @*ARGS }' 42 # prints [42] [22:43] And then `lines` uses $*ARGFILES which in turn looks at @*ARGS [22:44] or not [22:45] Weird. [22:45] nd3i, if I comment out the sub's body, the invocation works. [22:45] Ah [22:45] smls++ that makes sense [22:45] *** firstdayonthejob left [22:47] sorry, gotta split; thanks for taking a look. [22:47] *** nd3i left [22:48] This works: [22:48] perl6 -e 'sub MAIN (:$a, *@files) { @*ARGS = @files; say lines }' --a=42 saome_file.txt [22:48] yeah [22:48] Or even cuter: [22:48] perl6 -e 'sub MAIN (:$a, *@*ARGS) { say lines }' --a=42 some_file.txt [22:49] lines without args isn't documented [22:50] *** TEttinger joined [22:50] It is in S16: https://design.perl6.org/S16.html#Overridable_IO_handles [22:50] "The lines() term inputs from $*ARGFILES which defaults to $*IN in the absence of any filenames." [22:50] Those are specs, not docs :P [22:52] It probably should be then [22:52] * ZoffixLappy does [22:53] doc: aa73530 | (Zoffix Znet)++ | doc/Type/Cool.pod: [22:53] doc: lines without arguments is also a thing [22:53] doc: review: https://github.com/perl6/doc/commit/aa73530920 [22:54] ok guys, what sounds more generally useful/entertaining: 1) modules to parse and collate some subset of XKB data (e.g. XCompose), both stock and custom, for error-checking/linting and auto-generation, or 2) module you can use to import additional unicode operators into your lexical scope, or 3) re-implementing Gulp.js (which I think just means re-implementing Vinyl (which is pretty simple), and then like [22:54] nodejs, everything else is already built-in to Perl6.) [22:54] ZoffixLappy++ [22:55] 3 sounds more entertaining, even though I don;t know what it does [22:56] teatime, no idea what 3) is at all; 1) doesn't sound useful to me personally; 2) ... import from where? What sort of unicode operators? [22:57] *** Amnez777 left [22:57] having read what gulp.js does, yeah that would be useful [22:57] ZoffixLappy: the sad part of #2 is that you can't do several of things I'd particularly like to add. but, whatever useful (mostly math-notation) additional unicode operators I can think of, importable individually. [22:58] RabidGravy: I've used it, and it is very fast & responsive, which was really nice / important in the workflow I was using (save file -> inotify -> browser auto-refreshes) [22:59] you can do the same thing a lot of other ways, but they're all slower to one degree or another, and I think the biggest part of that must be the streaming nature [23:00] I wonder if the huge performance penalty for defining custom ops is gone thanks to precompilation, but I'm too lazy to try it myself and find out :P [23:00] RabidGravy: I've been hesitating to mention it here, because it seems like such an excellent fit perhaps, that I thought it might get stolen :) [23:01] just do it, the more the merrier [23:04] a thing from which you can build a ci thingy is always going to be useful [23:05] *** ajr_ left [23:08] *** lizmat left [23:08] *** lizmat joined [23:08] with constant folding, is there a limit to the depth the optimizer tries or something? Like in terms of numbers of function calls? [23:10] *** cpage_ left [23:12] because since yesterday I've been trying to understand why I have an infix:<*> being exectued twice instead of just once. From what we've discussed earlier, I see that the first one is the optimizer doing constant folding. The second one is the run-time execution. Looking at the debugger I see an exception being raised, but with the program resuming as if nothing happens. [23:13] grondilu: maybe it's a warn? [23:13] no otherwise the infix:<*> would not be executed twice. [23:14] When I replace the code by something simpler, I do not see the exception anymore and the infix is executed only once. [23:14] the limit case appears to be a function call to an other class, even if the function is simple and evaluated in void context. [23:15] so it seems to me the optimizer goes 'meh, that's too hard, I give up' [23:15] I mean I literally have this situation: [23:16] sub { do-stuff; return $that }; # works fine [23:16] *** dwarring joined [23:16] sub { do-stuff; do-something-completely-unrelated-and-simple; return $that; } # fails [23:18] but if I copy the code for do-something-completely-unrelated-and-simple (it's a function call to an other package) just there, it works again. [23:21] *** sue left [23:21] it seems to work if it's a method call though. So confusing. [23:22] oh, so the constant folding attempt blows up? [23:23] yes [23:23] but maybe it's because sub calls are not allowed? I suspect I actually only used method calls up to that point. [23:24] grondilu: where did you see that it's executed twice? [23:24] you can totally output a stacktrace (by throwing a "throw-away" exception) and see who does things [23:25] and you can see if it's the optimizer by using --stagestats [23:25] timotimo: I did put a q{note "doing stuff"} line [23:25] *** Amnez777 joined [23:25] and I see it twice when the exception occurs, and only once when it does not. [23:25] is that the infix:<*> in core or is it a custom one? [23:26] it's a custom one. For my Cliford module. [23:26] so at least it's not about proto vs candidate [23:27] don't think so. [23:27] so, did you try the exception to backtrace thing? [23:28] not sure what you mean. [23:28] oh you mean "try {...}"? [23:28] I'm not familiar with dealing with exceptions. [23:28] m: sub who's-calling() { die "oh no"; CATCH { default { say $_ } } }; sub caller() { who's-calling }; caller() [23:28] rakudo-moar d065ba: OUTPUT«oh no␤ in sub who's-calling at /tmp/zYCltY5T2s line 1␤ in sub caller at /tmp/zYCltY5T2s line 1␤ in block at /tmp/zYCltY5T2s line 1␤␤» [23:28] m: sub who's-calling() { die "oh no"; CATCH { default { say $_ } } }; sub caller() { who's-calling }; caller(); say "not fatal, yay" [23:28] rakudo-moar d065ba: OUTPUT«oh no␤ in sub who's-calling at /tmp/r2obcsAEzZ line 1␤ in sub caller at /tmp/r2obcsAEzZ line 1␤ in block at /tmp/r2obcsAEzZ line 1␤␤not fatal, yay␤» [23:29] you might need --ll-exception, otherwise rakudo will strip out all the interesting bits [23:33] *** lizmat_ joined [23:33] First I think I'll try to turn everything relevant into methods. [23:36] *** lizmat left [23:41] *** ajr_ joined [23:41] *** ajr_ left [23:42] *** DarthGandalf left [23:42] *** DarthGandalf joined [23:44] *** breinbaas joined [23:48] Looks like slurping and parsing a handful of files is waaaaaay slower in Perl 6 than in Perl 5 :/ [23:49] My blog based on a directory with a bunch of Markdown files worked fine in Perl 5, but in P6 I'm getting lag of about 1-2 seconds loading home page that searches the dir and parses files (with just a single file in that dir :/) [23:49] can you do a --profile? [23:49] and gimme your code? :) [23:49] *** spider-mario left [23:50] "Segmentation fault" [23:50] That's running with --profile :/ Works fine without it :\ [23:51] And this is the code: https://github.com/zoffixznet/perl6.party [23:51] running with perl6 bin/app.p6 [23:51] *** mcsnolte left [23:51] You'll need `sass` installed to run it [23:52] mmm... sass is such good stuff [23:52] :) [23:53] my internet connection is super laggy right now [23:54] *** Amnez777 left [23:55] *** RabidGravy left [23:56] all ze dependencies [23:57] Please install the Filter::Simple Perl 5 module! - o_O [23:59] Haha [23:59] *** tardisx joined [23:59] I forgot, it also requires Text::MultiMarkdown Perl 5 module :}