»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:02 sue left 00:04 alx741 joined 00:07 tardisx joined 00:08 tardisx left, hotel_california left, tardisx joined 00:09 AlexDaniel left 00:18 mr-foobar left 00:19 mr-foobar joined 00:23 _nadim left, tardisx left, mr-foobar left, tardisx joined 00:24 mr-foobar joined 00:28 zeki joined 00:29 zeki left 00:30 sue joined, 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
MadcapJake ugexe++ # zef's new upgrade command 01:29
01:36 mr-foobar left 01:37 mr-foobar joined 01:39 huggable left, huggable joined 01:44 mr-foobar left 01:46 mr-foobar joined 01:48 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
sortiz tbrowder++ # Revived perl6-examples's travis-ci build \o/ 01:54
01:56 Khisanth left
diakopter psch: pong 02:06
02:11 Herby_ left 02:19 kid511 left 02:20 noganex_ joined
zacts hi #perl6 02:22
02:23 Khisanth joined, noganex left
sortiz \o zacts 02:26
02:33 pierre_ joined 02:34 mr-foobar left 02:35 mr-foobar joined
zacts :-) 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, molaf joined 03:28 mrsolo joined 03:30 pierre_ left 03:32 cibs joined
dalek Iish: ca68436 | (Salvador Ortiz)++ | lib/DBDish/Pg (3 files):
Pg: Add a few connection status methods to $dbh

Add pg-db, pg-user, pq-host, pq-port, pq-options methods. These methods can be used to interrogate the status of an existing database connection object.
03:37
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, mr-foobar joined 04:49 sno left 04:54 skids left 05:01 Cabanossi left 05:03 molaf left 05:05 Cabanossi joined
grondilu is there a way to know how much memory a given object consumes? 05:07
05:11 mr-foobar left, 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, tardisx joined 05:39 huggable left, huggable joined, TreyHarris joined 05:53 domidumont joined 05:56 rindolf joined 05:57 domidumont left 05:58 domidumont joined
masak morning, #perl6 :) 06:05
06:05 sno joined
masak 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, 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, tardisx joined 06:33 xinming_ left 06:34 xinming joined
grondilu m: my enum <foo bar>; say foo 06:35
camelia rakudo-moar a16f0a: OUTPUT«foo␤»
06:36 domidumont joined, firstdayonthejob joined
grondilu m: my enum <foo bar>; my $x = foo; say class { method foo { "hi" } }.new.$x() 06:36
camelia rakudo-moar a16f0a: OUTPUT«()␤»
grondilu m: my enum <foo bar>; my $x = foo; say class { method foo { "hi" } }.new."$x"()
camelia 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
Ulti timotimo: you asked about spreading colours to not be confusing the answer is to use HSV colour space not RGB blog.mattoates.co.uk/2012/01/genera...tinct.html 07:30
07:30 espadrine joined, TreyHarris left
Ulti 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:30
07:31 dwarring left
TEttinger also martin.ankerl.com/2009/12/09/how-to...matically/ may be handy 07:34
07:36 rindolf joined
psch .tell diakopter 'twas about dalek, but moritz++ took care off that 07:41
yoleaux 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, nutshell left, domidumont joined 08:01 RabidGravy joined
psch hah, i just noticed Zoffix++ "Canon in D" example for A::M::N is actually in C :P 08:07
jnthn C makes a good foot-canon... 08:08
psch .oO( "fugue this!" ) 08:09
08:11 darutoko joined 08:15 CIAvash left 08:16 TreyHarris joined
sortiz I got another "Internal error: zeroed target thread ID in work pass", this time "frozen" by "panda install". 08:16
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
RabidGravy MARNIN! 08:31
08:32 TreyHarris left, rindolf joined 08:35 domidumont left 08:36 domidumont joined 08:40 g4 joined, g4 left, g4 joined 08:46 daniel-s joined
BooK given github.com/rakudo/rakudo/blob/nom/...#L155-L161 if I have a subclass of Version with none of those defined, will these get called? 08:54
08:55 brrt joined 08:58 pierre_ joined
RabidGravy yes 08:58
08:58 CIAvash joined
RabidGravy the type constraints are essentially smart matched against the actual parameter 09:00
09:05 domidumont left 09:07 Relsak joined, 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
brrt .ask jnthn i'd like some new ideas where to look with the reframe-jit branch 09:28
yoleaux brrt: I'll pass your message to jnthn.
09:39 huggable left, huggable joined 09:40 wamba left 09:41 wamba joined
sortiz A simple test case for "Cannot invoke this object" error: gist.github.com/salortiz/3ca2276bd...3b3810362c 09:42
brrt sortiz: probably not on reframe-jit? 09:43
09:43 jjido joined
brrt no, that is unlikely to be jitcompiled 09:44
09:44 CIAvash left
lizmat sortiz: can you call $C2 inside the module ? 09:45
sortiz lizmat, yes.
09:46 ufobat joined
ufobat zostay++ :) 09:47
sortiz lizmat, ups, seems no.
RabidGravy sounds related to the category of "closures in pre-compiled things not working" which afflicts .wrap as well
lizmat yeah, adding "no precompilation' to the module, fixes the issue :-( 09:50
well, bypasses, I guess
sortiz lizmat, $C1 can be called, $C2 no. 09:51
lizmat yeah, so it's not the export doing stuff
it's precomp doing stuff
RabidGravy rt.perl.org/Ticket/Display.html?id=127860 and others
lizmat and it doesn't depend on order
sortiz -ll-exception results in a long diagnose... 09:52
RabidGravy I think it boils down to "closures not surviving precomp under some circumstances" 09:53
in the wrap case it appears that the .candidates attribute winds up empty when precomped 09:54
sortiz RabidGravy, Yes, the interesting thing is that the 'say' method call survive, the 'say0 sub no.
09:57 TreyHarris joined, loren left
jnthn 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
yoleaux 09:28Z <brrt> jnthn: i'd like some new ideas where to look with the reframe-jit branch
10:00 jjido left
brrt oh, i'm off for lunch anyway :-) 10:01
lizmat hmm... it also doesn't seem to catch that I changed the source file sometimes :-(
jnthn 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, nowan_ left 10:08 nowan joined
sortiz Well, at least is enough golfed. 10:09
10:10 Timbus joined
lizmat sortiz: did you take out the "is export" ? 10:14
did you try without "our" but with "my"
sortiz In my latest test, yes.
lizmat and only with $C2 in there ? 10:15
ok :-)
RabidGravy AAARGH TO MANY TERMINAL WINDOWS 10:16
TOO
10:16 brrt left
sortiz lizmat, My latest version is only: "BEGIN { -> { say "In closure2" } }();" :-) 10:16
lizmat could you try with just "note" in the block ? :-) 10:17
also: without the outer curlies ?
10:18 espadrine joined
sortiz without the outer curlies pass: Noted 10:20
(BEGIN -> { note })();
BEGIN {-> { note }}(); # This fails 10:21
lizmat well, that's an interesting metric :-) 10:24
10:24 dalek left, dalek joined, ChanServ sets mode: +v dalek 10:26 bazzaar joined, TreyHarris joined 10:27 d4l3k_ joined, tokomer joined, JimmyZ left
bazzaar \o 10:29
10:29 JimmyZ joined, dalek left, lucs joined
bazzaar m: token feline { <ctype=.'TOP'||'BOB'> \s+ 'CAT' } 10:30
camelia rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ruDKhrMyNL␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/ruDKhrMyNL:1␤------> 3token feline { <ctype=.7⏏5'TOP'||'BOB'> \s+ 'CAT' }␤»
10:30 ZoffixWin joined, ZoffixWin left, ZoffixWin joined
jnthn $<ctype>=[<.TOP>||<.BOB>] 10:31
Or did you want to match those as literal strings rather than subrules?
$<ctype>=< TOP BOB > if literals 10:32
(Which is short for $<ctype>=[TOP|BOB])
10:32 Timbus_ joined, nightfro` joined
bazzaar jnthn: many thanks, have been trying for last 30mins without luck :-) 10:33
ZoffixWin psch++ Good eye. The original actually was in D, but then I realized it was too big so I found another version :) 10:34
10:34 zhmylove_ joined
ZoffixWin m: BEGIN {-> { note }}(); 10:35
camelia rakudo-moar a16f0a: OUTPUT«Noted␤»
10:36 araujo_ joined
ZoffixWin Seems online log isn't loggin/... 10:36
10:36 TreyHarris left 10:37 d4l3k_ is now known as dalek, sftp left, Timbus left, zhmylove left, dalek left, dalek joined, nightfro` is now known as nightfrog, ChanServ sets mode: +v dalek, sortiz left 10:38 sortiz joined, lichtkind joined, araujo_ left, sftp joined
lichtkind does anybody know how much influence tim had on Perl 5 posftix-deref design? 10:38
thanks in advance 10:39
10:39 xiaomiao joined
ZoffixWin
.oO( who's tim :P )
10:39
moritz lichtkind: do you mean Tim Bunce?
ZoffixWin And how do you measure the amount of influence :P
moritz lichtkind: and why don't you ask in #p5p, where this would be on topic?
lichtkind 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
moritz lichtkind: well, postfix dereference is very much timtowtdi, because prefix derefence already exists :-)
ZoffixWin I think lich is asking how much influence Larry Wall had on the design. 10:41
lichtkind yes
ZoffixWin 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
lichtkind as far as i know he at lesat ok's such decision so ther eis still some influence
10:43 araujo_ joined
llfourn does anyone know what the purpose of empty '{}' in the Perl6::Grammar is? 10:43
like | {} <.panic: "Bogus statement">
moritz llfourn: to terminate LTM
lizmat lichtkind: I don't think TimToady's opinion was asked about postfix deref syntax
llfourn moritz: thanks!
lichtkind lizmat thank you
psch llfourn: {} serves as a sequence point, which prevents backtracking over itself 10:44
moritz psch: {} does not prevent backtracking, I think
jnthn You can backtrack over a {} 10:45
psch ...did that change? o.O
moritz no
jnthn Though of course only if you're in a backtracking context.
psch oh, then i completely misremembered or misunderstood it
it does terminate LTM, though, doesn't it? 10:46
jnthn As moritz said, it makes anything after it invisible to LTM.
moritz and much of the Perl 6 grammar is made of token {}s, which don't backtrack
psch ohh, i didn't even see moritz++ reply
psch goes back to grmbling at MIDI :S
llfourn 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
moritz right 10:48
llfourn 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, pierre_ left 11:01 rindolf joined 11:02 araujo_ left 11:04 tokomer left
dalek ecs: e094a61 | RabidGravy++ | S22-package-format.pod:
Bring META format closer to reality

   * resource has been implemented differently
   * version literals should omit "v"
   * use proper JSON bool
11:05
brrt jnthn: np, eventually we'll get to the bottom of it :-) 11:06
it seems to only happen in perl6 code, though
which is why i was thinking about the extops, but that doesn't seem to be it 11:07
RabidGravy right, where was I? 11:09
11:09 TreyHarris left, domidumont joined
moritz ask your GPS? :-) 11:10
sortiz Talking about S22, is a ':ver<x.y.z>' part allowed in 'provides'? 11:13
As panda/zef can uses 'provides' to resolve install requests, I hope so. 11:19
_nadim morning all 11:22
11:22 wamba left, daniel-s left
_nadim jnthn: did you have a look at my patch or shall I create another module? 11:22
11:22 daniel-s joined 11:23 CIAvash joined 11:24 wamba joined
moritz PSA: Richard Hainsworth built finanalyst.github.io/ModuleCitation/ which tracks "citation" (reverse dependency) index of Perl 6 modules over time 11:24
jnthn _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
11:25 TreyHarris joined
jnthn _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.
jnthn People generally seem to like G::T so I'm not inclined to overly change its output.
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.
brrt what is G::T? 11:28
moritz Grammar::Tracer or so?
_nadim Grammar::Tracer 11:29
jnthn _nadim: I think there's a Grammar::Profiler
_nadim jnthn: they may like it because they haen't seen anything else ;)
I'll check that
there is indeed github.com/perlpilot/Grammar-Profiler-Simple 11:30
11:31 TreyHarris left 11:34 tbrowder left
bazzaar .oO is learning to construct grammars and 'stress testing' Grammar::Debugger :-) 11:36
11:45 sortiz left 11:51 wamba left
ufobat ZoffixWin, have you noticed github.com/ufobat/Bailador/blob/ma...ticFile.pm ? it might be similar to one of your modules you have recently developed 11:52
11:57 _notbenh left, _notbenh joined 11:59 daniel-s left
moritz finanalyst.github.io/ModuleCitation/ it seems that JSON::Fast is eating JSON::Tiny's lunch :-) 12:04
12:05 domidumont left, TreyHarris joined 12:06 domidumont joined
RabidGravy 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
moritz ah, cool
12:12 pmurias joined
pmurias is examples/rubyish meant to grow into a full ruby implementation? 12:13
ahh, it seems it was just unbitrotted 12:14
12:15 ZoffixW joined
ZoffixW 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:17
ufobat i just think it serves the same purpose 12:18
i updated the documentation yesterday
12:20 TreyHarris left
ZoffixW 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
12:22 _notbenh left
ufobat mine is not supposed to return a 404 because of my ideas for "nested routes" handling :-) 12:23
ZoffixW 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
RabidGravy I hate flappy tests 12:24
ZoffixW ufobat, all this tells me is I need to actually sit down and read all the docs :) 12:25
ufobat 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..
to be honest i am just greedy for getting feedback :p 12:26
12:27 _notbenh joined
ZoffixW 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
ufobat yeah
absolutly
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
jnthn If you're using IO::Socket::Async and tap that, the incoming requests are automatically processed across multiple threads anyway.
ufobat so in fact the staticfile should return a supply 12:29
RabidGravy well could
12:30 macsnowball left, macsnowball joined
ufobat i shouldn't ever say should again, i know 12:30
but isn't it better if the staticfile thingy would return a supply instead of the Blob? 12:31
RabidGravy If there isn't a module that does async file I/O to a supply, I'd make that separately first
it may have a separate utility 12:32
ufobat i dont know, i was just thinking about the psgi spec so far. i dont know whats easy or available so far :-(
llfourn I think the idea of p6 IO is that you don't have to worry about blocking/non-blocking in situations like this?
(as long as the requests are being handled Async) 12:33
ZoffixW 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
ZoffixW & # work 12:33
12:33 ZoffixW left
RabidGravy I keep thinking it's Sunday 12:34
[Coke] sadly, nope
ufobat 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
lizmat if it is a static file, why slurp the file in userland at all?
ufobat if you "slurp" the file first, then keep the promise and then the server responds it is not as good as it could be
lizmat isn't there a way to directly pipe a file to a handle ? 12:36
ufobat first you need to check if you use any kind of encoding.. URL encoding or form multipart thingy i think
timotimo there is in posix, yeah
llfourn 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.
timotimo i forgot what it's called, though 12:37
RabidGravy sendfile isn't it?
timotimo could be 12:38
_nadim Yo, anyone here that would like to share a bigger place in cluj for YAPC?
timotimo yeah, it is
ufobat github.com/zostay/P6SGI fyi
RabidGravy 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:40
pmurias _nadim: you mean share a room? 12:41
12:41 Sgeo_ left
_nadim a room or rather an appartment 12:41
DrForr Oh, where are you staying?
_nadim I'm good for a room if we are not many
I aven't decided anything, there are appartments on rbnb, 3 rooms, and smaller ones too 12:42
ufobat 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
?
RabidGravy 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
ufobat yes!
RabidGravy 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 www.airbnb.com/rooms/12693204?chec...s=N5l-eWp7
RabidGravy i.e. a connected client will keep sending data for ever but needs a response up front to know that it was accepted
brrt when exactly is YAPC in Cluj? 12:48
_nadim 24-26 August. I plan to come the day before and leave the day after 12:49
brrt hmm, hope i'll be able to come this year 12:50
although i've already missed GPW and NLPW, which were closer by
DrForr That's probably just a mile or so from my place. 12:51
brrt DrForr: what is your place
DrForr Uh, my apartment? :) 12:52
brrt fair enough 12:53
12:54 Sgeo_ joined
jnthn var InvalidVersion = props => 12:56
<Alert bsStyle="danger" className="padded-from-header-footer">
<strong>Sorry!</strong> This tutorial format version, {props.version}, is not supported.
<strong>Supported version: </strong>{supportedVersion}
argh!
sorry
RabidGravy 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
brrt :-)
do we have a pg client actually? 12:57
RabidGravy the DBIish pg thing works fine 12:58
brrt alpine perl workshop has switched datespace with YAPC this year
pg <3
well, postgresql, anyway
pmurias needs to come up with a name for his rakudo.js YAPC::EU talk 13:03
13:04 sue left
jnthn "Anything that can be compiled to JavaScript will be compiled to JavaScript, Perl 6 edition" :P 13:05
13:07 molaf joined, Sgeo_ left 13:09 sufrostico joined 13:11 sue joined
tadzik _nadim: (yapc) sounds good :) 13:13
13:14 macsnowball left, macsnowball joined
RabidGravy tadzik, just invited you to the perl6-noise-gang "organisation" 13:18
tadzik yay! 13:19
RabidGravy anyone else?
13:22 macsnowball left, macsnowball joined 13:23 macsnowball left
RabidGravy ugh 13:27
everything has suddenly become really really slow 13:28
tadzik yes, I will get to finishing and publishing my music sheet editor:)
RabidGravy do it! 13:29
tadzik++
tadzik I guess I could also port my midi-to-musicsheets thing to perl 6
it may turn out to be a bit computationally heavy 13:30
13:31 daniel-s joined 13:36 daniel-s left, sufrostico left 13:37 sufrostico joined 13:38 TreyHarris joined 13:39 huggable left, huggable joined
[Coke] (sixfix) ... that escalated quickly. 13:43
13:44 sue left 13:48 pierre_ joined 13:49 TreyHarris left
tadzik ...sixfix? :) 13:51
14:01 domidumont1 joined, domidumont left
RabidGravy google says it's some kind of diet/life style fad, I guess that's not what we're taling about here ;-) 14:01
mspo sounds like a mailing list 14:02
14:05 cdg joined 14:14 tharkun left 14:15 skids joined, loren joined, pierre_ left 14:16 tharkun joined, pierre_ joined 14:18 itcharlie joined 14:20 khw joined 14:21 mcsnolte joined 14:25 TreyHarris joined
MadcapJake sixfix.nigelhamilton.com 14:26
RabidGravy ah yes 14:29
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
brrt slow day today 14:57
14:57 brrt left 15:02 ufobat left 15:11 sergot_ joined 15:12 shmibs_ joined 15:13 remmie2 joined, shlomif joined
RabidGravy 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, rindolf left, shlomif is now known as rindolf
mspo www.w3.org/Addressing/draft-mirash...irc-01.txt 15:15
15:15 [Coke]_ joined 15:16 _mg__ joined, PotatoGim_ joined 15:17 nowan_ joined 15:18 mrsolo_ joined, lichtkind_ joined, cosarara_ joined 15:19 Brock joined 15:20 hoelzro_ joined, sufrosti1o joined, ambs_ joined 15:21 remmie left, mrsolo left, pierre_ left, JimmyZ left, [Coke] left, nowan left, damnlie left, Juerd left
teatime How does :sym<X> work on regexes... 1) can X be multiple characters, 2) does <sym> have to appear in the regex, 3) can the regex be more than just <sym> 15:21
4) can you arbitrarily-parameterize regexes, and/or are there any other :sym<>-like things
15:21 zacts left, _mg_ left, sufrostico left, _mg__ is now known as _mg_ 15:22 silug joined, lichtkind left, damnlie joined
RabidGravy mspo, so yes 15:22
:)
15:23 TeamBlast joined, Relsak left, mrsolo_ is now known as mrsolo 15:24 JimmyZ joined
psch m: grammar G { proto token foo {*}; token foo:sym<bar> { <?> } }; G.parse("anything", :rule<foo>) 15:24
camelia ( no output )
perlpilot teatime: yes, no, yes, yes-ish :)
psch i think 4 is yes/no..? 15:25
15:25 PotatoGim_ is now known as PotatoGim 15:26 sno left
psch 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
perlpilot depends on exactly what is meant by ":sym<> like things"
psch i read it as "adverbs to the declaratee" 15:27
perlpilot but, "no" to that one is a very good approximation anyway.
teatime I think I read earlier that the 'regex foo { }' syntax cannot take a parameter list, or did I not?
jnthn It can take a paraemter list too
15:28 loren left
jnthn The :sym<foo> thing isn't about parameters though 15:28
It's about collecting candidates of a protoregex together 15:29
The choice of foo doesn't matter, unless you use <sym> in which case that is replaced with $<sym>=[foo] by the compiler
mspo RabidGravy: yes I think so too 15:30
RabidGravy: but you can also use ,options it seems
teatime is it really [foo] and not ['foo'] ?
15:30 zacts joined
teatime nm, I don't actually care about that 15:30
RabidGravy it's close enough for jazz and I'm not sure any actual browsers support it without a plugin anyway 15:31
masak m: for ^Inf { .say if ($_ eq .flip given .base(2)) } # binary palindromes
m: for ^Inf { .say if $_ eq .flip given .base(2) } # binary palindromes, in binary
camelia: sorry about the Inf :/
camelia 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…»
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…»
masak 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:32
psch m: for ^0b111111 { .say if .&[eq] .flip given .base(2) } # away with explicit topics! 15:33
camelia 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…»
psch and minus the one extra space it's the same length too 15:34
oh, but it doesn't work... :/
masak :P
m: for ^0b111111 { .say if .&[eq]: .flip given .base(2) } 15:35
camelia rakudo-moar a16f0a: OUTPUT«0␤1␤11␤101␤111␤1001␤1111␤10001␤10101␤11011␤11111␤100001␤101101␤110011␤»
masak missing colon
psch yeah, i didn't really parse this right i guess :)
perlpilot nice.
masak very Perlonic :)
perlpilot too bad you can't use "with" instead of "given" ;) 15:36
masak m: (.say if .&[eq]: .flip given .base(2)) for ^0b111111 15:38
camelia rakudo-moar a16f0a: OUTPUT«0␤1␤11␤101␤111␤1001␤1111␤10001␤10101␤11011␤11111␤100001␤101101␤110011␤»
jnthn teatime: $<sym>='foo' would be another way :) 15:40
Those forms all compile into the same thing anyway :)
psch m: grammar G { proto token foo {*}; token foo:sym<$x> { <sym> } }; say G.parse('$x', :rule<foo>) 15:41
camelia rakudo-moar a16f0a: OUTPUT«「$x」␤ sym => 「$x」␤»
psch m: say '$x' ~~ / [$x] /
15:41 _mg_ left
camelia 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:41
jnthn Well, of course you need quotes if the thing contains non-alphanumerics 15:43
teatime jnthn: $<sym>='foo' != $<sym>=[foo] if instead of foo you have something like +
masak m: enum Player (Player1 => +1, Player2 => -1); sub opponent(Player $p --> Player) { Player(-$p) }; say opponent(Player1); say opponent(Player2) 15:44
camelia rakudo-moar a16f0a: OUTPUT«Player2␤Player1␤»
teatime so would you do it as regex foo:sym<'@non-alpha stuff'> ?
jnthn Well yeah, but this is all rather silly given the compiler transforms things using ASTs
Not text.
masak m: enum Player (Player1 => +1, Player2 => -1); sub opponent(Player $p --> Player()) { -$p }; say opponent(Player1); say opponent(Player2)
camelia 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 <unit> at /tmp/DznC9f91X6 line 1␤␤»
masak aww :)
teatime jnthn: I'm just trying to figure out how it works and/or what language feature it is an instance of.
nine_ jnthn: do we have atomic file rename support for Windows?
jnthn So it's a non-issue :) It just produces an AST node that literally matches whatever's in the :sym<...> :)
masak wonders if implementing coercing return types would be within his ken
15:44 domm joined
teatime is the < > here the quote-words operator? 15:45
jnthn :sym<foo> is an adverb
The compiler recognizes it and treats it specially on token/rule/regex
nine_: "It's complicated"... stackoverflow.com/questions/167414/...on-windows has some info 15:47
teatime ok, it is quote words.. does that mean maybe you can do :sym「\」 ? 15:48
jnthn Think that'd work out OK
nine_ jnthn: ack turns up 0 results for ReplaceFile in our code base, so I guess the answer is very close to "no" 15:49
jnthn 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
nine_ Somehow search results for "flock() performance" are much more sheepish than I had anticipated...
jnthn: don't we bundle libuv?
teatime heh, :sym("\\") works but :sym「\」 and :sym(「\」) say malformed regex *shrug* 15:51
jnthn nine_: But I'm reading the MSDN docs on ReplaceFile and...it doesn't say anything about atomicity :/ 15:52
15:52 domidumont1 left
jnthn nine_: Yes, MoarVM staticly links in libuv and implements most of its IO using it 15:53
teatime er, nm, :sym(「\」) works.. so that's not *as* weird
jnthn nine_: Reading around a bit, I see various indications that ReplaceFire is indeed not atomic. 15:54
15:56 kurahaupo joined
nine_ jnthn: ok, thanks! I guess I should first sit down and think through how much consistency I'm actually gonna need anyway. 15:57
15:57 sue left 15:58 prammer joined
perlpilot teatime: I wonder why there isn't a postfix 「」 like there is for <> 15:58
masak I thought 「」 was more like '' than like <> 15:59
teatime heh, I thought '' and <> were more alike than different :) 16:00
jnthn Hm...I guess the colonpair parsing is a little less liberal than I remembered :)
(As in, it's not "any opener/close will do"
)
perlpilot masak: see? even jnthn expected it to work :)
masak heh :) 16:01
jnthn heh
I'm frazzled from having to attend a couple of meetings today, though, so I'd not read too much into that :P
Xliff `<grondilu> is there a way to know how much memory a given object consumes? 16:02
MadcapJake <> is quoteword [post]circumfix and 「」 is raw quote construct (no escaping anything)
Xliff ^^ I would like to know this too.
(Afternoon #perl6) 16:03
perlpilot Xliff: Devel::SizeMe (as soon as someone writes something like that for Rakudo ;)
Xliff LOL! 16:04
Will that work with Inline::Perl5?
16:04 ptolemarch joined
perlpilot try it! That could be interesting 16:04
likely though, you'll get the size of the wrong things 16:05
or not enough of the right things
Xliff I will! Can I dump any SEGVs in your inbox?
16:05 araujo joined
jnthn There's a heap profiler 16:05
That you can use to understand memory use
16:06 Actualeyes left
jnthn Fairly early, but already been good enough for me to hunt/fix leaks :) 16:06
Xliff jnthn, you mean "perl6 --profile" ?
I have used it. And it is nifty. 16:07
jnthn Xliff: That's the instrumenting profiler, which is good for working out what allocates memory etc.
Xliff Oh. My bad.
16:07 TreyHarris joined
perlpilot jnthn: you can't run the heap profiler from within a running program, can you? 16:07
jnthn Xliff: But less good at telling you actual sizes, and how memory is being retained
The heap profiler is --profile=heap
Xliff Right. But knowing size of objects in runtime can be useful.
jnthn 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
Xliff jnthn, gotcha.
Hence why I've just done "cpan install Devel::SizeMe". Time to see if something explodes. BBIAB.
And lo, something did! Namely SizeMe.o 16:09
jnthn :)
jnthn goes to rest and make dinner
bbl o/
masak .oO( truly a SizeMic event ) 16:10
perlpilot 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)
Xliff One of many... "SizeMe.xs:2226:57: error: ‘PL_L1Posix_ptrs’ undeclared (first use in this function)"
perlpilot: I just tried. It failed. Miserably. 16:11
But some of that is likely due to my Debian install.
16:11 sue joined
Xliff makes note to try this again when he next boots into Ubuntu. 16:11
16:12 rurban joined 16:13 ZoffixW joined
ZoffixW Xliff, ::SizeMe fails to install for me completely. 16:14
This works: perl6 -e 'use Devel::Size:from<Perl5> <size>; say size "A string"'
Gives me '34'... I wonder if there's any truth to it
psch compare it with the equivalent perl5 program? 16:15
ZoffixW psch, there isn't one. Perl 5's strings aren't objects :)
psch so Devel::Size doesn't work on a string in Perl 5? 16:16
ZoffixW Ah, I see what you mean.
Xliff ZoffixW, interesting! Thanks.
ZoffixW Gives 34 in Perl 5 too: perl -wlE 'use Devel::Size qw<total_size>; say total_size "A string"'
16:17 rurban left
Xliff Can anyone tell me the lag time it takes for modules.perl6.org to show new modules in the ecosystem? 16:17
ZoffixW 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)
MadcapJake it's like under 2 hours i think
psch ZoffixW: that's what i'd have thought. Inline::Perl5 builds... yeah
perlpilot Xliff: I think it's something like 15 or 30 minutes
(but I dunno)
ZoffixW Xliff, about 2 hours. Here's a full update log, see the timestamps: modules.perl6.org/update.log
Xliff Hmm... I thought RabidGravy added Audio::OggVorbis into the ecosystem, but panda isn't seeing it.
I think he merged either Thursday or Friday. 16:18
RabidGravy I did
ZoffixW Xliff, the process is started at :20 and :40 minutes of each our, unless it's already running
MadcapJake [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.
ZoffixW That's because there's a JSON error
Xliff D'oh! 16:19
How did I miss that.
Lemme see.
ZoffixW Hm, there's also a whole bunch of 404s on supernovus's modules :/
Xliff, there's a hashmark "comment" on the first line of `provides`
16:20 sue left
MadcapJake 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
16:20 TreyHarris left
perlpilot It should just fix my broken JSON for me ;) 16:20
ZoffixW Use Test::META + Travis :P
Xliff 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.
ZoffixW, these are new to me. I will look into it., 16:22
RabidGravy yeah even just "json_xs <META6.info" will detect the most egregious foulups 16:23
dalek osystem: 8b7824d | (Zoffix Znet)++ | META.list:
Bunch of META.info -> META6.json fixes
16:23 Praise left
Xliff # Failed test 'Can load "JSON::Marshal" ok' 16:24
# at t/010-use.t line 7
# ===SORRY!===
# Could not find JSON::Fast:ver<0.4..*> at line 60 in:
WTF?
RabidGravy old
panda install JSON::Fast
it's because panda bundles JSON::Fast
Xliff Yeah. My first instinct, and it's working now. 16:25
RabidGravy and until recently that was a version that JSON::Marshal doesn't work with
Xliff But I thought panda had already installed it.
RabidGravy yeah v0.3 until about a week ago though
Xliff I would expect JSON::Marshall to automatically fix dependency, though.
Maybe my expectations are unfounded?!?
16:26 wamba joined
RabidGravy yes 16:26
please feel free to make panda understand versioned dependencies
16:27 tharkun left, tharkun joined, [Coke]_ is now known as [Coke] 16:28 Praise joined, Praise left, Praise joined
ZoffixW zef can understand, I think? 16:29
RabidGravy 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
ZoffixW I'm getting a feeling zef is superior to panda in many ways. 16:29
mst 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:32
ZoffixW Is that the case because it's packed by default with R*? 16:33
Xliff 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)
ZoffixW Xliff, no, you're just invited to make software better :)
dalek c: ab41b98 | (Jan-Olof Hendig)++ | doc/Language/functions.pod:
Fixed typo in example, nd3i++
16:35
Xliff ZoffixW, *HAH*
RabidGravy yes, make stuff better
Xliff ZoffixW, it would get worse before it got better.
Coz...bugs.
ZoffixW Xliff, write tests :)
Xliff And Test::META is slightly useful. "Your META.info --> EPIC FAIL" -- Even gives reason, but... no location. 16:36
ZoffixW Location of what?
Xliff github.com/Xliff/p6-audio-oggvorbi.../META.info
# Failed test 'META parses okay' 16:37
# at site#sources/62C0821641BBCD0B13EDADAEA5223AD3BA53FBE2 (Test::META) line 79
# at 470: json requires object keys to be strings
But all my keys are strings.
I have yet to have coffee. Maybe coffee will help.
RabidGravy looks 16:38
dogbert2 ZoffixW: do you think github.com/perl6/doc/issues/48 can be closed?
ZoffixW Xliff, you have a trailing comma in provides
Xliff, jsonlint.com/ is your friend :)
16:38 nd3i joined
nd3i im looking for something like a reverse zip (Z) operator 16:39
Xliff (╬ಠ益ಠ)
I thought extra commas like that could be safely ignored. 16:40
Xliff makes note of jsonlint.
ZoffixW dogbert2, yeah, close it.
nd3i given @c = <as bt cu dv>, I'd like to get ((a b c d)(s t u v))
so far, I just do two passes with substr 16:41
Seems there should be a more consise approach
dogbert2 ZoffixW: done 16:42
ZoffixW dogbert2++
nd3i not really a zip, is it? more of a hyper ~ 16:44
dogbert2 nd3i: just pushed a fix fo github.com/perl6/doc/issues/479 16:45
nd3i can't hyper a split() though
ZoffixW m: my @c = <as bt cu dv>; my @res; @c».comb.map({ @res[0].push: $_[0]; @res[1].push: .[1]}); say @res
camelia rakudo-moar a16f0a: OUTPUT«[[a b c d] [s t u v]]␤»
ZoffixW Not sure if this is any better than two-pass substr :/ 16:46
psch m: my @c = <as bt cu dv>; say [Z] @c>>.comb
camelia rakudo-moar a16f0a: OUTPUT«((a b c d) (s t u v))␤»
ZoffixW waaat
psch++
nd3i holy cow 16:47
psch nd3i: so "nah, it's a zip" :)
nd3i dogbert: cool! 16:48
psch: ima have to chew on that a bit ... thx! 16:49
Xliff I have yet to get to the Z operator. 16:50
psch++ # Mind... blown.
Xliff plays with camelia. 16:52
psch it's really just @c[0].comb Z @c[1].comb Z @c[2].comb Z @c[3].comb 16:53
ZoffixW I don't get what it does though. The docs for Zip operators (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
psch m: say (1 Z 2).WHAT
camelia rakudo-moar a16f0a: OUTPUT«(Seq)␤»
lizmat ZoffixW: defaults to ,
psch m: say (1 Z 2).perl
camelia rakudo-moar a16f0a: OUTPUT«((1, 2),).Seq␤»
ZoffixW lizmat, thanks 16:55
16:55 jjido joined
lizmat m: dd 1 Z 2 16:55
camelia rakudo-moar a16f0a: OUTPUT«((1, 2),).Seq␤»
lizmat m: dd a Z=> 42
camelia rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nyEVVQMkRY␤Undeclared routine:␤ a used at line 1␤␤»
Xliff Soooo....
lizmat m: dd a =>Z 42 16:56
camelia rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gqlMnGwQ2O␤Undeclared name:␤ Z used at line 1␤␤»
lizmat hmmm...
psch lizmat: Z doesn't autoquote the lhs
lizmat m: dd 'a' =>Z 42
camelia rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/46F1wMar0g␤Undeclared name:␤ Z used at line 1␤␤»
Xliff Easy list interleave: [Z](@l1, @l2, @l3).flat?
lizmat m: dd 'a' Z=> 42 # sigh
camelia rakudo-moar a16f0a: OUTPUT«(:a(42),).Seq␤»
dalek c: e4bcf5f | (Zoffix Znet)++ | doc/Language/operators.pod:
Mention , as default infix for Z operators
16:57
psch m: my @l1 = ^4; my @l2 = 10..13; my @l3 = 100..103; say [Z](@l1, @l2, @l3].flat
camelia 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␤»
psch m: my @l1 = ^4; my @l2 = 10..13; my @l3 = 100..103; say [Z](@l1, @l2, @l3).flat
camelia rakudo-moar a16f0a: OUTPUT«(0 10 100 1 11 101 2 12 102 3 13 103)␤»
psch m: my @l1 = ^4; my @l2 = 10..13; my @l3 = 100..103; say [Z](@l1, @l2, @l3)
camelia rakudo-moar a16f0a: OUTPUT«((0 10 100) (1 11 101) (2 12 102) (3 13 103))␤»
nd3i ok, have to remember, meta[] applies to operators; hyper >><< applies to oper or methods
Xliff Damn if that didn't just answer a problem I was worried about with Audio::OggVorbis v0.0.2! ^_^ 16:58
psch m: sub plus($a, $b) { $a + $b }; say [&[plus]] ^4 16:59
camelia 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…»
psch ergh, every time... :)
m: sub plus($a, $b) { $a + $b }; say [[&plus]] ^4
camelia rakudo-moar a16f0a: OUTPUT«6␤»
psch nd3i: [&sub] makes an infix of your sub though
Xliff Now... the trick is to interleave arrays stored inside a hash!
masak m: say [[&infix:<+>]] ^4 17:00
camelia rakudo-moar a16f0a: OUTPUT«6␤»
masak m: say [+] ^4
camelia rakudo-moar a16f0a: OUTPUT«6␤»
psch m: my @a = ^5; say ++<<@a # and ops on hyper works too
camelia rakudo-moar a16f0a: OUTPUT«[1 2 3 4 5]␤»
psch oh, "oper or methods" 17:01
Xliff So if I have a list of lists... how can I get [Z] to operate on each list as an independent argument?
psch misread
Xliff $lol».comb 17:02
?
psch m: my @a = ([1,2,3],[4,5,6]); say @a>>.&[+]: 1
camelia rakudo-moar a16f0a: OUTPUT«[[2 3 4] [5 6 7]]␤»
psch Xliff: not sure what you want to zip there..? 17:03
ZoffixW m: my @c = (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'); say @c[0] Z @c[1] 17:04
camelia rakudo-moar a16f0a: OUTPUT«(((1 a) (2 b)))␤»
ZoffixW How come these don't get grouped like the original >>.comb stuff did?
I don't get why it's [Z] and not [\Z] :/ 17:05
tadzik 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:06
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
psch m: my @c = (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd');say @c[0] Z=> @c[1]
camelia rakudo-moar a16f0a: OUTPUT«((1 a) => (2 b))␤»
17:07 espadrine left
Xliff psch: [Z](@l1, @l2, @l3).flat… Except the @lₙ list are in a listref 17:07
tadzik 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 :)
Xliff So... basically a zip on each list element in a listref. 17:08
CIAvash m: my @c = (1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'); say @c[0].list Z @c[1].list
camelia rakudo-moar a16f0a: OUTPUT«((1 2) (a b))␤»
ZoffixW tadzik, I see that reason as a negative, TBH, but I'll await to see the major update :P 17:09
teatime "$() 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 $/
psch Xliff: "listref"?
Xliff arrayref
Still no coffee.... proper terminology eludes me.
Maybe I should fix that.
psch Xliff: an Array in a Scalar..? :)
tadzik ZoffixW: well, I care about overall perl6 improvements more than I do about panda's spotless reputatoin, tb 17:10
*tbh
psch m: my $l1 = ^4; my $l2 = 10..13; my $l3 = 100..103; say [Z](@$l1, @$l2, @$l3).flat # like this..?
camelia rakudo-moar a16f0a: OUTPUT«(0 10 100 1 11 101 2 12 102 3 13 103)␤»
Xliff psch: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)); say $lol
m: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)); say $lol
camelia 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:␤ …»
Xliff m: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]; say $lol 17:11
camelia rakudo-moar a16f0a: OUTPUT«[(1 2 3) (4 5 6) (7 8 9)]␤»
psch ohh
tadzik but I understand why ugexe++ would rather ship his own versions for stuff rather than endlessly awaiting upstream fixes :)
Xliff Yah
psch m: my $lol = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]; say [Z](|$lol).flat
camelia rakudo-moar a16f0a: OUTPUT«(1 4 7 2 5 8 3 6 9)␤»
Xliff \o/
ZoffixW tadzik, how come those HTTP clients and TAP processors aren't in `provides` of panda?
tadzik because panda doesn't provide them
Xliff psch++ # My hero of the day. I owez you a beer.
tadzik it depends on them
Xliff Random question... is anyone in here from the DC area? 17:12
ZoffixW tadzik, err, right, I meant why aren't they listed in `depends`?
tadzik HTTP::UA is an optional dependency for a few reasons
TAP is a hard dependency, but in the new branch that's not merged yet
ZoffixW 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 :)
tadzik ah, now you're dramatizing :) 17:13
it's nowhere near as bad
ZoffixW Alright :)
17:13 TreyHarris joined 17:15 frew joined
RabidGravy to be honest in at least two cases I have ditched upstream dependencies and reimplemented myself because of that 17:15
tadzik 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
even though these days redpanda does everything I need a module installer to do, and is much faster than everything else
ZoffixW Yeah, I did notice zef was significantly slower than panda 17:16
17:16 _mg_ joined
MadcapJake strange, zef is quite a bit faster on my machine than panda is 17:16
tadzik new panda is much faster than current panda too 17:17
maybe because it doesn't have all the features just yet :P
ZoffixW :D
tadzik but I guesstimate it will remain that way anyway
ZoffixW \o/ Finally clicked when [Z] and not [\Z] 17:19
Getting old :'( brain is slow
s/when/why/;
ugexe 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
ugexe Net::HTTP and Grammar::HTTP both were originally zef http clients 17:20
17:20 nd3i left, TreyHarris left
RabidGravy having got the domain noisegang.com I am going to have to get noiseganga.com as I keep typo-ing it ;-) 17:22
17:22 Timbus joined
Xliff RabidGravy, get noiseganja.... just coz 17:22
s/noiseganja/noiseganja.com/ 17:23
ugexe it is essentially a dependency inversion engine with aggregation
17:26 TreyHarris joined
ZoffixW RabidGravy, you're rather a prolific module author :) more than twice the modules of the second-most-prolific author: gist.github.com/zoffixznet/56f4d47...c7cc0c1be0 17:28
RabidGravy I think it's some kind of undiagnosed mental illness 17:29
;-)
what happens is that I start making something and then I find I need something else so write that and so on 17:30
17:30 dupek joined
dupek hi :) 17:30
ZoffixW Same :) Hoping to successfully write a MultiMarkdown module by the end of the week.
\o 17:31
17:31 jjido left
RabidGravy I'm also procrastinating about five 17:31
mst RabidGravy: yak stack effect 17:32
RabidGravy I tend to start a few with sketches and put them aside when I get a better idea
MadcapJake 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, CIAvash left
RabidGravy I'm having a spell of going back and fixing some of the older modules at the moment 17:34
17:36 CIAvash joined, domidumont joined 17:37 jjido joined, ZoffixW left 17:38 sno joined
MadcapJake ZoffixWin: with GitHub orgs a better tally of authors would be traversing META6 files 17:39
17:39 huggable left, huggable joined
ugexe 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
RabidGravy I'd still have twenty more modules than anyone else ;-p
ugexe lately ive been working on an interactive config generator as well (like the first time running cpan client) 17:41
MadcapJake nice!
Xliff 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
Xliff NQP?
MoarVM? 17:43
MadcapJake Xliff: maybe someone in #p6dev or #moarvm might know :\ 17:44
Xliff YH,
*Yah. Meaning I put another post-it note on my monitor and come back to it later.
Xliff is going to need a bigger monitor, soon.....
MadcapJake or maybe a post-board :) 17:45
psch Xliff: i think where to start depends on whether bits of the heap profiler could be coopted
Xliff What a sensible idea! No wonder I never thought of it!!!
psch++: Was thinking the same thing. 17:46
psch 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...
Xliff .sigma
RabidGravy I actually thought of a good design for a P6 version of Scrumblr this morning, speaking of post-boards
Xliff ER
.u sigma
yoleaux U+037B GREEK SMALL REVERSED LUNATE SIGMA SYMBOL [Ll] (ͻ)
U+037C GREEK SMALL DOTTED LUNATE SIGMA SYMBOL [Ll] (ͼ)
U+037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL [Ll] (ͽ)
RabidGravy but I'll let someone else make it 17:47
Xliff .u Σ
yoleaux U+03A3 GREEK CAPITAL LETTER SIGMA [Lu] (Σ)
Xliff Why didn't that come up with ".u sigma"?
psch .u greek sigma
yoleaux U+03F2 GREEK LUNATE SIGMA SYMBOL [Ll] (ϲ)
17:48 sno left
psch .u letter sigma 17:48
yoleaux U+03A3 GREEK CAPITAL LETTER SIGMA [Lu] (Σ)
U+03C2 GREEK SMALL LETTER FINAL SIGMA [Ll] (ς)
U+03C3 GREEK SMALL LETTER SIGMA [Ll] (σ)
[Coke] because it's only showing you 3.
Xliff Ah. Max result size,then.
17:48 sno joined
[Coke] if you want to dig through unicode, a local perl6 program is probably better. 17:48
Xliff m: say Σ.WHAT
camelia rakudo-moar a16f0a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eYcQjhe65G␤Undeclared routine:␤ Σ used at line 1␤␤»
Xliff whistles innocently... 17:49
RabidGravy 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
Xliff No objections whatsoever! ;) 18:02
Oh, I just love the travis status of "Unknown"
The repository at Xliff/p6-audio-oggvorbis was not found. 18:03
o_O
Is there a webpage that explains this Travis thing, so I can get it working?
RabidGravy 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:05
Xliff 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
Xliff Aaand... we're off! 18:12
That was ... actually not bad.
18:12 cpage_ joined
Xliff Travis is slow though. 18:13
Does travis actually have to compile rakudo before testing the project? 18:15
El_Che 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.
teatime blah; I can't decide which of my several low-priority self-directed projects to work on :0 18:19
18:21 _mg_ left, cognominal joined
Xliff Wow! 18:23
Travis-CI does NOT include Test::META 18:24
I might need to add that to build dependency.
MadcapJake [Coke]: I think that would be really great
RabidGravy er why would it?
Xliff Aaannd. Need libogg and libvorbis. 18:25
Xliff goes to read up on setting up proper dependencies with travis.
18:26 cpage_ left
MadcapJake 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:27
(though you'd really need to hinge on rakudo versions) 18:28
grondilu m: module B {}; sub () { import B }; 18:29
camelia rakudo-moar a16f0a: OUTPUT«===SORRY!===␤Cannot find method 'ast'␤»
grondilu m: module B {}; import B;
camelia ( no output )
grondilu m: module B { our sub f is export {} }; sub () { import B }; 18:30
camelia rakudo-moar a16f0a: OUTPUT«===SORRY!===␤Cannot find method 'ast'␤»
El_Che 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: gist.github.com/nxadm/a2abb4b34e962d4b5a2a
dalek osystem: 3331b09 | RabidGravy++ | META.list:
Add Task::Noise

See github.com/Perl6-Noise-Gang/Task-Noise
RabidGravy there
18:31 zakharyas joined
grondilu in file A.pm6: 'unit class A; sub f { use B; }' 18:32
18:32 sno left
grondilu in file B.pm6: 'unit class B; sub foo { note "foo!" }' 18:32
18:33 sno joined
grondilu and then: $ perl6 -e 'use A; B::foo;' # should not reckognize B::foo, should it? 18:33
yet it does
Xliff Oh lord... Travis is hardcore. It has to build the entire container, install rakudo and then process .travis.yml 18:34
grondilu erratum:
Xliff No wonder it's slow
grondilu in file B.pm6: 'unit class B; our sub foo { note "foo!" }'
Xliff Now in addition to having to test my own code, I have to test Travis integration. 18:38
18:38 Praise left 18:40 cdg left
Xliff Technically, Travis is awesome. Just a pain in the ass right now. 18:41
MadcapJake El_Che: would that recompile every time you run CI?
El_Che 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
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 :)
Xliff 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
Xliff apt-get install libogg0 libvorbis0a libvorbisenc <- Hopefully work. 18:47
MadcapJake El_Che: yeah I can't recall who it is but definitely someone in here
Xliff: right, we're talking about finding a way to *not* compile rakudo every time
El_Che j'accuse tadzik
:)
Xliff MadcapJake, somehow make install package when rakudo is pushed, then install those bins on projects that depend on it. 18:48
18:48 milwaukee joined
RabidGravy well of course the travis logs show who is responsible up front 18:50
tadzik no, I think that's szabgab
18:50 sue joined
RabidGravy Perl6 support for Travis-CI is community maintained. 18:50
Please open any issues at github.com/travis-ci/travis-ci/issues/new
and cc @paultcochrane, @hoelzro, @ugexe, and @tony-o
dalek c: 7ef1d75 | (Zoffix Znet)++ | doc/Type/Routine.pod:
is cached is experimental
18:51
MadcapJake Xliff: right! I'm not at all knowledgeable on Travis or their build architecture to say whether that's possible though 18:52
wamba Is it ok, compare two (integer) lists by eq or sometimes can fails? 18:53
18:53 rindolf left 18:54 CIAvash left
Xliff pulls hair. 18:54
travis-ci.org/Xliff/p6-audio-oggvo.../127303057
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
TimToady wamba: just use eqv, it should be more efficient anyway
geekosaur yu didn't add an api version so you need the -dev package
Xliff I will soon have no hair!
geekosaur for the non-versioned .so
Xliff Oooo
geekosaur++
RabidGravy so don't do that
geekosaur this (and the facvt that apis are, yknow, versioned because they change) is why you should include an api version 18:56
Xliff *sigh* 18:57
But API versions are highly dependend on the distribution.
TimToady 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
Xliff Which is what I wanted to avoid.
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.
RabidGravy yeah v2 will work 19:00
geekosaur ...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:01
19:02 Ven joined
Xliff geekosaur, Yes. Frustration talking. Move along. 19:05
RabidGravy 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
Xliff Travis Build #5
I would be < $snark if builds didn't take 15-20 minutes 19:06
19:07 Relsak joined
RabidGravy maybe you need to take up sheep farming 19:07
Xliff I do that when I try to sleep. Coz...insomnia! 19:08
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
19:09 ZoffixW joined
Xliff Still. Compiling rakudo at every push... hurts. 19:10
ZoffixW Is anything wrong with this? gist.github.com/zoffixznet/629a926...aa58a531ee
I'm getting syntax error at test.p6 line 2, near "use Foo :"
Ven On the language interop story/wars.. This time a Ruby/Rails video... featuring PHP. www.youtube.com/watch?v=MpBtj2rMBnY
19:11 TreyHarris joined
jnthn ZoffixW: Apparently, the syntax error at line 2... :P 19:12
19:12 jjido left
ZoffixW dammit... "perl test.p6" 19:12
Xliff Isn't there a 2016.04 release tag for rakudo?
Travis is reporting this "error: pathspec '2016.04' did not match any file(s) known to git." 19:13
ZoffixW Funny this happens right after I removed "use v6;" from a code example in the docs ~_~
Xliff So I am assuming I have the wrong one.
jnthn ZoffixW: Heh. I finally get it to open in my browser and you already solved it. :)
ZoffixW jnthn++ at least you tried :)
jnthn Xliff: Seems to exist 19:14
$ git rev-parse 2016.04
c1c3990c2c2d1821d83d6ea45681b213501c81d1
ZoffixW It's interesting that use Foo :!special :ALL; works, but still includes :special 19:15
I see a possible area of improvement :)
RabidGravy Xliff, where's your .travis.yml
19:15 jjido joined
ZoffixW s/works/doesn't cry about it/ 19:16
wamba 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, daniel-s joined
Xliff github.com/Xliff/p6-audio-oggvorbi...travis.yml 19:17
19:18 nchambers is now known as sillytime 19:19 daniel-s left
Xliff And right now, Test::META isn't installing on Travis images due to an error. 19:19
19:19 daniel-s joined, TreyHarris left
RabidGravy that looks fine to me 19:20
Xliff Looks like it's a "rakudobrew build-panda" issue. 19:21
ZoffixW Xliff, what's the error?
RabidGravy 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
ZoffixW Xliff, just list it in "test-depends" in your META.... 19:22
wamba m: .say for ("3","3" ... *)[^10] ==> {  @^a.rotor(2 => -1)>>.map: { .comb(/\d+/).[*-1] } }() ==>
squish  with => &[eqv]
camelia 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<EOL>␤ expecting any of:␤ prefix␤ term␤»
wamba m: .say for ("3","3" ... *)[^10] ==> {  @^a.rotor(2 => -1)>>.map: { .comb(/\d+/).[*-1] } }() ==> squish  with => &[eqv]
camelia 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 <unit> at /tmp/0286JowrWU line 1␤␤»
shadowpaste "xliff" at 217.168.150.38 pasted "Travis Test::META install log" (114 lines) at fpaste.scsys.co.uk/512100
wamba m: .say for ("3","3" ... *)[^10] ==> {  @^a.rotor(2 => -1)>>.map: { .comb(/\d+/).[*-1] } }() ==> squish  with => &[eq] 19:23
camelia rakudo-moar ef3e62: OUTPUT«(3 3)␤»
Xliff ZoffixW, won't that run into the same problem?>
ZoffixW mh mh.. It's that "P6M Merging GLOBAL symbols" issue again.
RabidGravy er what the actual?
ZoffixW 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
Xliff kk
RabidGravy the reason for that *was* that JSON::Marshal required a different version of the one installed by panda 19:24
oh
you installed a tagged version of panda 19:25
yes that will break it
just install the latest one
19:26 daniel-s left, smls joined 19:27 domidumont left
Xliff 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
RabidGravy which works fine 19:28
just you're doing rakudobrew build-panda ${TRAVIS_PERL6_VERSION#latest}
19:28 daniel-s left
RabidGravy just drop the ${TRAVIS_PERL6_VERSION#latest} 19:29
19:29 daniel-s joined
RabidGravy it doesn't need it unless you want to test panda 19:29
Xliff Ohh! OK. That was in the docs so I thought panda version needed to match rakudo.
19:30 TreyHarris joined
RabidGravy no, I'm doing latest and 2016.04 for all my modules 19:30
Xliff kk
Now, instead of watching Travis-CI watching paint dry...I will make a milkshake. 19:31
19:31 avenj joined
ZoffixW now wants a milkshake.... 19:32
19:33 daniel-s left
RabidGravy www.youtube.com/watch?v=y2SZPb7UUtc 19:34
19:36 cschwenz joined
cschwenz \o #perl6 19:37
RabidGravy yo
cschwenz are there any known performance issues with using "where" in method signatures?
19:38 TreyHarris left
ZoffixW 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
cschwenz 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
so i put a where on method A and call method B 19:40
Xliff RabidGravy, LOL ... however video is blocked here.
cschwenz and method B is slowed even though it never has a where on it
[Coke] same method name? 19:41
not sure how different A/B is supposed to imply.
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
Xliff OK. Dropping 2016.01 because Test::META is failing, there.
cschwenz Coke: ah, sorry. one sec, writing example.
19:43 _mg_ joined
ZoffixW github.com/rakudo/rakudo/#reporting-bugs 19:43
19:45 ChristopherBotto joined
RabidGravy Xliff, I'm not entirely surprised tbh, I've not worried that much about backward compatibility 19:45
ChristopherBotto Hello #perl6!
RabidGravy yo
cschwenz 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
camelia rakudo-moar ef3e62: OUTPUT«0.00490609␤»
ChristopherBotto m: chdir '.'
camelia ( no output )
Xliff RabidGravy, yes, well there will always be another release.
cschwenz 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";
camelia rakudo-moar ef3e62: OUTPUT«0.31616794␤»
cschwenz ^^^ that
ZoffixW New blog post: "Perl 6: There Are Traitors In Our Midst!" blogs.perl.org/users/zoffix_znet/20...midst.html
Xliff Well, this has been an interesting (and educational) experience. 19:47
v0.0.2 will include API parameters.
Xliff wants to leave a note, but finds no empty real-estate on the monitor.
geekosaur hugs NamedScratchpads :p 19:48
ZoffixW 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 (github.com/rakudo/rakudo/#reporting-bugs)
cschwenz okay, will do 19:49
19:49 ZoffixW left
[Coke] finally updates the README to encourage pull requests instead of RT for patches. 19:49
19:53 yqt joined 19:58 k-man joined
Xliff \o/ - nine travis builds and finally passed. 19:58
cschwenz the above potential performance issue has been reported and it is assigned to [perl #128055]
Xliff Thanks, #perl6 for the Travis help. 20:04
20:04 molaf left 20:05 cschwenz left, cpage_ joined 20:06 bazzaar left 20:08 hotel_california joined 20:09 hotel left 20:12 rurban joined, sue left
grondilu m: class C {}; module M { multi prefix:<+>(C $) is export { say "+C!"; C } }; import C; say "starting"; sleep 1; my $ = +C; 20:13
camelia rakudo-moar 631a36: OUTPUT«starting␤Use of uninitialized value of type C in numeric context in block <unit> at /tmp/kPqQq2N36v line 1␤»
grondilu m: class C {}; module M { multi prefix:<+>(C $) is export { say "+C!"; C } }; import M; say "starting"; sleep 1; my $ = +C;
camelia rakudo-moar 631a36: OUTPUT«+C!␤starting␤»
grondilu was expecting "startingn+C!"
20:14 cdg joined
grondilu why is the code inside the multi executed before even we do any call to the multi??? 20:14
20:14 dupek left
skids constant folding... 20:15
grondilu m: my $count = 0; class C {}; module M { multi prefix:<+>(C $) is export { $count++; C } }; import M; say $count; my $ = +C;
camelia rakudo-moar 631a36: OUTPUT«0␤»
grondilu 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
camelia rakudo-moar 631a36: OUTPUT«counting␤0␤»
skids 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;
camelia rakudo-moar 631a36: OUTPUT«0.08060253␤+C!␤0.06330614␤starting␤»
skids 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
camelia rakudo-moar 631a36: OUTPUT«Instant:1462220303.923699␤+C!␤Instant:1462220303.936886␤starting␤»
grondilu I can't tell where the instants come from 20:18
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
camelia 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<EOL>␤»
grondilu 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
camelia rakudo-moar 631a36: OUTPUT«A-time Instant:1462220437.798976␤+C!␤B timeInstant:1462220437.821858␤starting␤»
grondilu I don't get what's happening here.
20:20 Xliff_ joined
skids me not quite either. 20:20
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, pnu__ joined
skids 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
camelia rakudo-moar 631a36: OUTPUT«A BEGINInstant:1462220583.002580␤+C!␤B BEGINInstant:1462220583.049084␤starting␤»
20:22 MadcapJake_ joined
jnthn 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
20:23 mindos_ joined
jnthn And my $ = +C just grabs the constant-folded result of +C and uses it. 20:23
skids and the different BEGIN times explain the other things, yeah. 20:24
20:24 Spot___ joined, caasih_ joined
dogbert2 is it correct, or sheer nonsense, that $*THREAD contains a Thread object describing the currently executing thread? 20:25
lizmat m: dd $*THREAD
camelia rakudo-moar 631a36: OUTPUT«Thread Initial thread = Thread.new(app_lifetime => Bool::False, name => "Initial thread")␤»
20:25 Peter_R left, au_ joined
lizmat dogbert2: looks like it :-) 20:25
jnthn dogbert2: Correct
dogbert2 trying to coerce some documentation here :)
20:26 ggherdov_ joined, Peter_R joined, sillytime is now known as nchambers
dogbert2 and $*SCHEDULER is an object describing the current default scheduler? 20:26
20:26 mls left 20:27 TreyHarris joined, rurban left
jnthn dogbert2: Yes 20:27
skids dogbert2: $*SCHEDULER is docced in the synopsis IIRC. 20:28
20:28 boegel|quassel joined
dogbert2 lizmat++, jnthn++, trying to do something with github.com/perl6/doc/issues/473 20:28
skids++ 20:29
20:29 ggherdov left, [ptc] left, nebuchadnezzar left, boegel left, winger__ left, SmokeMachine____ joined, SmokeMachine____ left, SmokeMachine____ joined, pnu__ is now known as pnu_, MadcapJake_ is now known as MadcapJake
grondilu I guess I need to read about constant folding. 20:29
skids dogbert: design.perl6.org/S17.html#Schedulers 20:30
20:30 Spot___ is now known as Spot__, parisba__ is now known as parisba_, mindos_ is now known as mindos
dogbert2 skids: thx 20:30
20:30 winger__ joined, caasih_ is now known as caasih
skids 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, timotimo joined, [ptc] joined, webmind joined, ggherdov_ is now known as ggherdov
grondilu ok 20:32
jnthn 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
skids 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
jnthn Though yes, if you overload built-in operators then you need to play by the rules their proto sets. 20:35
20:35 adu joined
jnthn That prefix:<+> should have an implementation that's fine with being compile-time constant folded is part of the contract for that. 20:35
20:35 flaviusb joined
smls 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
20:38 mls joined
skids That reminded me of this very bad idea based on Zoffix's "is Int" post: 20:38
smls I find this currently the biggest obstacle when trying to develop multi-threaded programs in Perl 6.
skids 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;
smls Occasional crashes, I can handle... ;)
camelia rakudo-moar 631a36: OUTPUT«(I)␤0.7649241␤»
skids (that slows down + for everything) 20:39
20:39 kaare_ left, hotel joined 20:40 hotel_california left, TreyHarris joined
jnthn smls: No, not by design...we'd really like to get both locations. 20:40
smls Ok
jnthn: Should I RT it?
jnthn smls: Yes...I'd rather it not be forgot :) 20:41
smls Will do.
jnthn We have a similar ticket for react blocks.
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. :)
skids RT#126692 already
jnthn skids: I'd only expect it to slow down + on integers, not on everything? 20:42
skids smls: ^^
Well, yes only on Ints.
smls ok 20:43
20:43 _mg_ left
jnthn skids: I'm not sure why that's surprising. :) 20:43
20:43 dalek left
skids Oh it isn't. Like I said, it's a bad idea. 20:43
jnthn Ah, I see :)
smls 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
jnthn smls: I "deal with" then by spending hours in the debugger. ;-)
But yes, that's a good approach for now. Nice for braving it! ;)
20:44 dalek joined, ChanServ sets mode: +v dalek
skids 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:44
jnthn skids: I've pondered that a few times :) 20:45
It'd be a good bit as a type smiley
20:47 milwaukee left
skids :E 20:48
dalek c: dda6151 | (Jan-Olof Hendig)++ | doc/Language/variables.pod:
Added some documentation about THREAD and SCHEDULER. jnthn++, lizmat++ & skids++
20:50
20:51 geraud joined 20:52 rurban joined
skids Hrm now that I look at the code snippet again, I wonder why it doesn't infinitely recurse. 20:52
20:52 Zoffix joined 20:55 ZoffixLappy joined 20:59 skids left, Ven left
lizmat and another P6W hits the Net: p6weekly.wordpress.com/2016/05/02/...-landings/ 21:00
21:01 ChristopherBotto left
Zoffix \o/ 21:01
yoleaux 12 Mar 2016 16:27Z <BenGoldberg> 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".
Zoffix lizmat++
21:01 adu left, AlexDaniel joined
Zoffix whoa... Looks like it's been ages since I've used the "Zoffix" link :P 21:01
s/link/nick/; 21:02
AlexDaniel Zoffix: irclog.perlgeek.de/perl6/2016-05-01#i_12416802 21:03
21:04 dolmen joined
Zoffix haha 21:04
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
AlexDaniel but indeed, I'm surprised that “Documentation” link on perl6.org does not DWIM
that being said, perl6intro has to be reachable as well 21:06
pmurias MadcapJake: what would GUI for modules give you over a CLI? 21:08
Zoffix Very nice Weekly. So much work has been done \o/
Zoffix passes around a round of ++
MadcapJake pmurias: prettitudinal awesomesauciness
21:09 shmibs_ left, prammer_ joined 21:10 prammer left, prammer_ is now known as prammer
MadcapJake 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
21:10 zakharyas left 21:11 shmibs joined 21:13 daniel-s joined
MadcapJake 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
timotimo 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 :)
Xliff_ lizmat: \o/ 21:17
I made da weeklies!
21:17 cpage_ left
Zoffix Xliff_++ 21:17
21:17 jjido left
timotimo Ulti: github.com/MoarVM/MoarVM/commit/59...c81eb71f7c - look at ma codez 21:18
21:18 pecastro left
smls 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
timotimo we should allow every possible re-ordering of the letters in THREADS 21:22
smls ;)
Xliff_ Zoffix, Regarding your article on augmentation... Dark Side FTW*!!! (* --> when carefully implemented) 21:24
jnthn
.oO( RDEATHS )
21:24 cpage_ joined
Zoffix 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
RabidGravy 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:26
Zoffix Go to chrome://net-internals/#dns and click clear host cache? 21:27
RabidGravy nope, it's still redirecting itself 21:29
Zoffix *shrug*
This is weird. Seems zef is installing some older version of Bailador, without a patch that went in yesterday :/ 21:31
Xliff_ 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.
Zoffix And I did do `zef update`
Xliff_ Zoffix, and that the changes are app specific.
That means... lots of warnings... and tests.... and tests... and MOAR TESTS!!! 21:32
21:32 boegel|quassel is now known as boegel
geekosaur RabidGravy, what platform? 21:32
windows and various linuxes also have dns caches
RabidGravy Linux,
geekosaur some of the linux ones are known buggu
RabidGravy got it
geekosaur (nscd sometimes needs to be killed and restarted, for example) 21:33
21:33 sue joined
geekosaur systemd interoduced a new dbus-based cache that may also need to be whacked occasionally but I don't know offhand how 21:33
RabidGravy it's developer tools -> settings -> disable cache (open url in same tab)
not dns
geekosaur ah
too many caches at too many levels >.> 21:34
Zoffix 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
camelia rakudo-moar 631a36: OUTPUT«True␤»
Zoffix Xliff_, yeah, but then you can have a case like this ^
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
camelia rakudo-moar 631a36: OUTPUT«41␤»
Zoffix Never mind me.
Zoffix resumes drinking and hacking on perl6.party
tadzik where's the party at? :)
geekosaur on the web? :p 21:36
Zoffix tadzik, perl6.party
:P
tadzik WAN party? :) 21:37
21:39 huggable left, huggable joined 21:41 nebuchad` is now known as nebuchadnezzar 21:42 wamba left
lizmat RT #77820 21:43
Xliff_ Zoffix, I grok what you mean. Hence caveat! ;)
Zoffix :)
Xliff_ Zoffix, CY00T KITTEHS! Bahahahaha!
Awesome!
Zoffix lizmat, rt.perl.org//Public/Bug/Display.html?id=77820 21:44
lizmat Zoffix++ 21:45
21:45 Praise joined, Praise left, Praise joined 21:50 prammer left, prammer joined, Relsak left 21:51 Sgeo_ joined 21:53 rurban left
hotel why would you ever use a backward feed over a forward feed? 21:57
21:58 cpage_ left 21:59 Peter_R left 22:00 cpage_ joined 22:04 Peter_R joined, daniel-s left
timotimo .u clef 22:05
yoleaux U+1D11E MUSICAL SYMBOL G CLEF [So] (𝄞)
U+1D11F MUSICAL SYMBOL G CLEF OTTAVA ALTA [So] (𝄟)
U+1D120 MUSICAL SYMBOL G CLEF OTTAVA BASSA [So] (𝄠)
22:05 ptolemarch left 22:11 Zoffix left, ZoffixLappy left, ZoffixLappy joined 22:12 dolmen left 22:13 ajr_ joined 22:15 sufrosti1o left
ajr_ 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:15
22:16 firstdayonthejob left, sufrostico joined 22:19 firstdayonthejob joined 22:26 adu left 22:27 firstdayonthejob left, firstdayonthejob joined, firstdayonthejob left 22:28 firstdayonthejob joined 22:30 nd3i joined, firstdayonthejob left 22:31 firstdayonthejob joined 22:33 pmurias left
nd3i can someone point to a good example of MAIN that handles named args, plus the usual process "stdin OR all given files" situation? 22:33
mine keeps dying when I give a named arg, --min=2, saying "can't open file "--min=2" 22:34
22:35 pmurias joined
nd3i I got the impression that I could just use for lines() ... and it would "just work" 22:35
ZoffixLappy nd3i, how are you making a call? 22:36
to the program
The error sounds like you're trying to pass the argument to perl6 itself
nd3i here: gist.github.com/nd3i/03750ed3a67a2...127d165e6a
22:37 firstdayonthejob left
nd3i invoked with: perl6 wc.p6 --min=2 22:37
22:38 sortiz joined
sortiz \o #perl6 22:38
22:38 firstdayonthejob joined, Sokel joined
nd3i must be something simple I've missed. brain.fried 22:38
ZoffixLappy nd3i, I can reproduce the issue... Seems it might be a bug 22:39
22:40 Sokel left 22:41 pmurias left
nd3i ok. thanks. I added a comment with the complete error mesage 22:43
smls Looks like MAIN simply leaves @*ARGS intact..
perl6 -e 'sub MAIN ($a) { say @*ARGS }' 42 # prints [42]
And then `lines` uses $*ARGFILES which in turn looks at @*ARGS
ZoffixLappy or not 22:44
Weird. 22:45
nd3i, if I comment out the sub's body, the invocation works.
Ah
smls++ that makes sense
22:45 firstdayonthejob left
nd3i sorry, gotta split; thanks for taking a look. 22:47
22:47 nd3i left
smls This works: 22:48
perl6 -e 'sub MAIN (:$a, *@files) { @*ARGS = @files; say lines }' --a=42 saome_file.txt
RabidGravy yeah
smls Or even cuter:
perl6 -e 'sub MAIN (:$a, *@*ARGS) { say lines }' --a=42 some_file.txt
ZoffixLappy lines without args isn't documented 22:49
22:50 TEttinger joined
smls It is in S16: design.perl6.org/S16.html#Overrida...IO_handles 22:50
"The lines() term inputs from $*ARGFILES which defaults to $*IN in the absence of any filenames."
ZoffixLappy Those are specs, not docs :P
RabidGravy It probably should be then 22:52
ZoffixLappy does
dalek c: aa73530 | (Zoffix Znet)++ | doc/Type/Cool.pod:
lines without arguments is also a thing
22:53
teatime 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.)
RabidGravy ZoffixLappy++
3 sounds more entertaining, even though I don;t know what it does 22:55
ZoffixLappy 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:56
22:57 Amnez777 left
RabidGravy having read what gulp.js does, yeah that would be useful 22:57
teatime 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.
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:58
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 22:59
ZoffixLappy 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
teatime 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 :)
RabidGravy just do it, the more the merrier 23:01
a thing from which you can build a ci thingy is always going to be useful 23:04
23:05 ajr_ left 23:08 lizmat left, lizmat joined
grondilu with constant folding, is there a limit to the depth the optimizer tries or something? Like in terms of numbers of function calls? 23:08
23:10 cpage_ left
grondilu 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:12
teatime grondilu: maybe it's a warn? 23:13
grondilu no otherwise the infix:<*> would not be executed twice.
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.
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:
sub { do-stuff; return $that }; # works fine 23:16
23:16 dwarring joined
grondilu sub { do-stuff; do-something-completely-unrelated-and-simple; return $that; } # fails 23:16
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:18
23:21 sue left
grondilu it seems to work if it's a method call though. So confusing. 23:21
mst oh, so the constant folding attempt blows up? 23:22
grondilu 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.
timotimo 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
and you can see if it's the optimizer by using --stagestats 23:25
grondilu timotimo: I did put a q{note "doing stuff"} line
23:25 Amnez777 joined
grondilu and I see it twice when the exception occurs, and only once when it does not. 23:25
timotimo is that the infix:<*> in core or is it a custom one?
grondilu it's a custom one. For my Cliford module. 23:26
timotimo so at least it's not about proto vs candidate
grondilu don't think so. 23:27
timotimo so, did you try the exception to backtrace thing?
grondilu not sure what you mean. 23:28
oh you mean "try {...}"?
I'm not familiar with dealing with exceptions.
timotimo m: sub who's-calling() { die "oh no"; CATCH { default { say $_ } } }; sub caller() { who's-calling }; caller()
camelia 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 <unit> at /tmp/zYCltY5T2s line 1␤␤»
timotimo m: sub who's-calling() { die "oh no"; CATCH { default { say $_ } } }; sub caller() { who's-calling }; caller(); say "not fatal, yay"
camelia 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 <unit> at /tmp/r2obcsAEzZ line 1␤␤not fatal, yay␤»
timotimo you might need --ll-exception, otherwise rakudo will strip out all the interesting bits 23:29
23:33 lizmat_ joined
grondilu First I think I'll try to turn everything relevant into methods. 23:33
23:36 lizmat left 23:41 ajr_ joined, ajr_ left 23:42 DarthGandalf left, DarthGandalf joined 23:44 breinbaas joined
ZoffixLappy Looks like slurping and parsing a handful of files is waaaaaay slower in Perl 6 than in Perl 5 :/ 23:48
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
timotimo can you do a --profile?
and gimme your code? :)
23:49 spider-mario left
ZoffixLappy "Segmentation fault" 23:50
That's running with --profile :/ Works fine without it :\
And this is the code: github.com/zoffixznet/perl6.party 23:51
running with perl6 bin/app.p6
23:51 mcsnolte left
ZoffixLappy You'll need `sass` installed to run it 23:51
teatime mmm... sass is such good stuff 23:52
ZoffixLappy :)
timotimo my internet connection is super laggy right now 23:53
23:54 Amnez777 left 23:55 RabidGravy left
timotimo all ze dependencies 23:56
Please install the Filter::Simple Perl 5 module! - o_O 23:57
ZoffixLappy Haha 23:59
23:59 tardisx joined
ZoffixLappy I forgot, it also requires Text::MultiMarkdown Perl 5 module :} 23:59