Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-11-18

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 Zoffix cygx, oh yeah, fails for any R == G == B actually.
00:01 Zoffix Skarsnik, (providing 'abgr' conversion is implemented), it would be Color.new('AABBCCDD').abgr to get a list or Color.new('AABBCCDD').to-string('abgr') to get a string :)
00:01 RabidGravy ugexe, there are Perl 6 contracts?
00:01 cygx Zoffix: really? I don't see that
00:01 * RabidGravy should start looking for remunerative employment at some point
00:01 cygx C_max + C_min must be 0 or 2 for the code to fail
00:02 pink_mist why is the order 'abgr'? 0_o I've mostly seen it as 'rgba'
00:02 cygx pink_mist: endianness
00:02 cygx (at a guess)
00:02 Zoffix cygx, oh, ok.
00:02 RabidGravy yeah "hardware"
00:02 * Zoffix has a few brews
00:02 Zoffix *had
00:02 RabidGravy brews++
00:02 Zoffix by has as well
00:02 Zoffix :)
00:02 pink_mist cygx: I guess that makes sense .. thanks :)
00:03 Zoffix pink_mist, <Skarsnik> I work with a subtitle file format that is coded like that for color: {c:$color} where color is (A)BGR, aka *** this
00:03 pink_mist Zoffix: ah
00:04 RabidGravy anyway the wind has died down now I think I may be able to sleep
00:04 RabidGravy toodlepip
00:04 RabidGravy play nicely
00:04 cygx o/
00:04 Zoffix \o
00:05 Skarsnik from some code from gstreamer
00:05 Skarsnik "{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR," \
00:05 Skarsnik " I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444," \
00:05 Skarsnik " NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }"
00:06 Zoffix :o
00:06 Skarsnik they are video format
00:08 Zoffix Hm. my operators test is 0m6.245s vs ~0m30s on my $work box. I wonder how much of that is my using newer perl6 at $home
00:08 Zoffix s/is/runs for/l;
00:09 Skarsnik bgrx is for premultiplied alpha
00:09 Zoffix This channel needs a Markov chain bot
00:10 Zoffix Which reminds me. I need to write a New Years bot in Perl 6. :) Gonna advertise Perl 6 Freenode's New Years party
00:10 Zoffix *during Freenode's*
00:10 * Zoffix can't type anymore
00:10 ugexe camelia should write a program using the history of user input markov chained
00:10 Skarsnik spend new year on irc is sad x)
00:10 Zoffix Skarsnik, why?
00:11 Zoffix Skarsnik, I meet people I've known for a decade but don't get to talk to any more.
00:11 Zoffix Plus, I can just pass out when i'm drunk... I'm home already :)
00:11 Skarsnik I done it once, I feel sad not being with friends x)
00:11 Skarsnik ahah nice point
00:16 cygx 'night o/
00:16 Zoffix \o
00:22 jdv79 timotimo: idk.  how do i check that easily?
00:23 BenGoldberg joined #perl6
00:29 arnsholt timotimo: The Net::ZMQ tests pass for me. What kinds of error are you getting?
00:30 jdv79 i commented though i'm not sure.
00:30 BenGoldberg joined #perl6
00:30 telex joined #perl6
00:46 timotimo jdv79: what is that in reference to?
00:46 timotimo arnsholt: i'll gist it
00:46 jdv79 a lame moarvm ticket
00:47 timotimo oh, that
00:47 timotimo jdv79: i suppose build a simple c program and supply that flag?
00:47 jdv79 i did in the comment
00:47 jdv79 i think
00:47 timotimo https://gist.github.com/timo/cafd71a06a2a81a95a04
00:48 timotimo ah
00:48 timotimo that helps
00:48 timotimo you see, i advertised that as an "easy to get into our project" issue on the weekly
00:49 jdv79 i did not
00:50 timotimo i'm feeling maximum exhausted, so i think i'll go to bed real soon now
00:50 arnsholt timotimo: That's odd. What distro/OS are you on, and what ZMQ version do you have?
00:50 Skarsnik good night here x)
00:50 timotimo on the other hand, the more adorable of the two cats just lied down next to me
00:50 Skarsnik x)
00:51 Skarsnik left your keyboard and cuddle them to death
00:51 timotimo i have both libzmq.so.3 and libzmq.so.4
00:51 jdv79 oh, i see it now.  did you add that later?
00:51 timotimo i added the third one
00:51 jdv79 i only remember the profiler and abi ones
00:51 jdv79 ah
00:51 arnsholt Right, that's a bit more modern than Ubuntu, I think
00:51 arnsholt IIRC I have 2.2.0 or something like that
00:52 dalek modules.perl6.org/mojo-app: 0a0fe74 | (Zoffix Znet)++ | mojo-app/DEPLOYMENT.md:
00:52 dalek modules.perl6.org/mojo-app: Add instructions for brewing Perl 5 in a virgin Debian env
00:52 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/0a0fe74291
00:52 timotimo libzmq.so points at the one with the 3, though
00:53 timotimo Zoffix: a debian env without alcohol?
00:53 arnsholt Right. On my system it points to libzmq.so.1.0.1
00:53 Zoffix timotimo, huh?
00:53 arnsholt So it could actually just be something to do with you having a more modern ZMQ
00:53 timotimo lol
00:54 jdv79 nite
00:56 yeahnoob joined #perl6
00:56 timotimo good night!
00:57 arnsholt Yeah, it's bedtime here too, really
00:58 arnsholt timotimo: I'll try to have a look at what happens if I use ZMQ 3 instead
00:58 arnsholt Likely it'll blow up
00:58 Zoffix Hm, just remembered there was a rendering issue I wanted to fix in mojo-app branch for uber long module names.
00:58 Zoffix so now PR today :) Tomorrow's the day.
00:58 Zoffix *no
01:01 zengargoyle timezones are such funny things on #perl6
01:08 dalek rakudo-star-daily: 598b7f7 | coke++ | log/ (3 files):
01:08 dalek rakudo-star-daily: today (automated commit)
01:08 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/598b7f7a4b
01:19 * [Coke] wonders what the odds are of getting a clean r-j run for this release. :|
01:19 n0tjack joined #perl6
01:24 dbohdan joined #perl6
01:35 n0tjack joined #perl6
01:44 tokuhiro_ joined #perl6
02:07 yary joined #perl6
02:10 zengargoyle haven't even tried the java backend in ages, never had the patience to wait for it to start and never had anything time consuming enough to make it worth checking out.
02:10 kid51 joined #perl6
02:11 molaf_ joined #perl6
02:14 yary Hello p6 people, been talking to camelia, I think this qualifies as an LTA error-
02:14 yary p6: use 6.000; print "OK";
02:14 camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤    use used at line 1␤␤»
02:15 yary in p5 I use something like the above... I know in p6 I should say "use v6.0.0.0"... would be nice if error was more readable in this case
02:16 * zengargoyle wonders about getting the last bits of POD $=data sections working.  i worry nqp and compile time is too much for my brain.
02:16 tokuhiro_ joined #perl6
02:16 zengargoyle m: use 6.0000; say "OK";
02:16 camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6IdbsHBMn5␤Undeclared routine:␤    use used at line 1␤␤»
02:16 yary m: use v6.Birthday; print "OK";
02:16 camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AaTv9zuyrJ␤No compiler available for Perl v6.Birthday␤at /tmp/AaTv9zuyrJ:1␤------> 3use v6.Birthday7⏏5; print "OK";␤»
02:17 zengargoyle m: use 6.b; say "OK";
02:17 camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HKJ69Jclh2␤Undeclared routine:␤    use used at line 1␤␤»
02:17 zengargoyle m: use v6.b; say "OK";
02:17 camelia rakudo-moar 1ca52f: OUTPUT«OK␤»
02:17 zengargoyle that i think they shortened.
02:18 yary ok, that much makes sense (b vs Birthday)
02:19 zengargoyle m: need v6; say "OK";
02:19 camelia rakudo-moar 1ca52f: OUTPUT«OK␤»
02:19 zengargoyle m: need v6.0000; say "OK";
02:19 camelia rakudo-moar 1ca52f: OUTPUT«OK␤»
02:20 zengargoyle sorta think the 'use' may just be for Perl 5's sake.
02:20 yary m: need v6.0.0
02:20 camelia rakudo-moar 1ca52f: ( no output )
02:20 yary m: need v6.0.0; say 600
02:20 camelia rakudo-moar 1ca52f: OUTPUT«600␤»
02:21 dayangkun joined #perl6
02:21 zengargoyle like use is need+import or something like that.  the meaning has changed a bit.
02:22 zengargoyle not sure though. in the 'want this version' or other pragma way.
02:22 yary For all the code out there now that says "use v6", or even "need v6", do we expect future perl > 6.0000 to treat those as "need 6.000000"?
02:23 FROGGS_ joined #perl6
02:23 yary eg. will "use v6" mean "need 6.Christmas semantics?"
02:25 Hotkeys I think if you want that you would have to specify further and 'use v6' would just mean use perl 6 instead of perl 5
02:28 yary right... so I see a small issue... every module in the Rakudo * distribution says "use v6" and I don't think any say "need v6.0.0.0", though I only checked for "use" and not "need" & in September's distro
02:29 psch m: say v6 cmp v6.0.0; say v6 cmp v6.c
02:29 camelia rakudo-moar 1ca52f: OUTPUT«Same␤More␤»
02:29 zengargoyle looks like the 'v' leader is the important thing that makes it a <version>
02:29 psch m: say v6 cmp v6.0.0; say v6 cmp v6.1
02:29 camelia rakudo-moar 1ca52f: OUTPUT«Same␤Less␤»
02:29 psch huh
02:29 psch that's a tad spooky
02:30 psch v6 is later than v6.c
02:30 yary that makes sense
02:30 psch nah, i don't think so
02:30 yary letter means alpha
02:30 yary or beta etc release
02:30 yary any number in a version is higher than any letter
02:30 psch well, yes, that's the way i'd make sense of it, too
02:31 psch but it doesn't fit with v6.c[hristmas] being the first non-beta release
02:31 yary so v6 is same as v6.0.0.0.0 is same as v6.000000
02:31 yary and v6.zzzzz is a pre-release for v6.0000
02:31 psch or v6.b[irthday] being the first "public beta" release
02:31 Ben_Goldberg joined #perl6
02:31 psch (or announced beta, maybe)
02:31 zengargoyle # TODO: replace this by code that doesn't always die with a useless error message. :)
02:31 doublec_ joined #perl6
02:31 psch zengargoyle: well... volunteered..? :P
02:32 zengargoyle lol, i can't even make my POD thing work....
02:32 psch what's the hangup?
02:33 zengargoyle https://gist.github.com/18152f52ffce7fc03960
02:33 psch yary: to clarify, i agree that v6 > v6.c fits with general semver usage, but it feels a bit off to call 6.christmas an official release if we keep those semantics
02:34 yary ah yes... 6.Chirstmas is NOT an official releas
02:34 yary e
02:34 yary in my mind either
02:34 zengargoyle heh, planning on going through some Rakudo/NQP stuff i found from that 2day thing a while back.
02:34 yary I was confabulating it with v6.000
02:35 yary my worry, restated, is that Rakudo * is (was) shipping all modules saying "use v6" when they now probably ought to say "need v6.0", but then they can't say that now, because there IS no v6.0 yet!
02:35 Ben_Goldberg joined #perl6
02:36 zengargoyle psyc: basically i can get the data i need, but can't quite make the more complicated object that sits in front of it.
02:36 psch yary: it might just well be that 6.christmas is still more of an internal working title... i have to admit i kinda opted out of the discussion with version numbers and all
02:36 psch m: say v6 cmp v6.1
02:36 camelia rakudo-moar 1ca52f: OUTPUT«Less␤»
02:36 psch yary: but v6 is already less than v6.1
02:36 psch zengargoyle: well, did you add a 'class Pod::Data' to Pod.pm?
02:36 psch zengargoyle: at least that's where i'd put it
02:36 doublec joined #perl6
02:36 zengargoyle see that link i just pasted. :)
02:37 yary Think of when Perl v6.1 is released, and happy programmer loads it up, with some of today's modules that say "use v6"
02:37 psch zengargoyle: yeah, it says "i don't know how to put this into Pod.pm", i saw that
02:38 psch zengargoyle: but i don't understand why putting it in there doesn't work, fwiw
02:38 yary she may be unhappy if 6.1 changes some semantics, causing the old code to break, if v6.1 treats "use v6" as "use any Perl6" and not "need 6.0 semantivs"
02:38 psch yary: v6 already means v6.0.0 repeating
02:38 psch m: say v6 cmp v6.0.0.0.0.0.1
02:38 camelia rakudo-moar 1ca52f: OUTPUT«Less␤»
02:38 yary good then I'm happy.
02:39 psch zengargoyle: unless this isn't about "how do i declare a Pod::Data in CORE" but about "how do i instantiate it from nqp", which admittedly is a bit more finnicky
02:39 xpen joined #perl6
02:40 yary (other than the LTA error when you forget to put a "v" in front of a bare number)
02:40 yary p6: need 6
02:40 camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤    need used at line 1␤␤»
02:40 psch zengargoyle: but i'd suggest first declaring it in CORE (by putting it along the other Pod::-scoped classes) and trying to instantiate it work at runtime
02:40 dalek roast: b0cf420 | coke++ | S0 (4 files):
02:40 dalek roast: Generic fudge for jvm NPEs
02:40 dalek roast: review: https://github.com/perl6/roast/commit/b0cf420bce
02:40 psch s/work//
02:41 psch zengargoyle: i could probably give more useful hints with a branch to pull and try locally
02:42 zengargoyle yeah, i need to create a fancy Pod::Data and get it bound to $=data and i fear the whole of Pod::Data has to be nqp and manually creating storage and converting things to constants etc so it can serialize or whatever.
02:45 psch m: use "foo"
02:45 camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V5rygUhZ8o␤Undeclared routine:␤    use used at line 1␤␤»
02:45 zengargoyle it take the 'v' to make it use <version> vs use <module>
02:45 psch yary: can you create an RT ticket for that?
02:45 yary sure
02:45 psch yary: thanks
02:47 baest joined #perl6
02:48 psch zengargoyle: src/Perl6/Actions.pm:6885-6941 does something similar (albeit probably a bit less complex)
02:48 psch zengargoyle: as in, instantiate a Perl 6 level class in the Actions
02:48 zengargoyle hrm didn't quite try that, but it works from runtime... i.e. i can create a fancy Pod::Data from the list of blocks and it works.
02:48 doublec_ joined #perl6
02:49 psch zengargoyle: that's good, 'cause it means your Pod::Data class works already :)
02:51 psch zengargoyle: if i read your gist right the podtest.p6 works as written?
02:51 zengargoyle yes.
02:51 Util joined #perl6
02:51 zengargoyle the simple 'just hold the list of blocks' works.
02:52 psch oh, but AT-KEY and friends don't quite work?
02:52 zengargoyle i can create using ...  the built-in new/BUILD that all calsses have?
02:52 zengargoyle the BUILD and for loop with noting else doesn't even work.
02:54 zengargoyle it's like by that time @!blocks isn't a real array you can use.
02:54 psch ah
02:54 psch yeah, you might have to hllize that
02:54 psch i think we have a recursive helper in $*W for that
02:54 zengargoyle IIRC it complains about not having a .Numeric method which i'm guessing it it trying to figure out how long @!blocks it.
02:55 * zengargoyle typing poorly. :/
02:55 psch Perl6::World.p6ize_recursive
02:55 zengargoyle oh, sounds promising.
02:56 psch i think you want to make BUILD a submethod, though, 'cause it touches privates
02:56 psch (or maybe because it's in general good practice to have it a submethod...)
02:57 zengargoyle i think i tried both, i at least saw both ways used when i ack'd
02:58 zengargoyle i thought it was submethod if it was a subclass of something else that might have a BUILD.
02:58 psch m: class A { submethod foo { "foo" } }; class B is A { }; say B.foo
02:58 camelia rakudo-moar 1ca52f: OUTPUT«Method 'foo' not found for invocant of class 'B'␤  in block <unit> at /tmp/p5fdT_XVq9:1␤␤»
02:58 psch submethods don't get inherited, same as private attributes
02:58 psch so a method BUILD in your case would complain when invoked from a subclass
03:00 zengargoyle good to know.  not sure if subclassing Pod::anything makes much sense in runtime... maybe.
03:01 kaare_ joined #perl6
03:03 [Coke] IWBNI fudge skip didn't override the test name.
03:08 zengargoyle thanks for the pointing out things psch, i'll check that P6ize_recursive thing out tomorrow. it's time for me to wind down and get some z's.
03:16 Ben_Goldberg joined #perl6
03:20 zengargoyle joined #perl6
03:22 dalek roast: 493b724 | coke++ | S (5 files):
03:22 dalek roast: Generic fudge for jvm NPEs
03:22 dalek roast: review: https://github.com/perl6/roast/commit/493b72489a
03:26 noganex joined #perl6
03:46 vendethiel joined #perl6
03:49 BenGoldberg joined #perl6
03:52 ingy dj_goku_: pong. (privmsg me)
03:52 ugexe what does the :api<...> matcher on compunits determine?
04:04 geekosaur ugexe: per http://design.perl6.org/S11.html#Versioning now you know as much as I do (which isn't much...)
04:04 geekosaur seems to not be specified between identifying somehow an API variant
04:05 geekosaur and API dominates version
04:06 n0tjack joined #perl6
04:07 ugexe seems redundant with namespaces so i must not understand
04:07 lab joined #perl6
04:11 softmoth_ joined #perl6
04:13 n0tjack joined #perl6
04:14 mr-foobar joined #perl6
04:44 average joined #perl6
04:44 average not bad.. https://twit.tv/shows/triangulation/episodes/225
04:45 average you guys are doing ok with promotion
04:45 average p6 is all over the news pretty much everywhere
04:50 MadcapJake what are some common ways to run perl6 projects? I know of `perl6 foo.p6`, `perl6-debug-m foo.p6`, `perl6-gdb-m foo.p6`, `perl6-valgrind-m foo.p6`, and `prove -e perl6 -r t/` for running tests.  Are there other ways that you run/build/test your code?  Is there a way to specify an application's entry point? Is a `Build.pm` style workflow only for projects that utilize custom C code?
04:53 MadcapJake I am going to be adding support for shortcut-accessible build commands to language-perl6fe and I want to make sure I have all the common ways of running perl6 code available intelligently (via reading META.info or parsing the directories in some way)
04:55 aindilis joined #perl6
04:56 aindilis joined #perl6
05:07 mr-fooba_ joined #perl6
05:14 Actualeyes joined #perl6
05:21 grondilu MadcapJake: to specify the entry point, you can create a MAIN subroutine.
05:21 grondilu just like in C, actually.
05:23 grondilu as far as how to run P6 code, 'perl6 foo.p6' should be the prefered method but maybe you want to distinguish backends with perl6-m (MoarVM, perl6-j (JVM) and others.
05:25 raiph joined #perl6
05:59 softmoth_ joined #perl6
06:09 abaugher joined #perl6
06:23 TimToady joined #perl6
06:24 n0tjack joined #perl6
06:46 ugexe what does Build.pm style workflow mean?
06:51 ugexe nor can you simply alias commands to precompile a project, because you need logic to determine the build order
06:52 aborazmeh joined #perl6
06:52 aborazmeh joined #perl6
06:56 domidumont joined #perl6
07:00 sammers left #perl6
07:01 domidumont joined #perl6
07:02 adu joined #perl6
07:03 [Tux] Having previously installed Pod::Coverage, currently breaks most of my Ecosystem :(
07:03 [Tux] https://gist.github.com/Tux/dbb6c241a0df9fea2866
07:04 [Tux] can someone please teach panda the "uninstall" option?
07:08 FROGGS_ joined #perl6
07:12 n0tjack joined #perl6
07:20 [Tux] test             50000    21.045    20.931
07:20 [Tux] test-t           50000    18.351    18.237
07:20 [Tux] Inline::Perl5 won't install due to the Pod::Coverage issues
07:21 nine [Tux]: once I'm done with rakudo's curli branch an uninstall option should be easy to implement
07:21 [Tux] nine++
07:22 [Tux] (not that it would help for Inline::Perl5)
07:24 dalek roast: 5e1c8c7 | usev6++ | S (5 files):
07:24 dalek roast: Revert "Generic fudge for jvm NPEs"
07:24 dalek roast:
07:24 dalek roast: This reverts commit 493b72489a0e530d2be0755bc83bac14c2f15460.
07:24 dalek roast:
07:24 dalek roast: Tests are passing again after rakudo commit 5da0b3faed.
07:24 dalek roast: review: https://github.com/perl6/roast/commit/5e1c8c7e72
07:29 dalek roast: 4dcb14e | usev6++ | S0 (4 files):
07:29 dalek roast: Revert "Generic fudge for jvm NPEs"
07:29 dalek roast:
07:29 dalek roast: This reverts commit b0cf420bcee203a6172f0e6a9d78db223e721db9.
07:29 dalek roast:
07:29 dalek roast: Tests are passing again after rakudo commit 5da0b3faed.
07:29 dalek roast: review: https://github.com/perl6/roast/commit/4dcb14eece
07:34 TimToady joined #perl6
07:34 dalek roast: 0ced0cc | usev6++ | S02-types/sethash.t:
07:34 dalek roast: Revert "Fudge for the JVM so we can complete the test."
07:34 dalek roast:
07:34 dalek roast: This reverts commit ffda0cb01c58df1639b01e8a29d18a0772419f6c.
07:34 dalek roast:
07:34 dalek roast: Tests are passing again after rakudo commit 5da0b3faed.
07:34 dalek roast: review: https://github.com/perl6/roast/commit/0ced0ccf91
07:35 cgfbee joined #perl6
07:35 toax joined #perl6
07:38 dalek roast: 6b3843a | usev6++ | S02-types/mixhash.t:
07:38 dalek roast: Revert "Fudge for the JVM so we can complete the test."
07:38 dalek roast:
07:38 dalek roast: This reverts commit f20a1b2dd2c6580e50a46ced03a4ff2c6bba7f48.
07:38 dalek roast:
07:38 dalek roast: Tests are passing again after rakudo commit 5da0b3faed.
07:38 dalek roast: review: https://github.com/perl6/roast/commit/6b3843a121
07:42 masak morning, #perl6
07:42 [Tux] morning masak
07:45 dalek roast: 501b480 | usev6++ | S02-types/baghash.t:
07:45 dalek roast: Unfudge tests which gave a NPE on rakudo.jvm
07:45 dalek roast:
07:45 dalek roast: Tests were fudged with commit 701861312a, but are passing again after
07:45 dalek roast: rakudo commit 5da0b3faed.
07:45 dalek roast: review: https://github.com/perl6/roast/commit/501b480b98
07:46 bartolin sorry for the spam. basically, .sort was broken on JVM but works again now
07:46 bartolin [Coke]: ^^
07:46 moritz ... and we use sort a lot in the tests for comparing hashes / hash keys
07:47 bartolin yes, so there was quite a spectest fallout on rakudo.jvm
07:47 softmoth_ joined #perl6
07:48 dalek rakudo/nom: 87b10aa | TimToady++ | src/core/Grammar.pm:
07:48 dalek rakudo/nom: .parse should return Nil on failure, not Any
07:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/87b10aa1ba
07:51 dalek roast: 96ed583 | usev6++ | S03-metaops/hyper.t:
07:51 dalek roast: Revert "Fudge for the JVM so we can complete the test."
07:51 dalek roast:
07:51 dalek roast: This reverts commit bf1fd082488da8d81c3e1fe6c0389268efeb9a7c.
07:51 dalek roast:
07:51 dalek roast: Tests are passing again after rakudo commit 5da0b3faed.
07:51 dalek roast: review: https://github.com/perl6/roast/commit/96ed583809
07:51 [Tux] TimToady, would that fix the Pod::Coverage problem?
07:52 TimToady what problem is that?
07:52 * TimToady is still about 3 days behind on backlog...
07:54 [Tux] https://gist.github.com/Tux/dbb6c241a0df9fea2866
07:55 nine [Tux]: so it's actually a LibraryMake problem
07:55 TimToady I doubt it, in my case it finds the .parse but assigns the results to a temporary variable that defaults to Any, so loses the Nil
07:56 * [Tux] now trying if jvm will work with Text::CSV :)
07:56 RabidGravy joined #perl6
07:59 dalek roast: 385bfcc | usev6++ | S32-hash/adverbs.t:
07:59 dalek roast: Revert "Fudge for the JVM so we can complete the test."
07:59 dalek roast:
07:59 dalek roast: This reverts commit b0c517be4d369ca1aa76d9e703b30426a240740f.
07:59 dalek roast:
07:59 dalek roast: Tests no longer die with NPE after rakudo commit 5da0b3faed.
07:59 dalek roast: review: https://github.com/perl6/roast/commit/385bfcc1e8
07:59 zhmylove joined #perl6
08:01 bartolin well, that should be all reverts wrt .sort. I'm going to close the related three tickets
08:02 nine bartolin: \o/
08:02 [Tux] panda doesn't install on jvm
08:04 CIAvash joined #perl6
08:05 darutoko joined #perl6
08:16 eliasr joined #perl6
08:29 espadrine_ joined #perl6
08:30 dalek roast: f96a954 | usev6++ | S32- (2 files):
08:30 dalek roast: Fudge tests for JVM ('todo'), RT #126671
08:30 dalek roast: review: https://github.com/perl6/roast/commit/f96a9542d9
08:34 xpen joined #perl6
08:35 Praise joined #perl6
08:35 Praise joined #perl6
08:43 abraxxa joined #perl6
08:49 zakharyas joined #perl6
08:50 dalek perl6-bench: d2108c7 | timotimo++ | perl6/pi-sequential-iteration:
08:50 dalek perl6-bench: Intify commandline arguments once instead of every time
08:50 dalek perl6-bench:
08:50 dalek perl6-bench: this reduces run time of pi-sequential-iteration to about 45%
08:50 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/d2108c7db8
08:51 dalek roast: b192d2b | usev6++ | S05-match/capturing-contexts.t:
08:51 dalek roast: Tighten fudge for rakudo.jvm
08:51 dalek roast: review: https://github.com/perl6/roast/commit/b192d2b350
08:55 dalek perl6-bench: 81603c2 | timotimo++ | perl6/ (11 files):
08:55 dalek perl6-bench: just make sure all cmdline args get Intified if needed
08:55 dalek perl6-bench:
08:55 dalek perl6-bench: didn't measure any of this, but it's just a bit of extra
08:55 dalek perl6-bench: sanity in any case.
08:55 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/81603c2ef1
09:00 azawawi joined #perl6
09:00 azawawi hi
09:01 zhmylove joined #perl6
09:01 azawawi How do i force rakudo build to compile to 32-bit on a 64-bit machine?
09:01 kjs_ joined #perl6
09:02 timotimo hum. i should also have mentioned pod data block work in the weekly :\
09:02 xpen joined #perl6
09:02 rindolf joined #perl6
09:03 azawawi and can a 64-bit rakudo NativeCall load a 32-bit DLL or not?
09:03 xpen_ joined #perl6
09:11 dakkar joined #perl6
09:15 xpen joined #perl6
09:16 xpen__ joined #perl6
09:19 xpen_ joined #perl6
09:20 xpen__ joined #perl6
09:22 xpen joined #perl6
09:22 dalek roast: 5b1c98c | usev6++ | S05-modifier/counted (2 files):
09:22 dalek roast: Fudge some tests for JVM ('todo'), RT #125815
09:22 dalek roast: review: https://github.com/perl6/roast/commit/5b1c98c576
09:24 andreoss joined #perl6
09:24 xpen joined #perl6
09:29 dalek roast: 75f702c | usev6++ | S05-modifier/counted-match.t:
09:29 dalek roast: Fudge some tests for JVM, RT #124279
09:29 dalek roast: review: https://github.com/perl6/roast/commit/75f702c0eb
09:33 lab joined #perl6
09:36 softmoth_ joined #perl6
09:37 kjs_ joined #perl6
09:48 mrf o/ #perl6
09:53 xinming joined #perl6
10:01 bartolin currently .squish and friends return a Seq. what are the advantages over returning a List? one point is performance, probably?
10:01 bartolin the current behaviour could lead to surprises:
10:02 bartolin m: my $a = <a b>.squish; say $a.elems; say $a
10:02 camelia rakudo-moar 87b10a: OUTPUT«2␤This Seq has already been iterated, and its values consumed␤  in block <unit> at /tmp/nK8pFdEcvR:1␤␤»
10:03 bartolin also 'is-deeply' seems to be more picky on JVM:
10:03 bartolin r: use Test; is-deeply(<a b>.squish, <a b>)
10:03 camelia rakudo-moar 87b10a: OUTPUT«ok 1 - ␤»
10:03 camelia ..rakudo-jvm 87b10a: OUTPUT«Type check failed in binding @a; expected Positional but got Seq␤  in sub is-deeply at lib/Test.pm:422␤  in block <unit> at /tmp/tmpfile:1␤␤»
10:04 xpen_ joined #perl6
10:06 jnthn morning, #perl6
10:06 bartolin regarding the former example: is it bad practice to assign listy to a scalar like I did? the following works as expected:
10:06 bartolin m: my @a = <a b>.squish; say @a.elems; say @a
10:06 camelia rakudo-moar 87b10a: OUTPUT«2␤[a b]␤»
10:06 bartolin hi, jnthn :-)
10:06 jnthn bartolin: Almost everything that can produce results lazily returns a Seq
10:07 jnthn And yes, it's right that squish does.
10:07 jnthn A Seq is one-shot. If you assign it to a Scalar then it's presumed you are doing so because you want to build up a pipeline of things.
10:08 n0tjack joined #perl6
10:08 bartolin ah, yes. I didn't think about laziness.
10:08 jnthn Assigning to an array actually evaluates the Seq
10:08 jnthn And assigns it into the array eagerly
10:09 bartolin I see. thanks for explaining!
10:09 jnthn So yes, if you don't want to deal with laziness/pipelines, using assignment into @-sigil things is the normal practice.
10:10 bartolin I guess that will be a faq ... (I quickly looked at http://doc.perl6.org/language/faq but didn't find the answer there.)
10:11 JimmyZ we just need <<best practice of Perl 6>> book :P
10:12 jnthn The trouble with best practices is that they are always contextual, but people tend to take the practice and forget the context.
10:12 JimmyZ best practive with Context of Perl 6
10:14 RabidGravy I've never even read "Perl Best Practices"
10:14 jnthn Even that's not enough. :) The best practice if you're building a pipeline to process a bunch of data over time in constant memory is to *avoid* assigning into arrays as you go. :-)
10:14 jnthn 'cus that keeps memory around
10:15 JimmyZ hmm, maybe cookbookk
10:15 jnthn But if you're just writing normal everyday code slinging around a small number of items and doing some list operations, you probably want to just assign into arrays; you'll get better time efficiency, memory efficiency doesn't matter in this case, etc.
10:15 jnthn Yeah, cookbook style things don't have such issues.
10:21 JimmyZ well, me too. I 'd like read  cookbook instead of best practice
10:22 Upasaka joined #perl6
10:24 nine I've read Perl Best Practices and think the reasoning behind those pracitces is very sound. And because I know the reasoning, I also know when it's better to deviate.
10:25 RabidGravy right off to take the cat to the Kitty Hotel
10:25 RabidGravy have fun
10:28 pmurias joined #perl6
10:31 xpen joined #perl6
10:37 Woodi hi today :)
10:37 jnthn nine: Yes, the key thing being you paid attention to the reasoning. :)
10:41 Woodi you see, I have idea for cookbook book (true one - about real dishes) and put a tree-like graph of dishes - from simple to more complicated - based on ingradiens number. becouse dishes and ingradients forms some hierarchy, quite similiar to OO :)
10:41 Woodi maybe best practices can be tree-graphed too ? :)
10:50 Skarsnik joined #perl6
10:50 dalek doc: bb59c5a | (Steve Mynott)++ | doc/Language/faq.pod:
10:50 dalek doc: add reference to POSIX from ecosystem
10:50 dalek doc: review: https://github.com/perl6/doc/commit/bb59c5adfb
10:52 stmuk_ JimmyZ: there is a start of the cookbook under perl6-examples
11:04 znpy joined #perl6
11:04 dalek roast: fa09383 | jnthn++ | S06-signature/shape.t:
11:04 dalek roast: Tests for signature shape matching syntax.
11:04 dalek roast:
11:04 dalek roast: Check the declared shape against that required.
11:04 dalek roast: review: https://github.com/perl6/roast/commit/fa0938371b
11:10 pmurias jnthn: a significant part of the perl best practices book was style choices, where I think consistency and tool enforcement (which Perl::Critic does for Perl 5) is more important then the reasoning
11:14 dalek rakudo/nom: 536b388 | jnthn++ | src/Perl6/ (2 files):
11:14 dalek rakudo/nom: Implement @a[10] style matching in signatures.
11:14 dalek rakudo/nom:
11:14 dalek rakudo/nom: Matches against the declared shape of the array.
11:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/536b388ac2
11:14 dalek rakudo/nom: c9d0d2c | jnthn++ | t/spectest.data:
11:14 dalek rakudo/nom: Run S06-signature/shape.t.
11:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c9d0d2c2be
11:24 softmoth_ joined #perl6
11:28 cosimo joined #perl6
11:32 Zoffix joined #perl6
11:37 brrt joined #perl6
11:38 dalek rakudo/nom: cc628b5 | jnthn++ | src/core/Array.pm:
11:38 dalek rakudo/nom: Fix fixed dimension illegal operation throws.
11:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cc628b5e92
11:38 dalek rakudo/nom: fdd236c | jnthn++ | src/core/array_slice.pm:
11:38 dalek rakudo/nom: Remove bogus 'is rw'.
11:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fdd236cf07
11:44 zengargoyle good * #perl6
11:45 mr_ron joined #perl6
11:58 dalek roast: e1ef203 | jnthn++ | S09-multidim/ (4 files):
11:58 dalek roast: Tests covering multi-dim array support so far.
11:58 dalek roast: review: https://github.com/perl6/roast/commit/e1ef2035a8
11:58 Skarsnik Hello
11:59 dalek rakudo/nom: 61e5052 | jnthn++ | t/spectest.data:
11:59 dalek rakudo/nom: Run various new multi-dim array tests.
11:59 dalek rakudo/nom:
11:59 dalek rakudo/nom: Cover the support we've already had in Rakudo for a while.
11:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/61e5052885
12:01 jnthn lunch &
12:01 pmurias jnthn: should I add a nqp::isatty op? needed for fixing https://rt.perl.org/Public/​Bug/Display.html?id=123347
12:03 jnthn pmurias: That was my plan, yeah...though was going to add it after doing a bit more work on the MoarVM IO refactoring
12:05 pmurias I can just do it now, and then you will just replace the meat of the opcode (as it seem like it will be just a function call for now), or I can just skip it
12:06 pmurias (or I could just update it after the refactoring)
12:09 jnthn Go ahead, it'll be easy to change the function to do something else if needed
12:09 jnthn really lunch :) &
12:14 andreoss left #perl6
12:20 Actualeyes joined #perl6
12:30 Skarsnik Does some poeple has ideas for the bool issue on https://github.com/MoarVM/MoarVM/pull/294 ?
12:35 n0tjack joined #perl6
12:41 cygx joined #perl6
12:41 cygx Skarsnik: create a platform header for stdbool.h
12:41 cygx if __STDC_VERSION__ >= 199901L, just include stdbool.h
12:42 cygx define bool as char for old MSVC versions, bailout otherwise
12:42 rindolf joined #perl6
12:43 Skarsnik The issue if rakudo/moar is compiled on a system with no c99, it's dumb to prevent it from working just for one type potentially used only by nativecall binding
12:44 sufrostico joined #perl6
12:46 cygx Skarsnik: stdbool.h has been around since gcc 2.95 (and with proper C99 semantics since 3.0)
12:47 cygx you might tweak the header detection, but MSVC aside, I don't see that header missing as much of an issue
12:47 nine I hope that the language that's designed for the next 100 years is not held back by platforms that are still stuck in the previous century.
12:47 cygx (in practice)
12:50 Sqirrel joined #perl6
12:52 cygx I'd probably just got with checking _MSC_VER < X => typedef unsigned char bool, otherwise include <stdbool.h>
12:53 mr_ron joined #perl6
13:00 espadrine_ joined #perl6
13:00 telex joined #perl6
13:02 toax left #perl6
13:11 kaare_ joined #perl6
13:11 Skarsnik thx cygx for the comment, you explain thing better than me x)
13:12 softmoth_ joined #perl6
13:15 cygx Skarsnik: no problem
13:16 dalek roast: 3ff13fe | usev6++ | S32-list/ (4 files):
13:16 dalek roast: Fudge tests in S32-list for JVM
13:16 dalek roast: review: https://github.com/perl6/roast/commit/3ff13fefb1
13:18 domidumont joined #perl6
13:22 RabidGravy joined #perl6
13:23 Skarsnik and... time to track/correct this bug http://pastebin.com/FVagmG6T
13:31 espadrine_ joined #perl6
13:32 ZoffixW joined #perl6
13:32 ZoffixW I see a problem with our ecosystem design: http://fpaste.scsys.co.uk/501640
13:33 ZoffixW JSON::Faster was removed from the ecosystem, but I had it installed, so rakudobrew is trying to recompile it
13:33 ZoffixW And panda doesn't have an uninstall option :)
13:33 tadzik heh :)
13:33 tokuhiro_ joined #perl6
13:33 tadzik I guess that's panda's fault then
13:34 ZoffixW Hm. I guess whatever is doing this rebuild should just carry on if it finds a module that's no longer available.
13:34 timotimo damn.
13:34 ZoffixW like, ignore the issue and move on; not crash on it
13:35 jnthn Eventually, we should be installing immutable distributions.
13:36 timotimo so that something that has been installed before can just be re-installed from a store on the local machine?
13:36 jnthn And immutable implies "once released, always released"
13:36 jnthn No, the module source should ideally follow such immutability rules too
13:36 nine jnthn: that might have interesting interactions with panda install .
13:36 jnthn nine: That probably needs handling differently, yes...
13:38 jnthn What are the use caes for "panda install ."?
13:38 masak jnthn: http://irclog.perlgeek.de/p​erl6/2015-11-17#i_11554754 -- looks sane to me. +1
13:38 timotimo i use "panda install ." for development
13:38 tadzik same
13:38 timotimo what ufo used to do :P
13:38 jnthn masak: Well, but the way the discussion was heading is away from what you wanted in the ticket
13:38 jnthn masak: That is, .+ and .* are only about single dispatch
13:38 Skarsnik in some travis file?
13:39 RabidGravy yeah, so do I - if only test that the whole thing will work
13:39 ZoffixW Woo \o/ Updating moar from 0181385 to af3b12e made my custom op definitions test compile and run in 18 seconds vs 30 :D
13:39 * ZoffixW passes around a round of ++
13:39 timotimo whoa
13:39 jnthn Wow, what did we do? :P
13:39 timotimo i didn't know we improved anything about that?!
13:42 RabidGravy I actually use "panda install ." a lot: install a 3rd party normally because I want to use it for something, find it's broken for my purposes, fork it, fix it and install the fixed version to carry on with what I am doing
13:42 masak jnthn: I think... as long as #perl6 consensus and spec all agree, I'm fine with being "wrong" in this regard ;)
13:43 jnthn masak: OK. :)
13:43 masak jnthn: I would love it if .* and .+ were something that I actually found useful and predictable. :)
13:43 ZoffixW Or maybe I'm wrong: http://irclog.perlgeek.de/p​erl6/2015-11-17#i_11554519
13:43 jnthn I'll make sure we codify the current behavior in tests, and that it's as I actually think it is. :)
13:43 masak +1
13:43 RabidGravy the tools should probably distinguish between install from local copy and install from the interwebs though
13:44 jnthn *nod*
13:44 jnthn Agree it's a useful feature.
13:44 ZoffixW The new real is 0m14.152s, so slightly slower just for compilation, but I could've swore this test was taking 30s to run: https://github.com/zoffixznet/perl6​-Color/blob/master/t/06-operators.t
13:45 nine jnthn: I use panda install . for running S01 spectests on the development version of Inline::Perl5
13:46 nine jnthn: also same as RabidGravy. For example installing LibraryMake with a local patch to make it work with rakudo's curli branch ;)
13:47 ZoffixW Oh I see (/me looked through terminal's backlog). It was the entire test suite that ran in 30s. This particular test used to run in 18.35s and now runs in 18.55s
13:47 ZoffixW Sorry :}
13:47 jnthn nine: I guess given the version stays constant while developing, it could be a case of uninstalling the current version and installing the new one under the same ID...
13:48 jnthn nine: It's more that if installing published modules from a repository we should expect them to be immutable...
13:48 dalek roast: 30bac51 | jnthn++ | S09-multidim/decl.t:
13:48 dalek roast: Tests for multi-dim array declaration syntax.
13:48 dalek roast:
13:48 dalek roast: Not yet running/passing.
13:48 dalek roast: review: https://github.com/perl6/roast/commit/30bac513ec
13:49 dalek roast: b2f0f93 | usev6++ | S0 (2 files):
13:49 dalek roast: Fudge some more tests for JVM
13:49 dalek roast: review: https://github.com/perl6/roast/commit/b2f0f93f8f
13:49 ZoffixW But if it's any consolation, on my home box the test runs in just 3 seconds :P
13:53 Skarsnik hm should I repport a bug for:
13:53 Skarsnik (skardev)root@pinkpony:~/p6/rakudo# ./perl6-gdb-m plop.p6
13:53 Skarsnik blablabl then Reading symbols from /opt/bin/moar...(no debugging symbols found)...done.
13:53 timotimo what's the bug about that?
13:53 Skarsnik should it use the local bin/moar and not the installed one ?
13:54 nine jnthn: ok, I'll keep that in mind
13:54 timotimo it should not
13:54 jnthn It should use the one your Rakudo was built against
13:56 Skarsnik actually it's probably the same x)
13:57 timotimo perhaps the gdb script for -m could detect if moar has its jit active and put a little note about backtraces there (until we get that stuff fixed)
13:57 Skarsnik hm
13:57 Skarsnik that really weid actually
13:58 Skarsnik /opt/bin/moar --execname="$0" --libpath="/opt/share/nqp/lib" --libpath="." /root/p6/rakudo/perl6.moarvm -e '
13:58 Skarsnik why the two are mixed
13:58 timotimo and why do you run perl6 stuff as root?
13:59 Skarsnik well I use the one I installed system wide. I am too lazy to reclone/rebuild (and it's just a chroot)
14:00 timotimo doesn't root inside a chroot still have direct access to things in /dev, /sys and /proc if you bind-mount it?
14:01 timotimo i suppose just for a bit of development, you don't need all of that
14:03 Skarsnik it's more lazyness to reclone/build as an user
14:05 lab joined #perl6
14:05 Skarsnik It's also because my local install is 32bits and I have a bug only on a 64bits ~~
14:07 lab_ joined #perl6
14:07 pmurias joined #perl6
14:07 [Sno] joined #perl6
14:10 [Coke] bartolin: nice fix on the jvm stuff. thank you.
14:11 Upasaka joined #perl6
14:11 pippo joined #perl6
14:15 zengargoylew joined #perl6
14:15 [Coke] bartolin++
14:15 [Coke] I have to admit, I was a little concerned when I started seeing the reverts coming through. :)
14:17 psch r: role R { has @.s is rw }; multi trait_mod:<is>(Routine $r, :$x!) { $r does R; sub h(|){ for $r.s { &^m() } }; $r.wrap(&h) }; sub b is x {}; push &b.s, { say "OH HAI" }; b # slightly adapted from RT #112666
14:17 camelia rakudo-{moar,jvm} 61e505: OUTPUT«OH HAI␤»
14:18 psch changes are: signature for &h can't have |$, and the trait signature needs the Routine type for $r
14:18 psch but that's the one that didn't output anything in the ticket, except for those two changes
14:19 * psch adds that to the ticket
14:21 Skarsnik I need panda to have
14:21 Skarsnik oups
14:21 Skarsnik Debugger::UI::CommandLine
14:24 nine Skarsnik: you shouldn't need panda for anything ;)
14:25 timotimo yeah. if not panda, then you can use zef :)
14:25 nine Or a simple -I or PERL6LIB
14:25 timotimo fair enough
14:26 cygx or https://github.com/cygx/6make
14:26 Skarsnik I mean, (I rebuild a rakudo/moar with rakudobrew in user) when I try to use perl6-debug-m it tell me Could not find Debugger::UI::CommandLine in any of:
14:28 timotimo nine: i wonder if -I will actually be in the commandline early enough for everything to find it
14:29 khw joined #perl6
14:30 Skarsnik does adding printf directly in moar C source work? or it's redirected?
14:30 timotimo it gets output to stdout
14:31 timotimo i usually fprintf(stderr, ...)
14:32 nine fprintf(stderr, ...) works but feels kinda dirty. I mean, this is C! It should at least involve 3 macros
14:32 kjs_ joined #perl6
14:32 Skarsnik xD
14:33 timotimo put macros between you and the ickyness that is C
14:34 Skarsnik MOAR_DEBUG_I_WANT_MOAR(DEBUG_LEVEL_NOBODY_CARE, 3 /* optional pading because why not?*/, 1 /*do verbose stuff like cfile line*/, "%s\n", "Hello")
14:35 jnthn Less is moar... :P
14:35 Skarsnik seriously, I like working with gstreamer/glib api for C, it's not that bad
14:36 arnsholt Seriously though, that's one of the best parts of jnthn-code. It's very clean and no real nuisance parameters
14:40 nine Skarsnik: that's so much to type, can't you write a macro for that? ;)
14:41 xinming_ joined #perl6
14:43 skids joined #perl6
14:48 psch hm, does QASTCompilerMAST::BlockInfo give me a way of checking the name (if any) of the compiling block?
14:48 psch is that in the $qast it holds?
14:48 psch *$!qast
14:48 jnthn Yeah, I think that'll be a QAST::Block which has a .name property
14:48 xpen joined #perl6
14:51 timotimo arnsholt: what's the actual script you were using to test the performance of sha256? i'm working on implementing those big int bitwise ops for the jit now
14:53 * jnthn wonders why it's using Int and not int for that math
14:53 molaf joined #perl6
14:55 timotimo what, sha256?
14:58 jnthn aye
14:59 softmoth_ joined #perl6
15:00 arnsholt timotimo: http://heim.ifi.uio.no/arnskj/test.p6
15:00 timotimo aha! arnsholt can immediately answer that! :)
15:00 arnsholt Why the code uses Int? I have no idea
15:00 timotimo it only does the sha256 once?
15:01 arnsholt Yeah, initially that was enough
15:01 timotimo do things you work with fit into 64bits?
15:01 arnsholt Since it took like a second or two to compute the checksum =)
15:01 arnsholt The spec is defined in terms of int32
15:01 arnsholt Except the message which is bytes, obv.
15:02 timotimo 2.7 seconds to parse the script %)
15:02 timotimo 3 seconds to run the whole thing
15:02 timotimo so ... why is it that fast?
15:02 timotimo aren't we usually slow at things?
15:03 timotimo ok, running it a hundred times gives 18.3 seconds
15:03 bombless joined #perl6
15:04 ugexe Have any of the details of how hooks are to work been decided yet?
15:04 dalek ecosystem: f21a1f0 | (Kamil Kułaga)++ | META.list:
15:04 dalek ecosystem: add https://github.com/teodozjan/path6-coverage
15:04 dalek ecosystem:
15:04 dalek ecosystem: https://github.com/teodozjan/path6-coverage Checks whether package name equals with module path
15:04 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/f21a1f01b7
15:05 ugexe uh what
15:06 ugexe a package name doesnt and shouldnt have any path requirement on the side of module author
15:06 zhmylove joined #perl6
15:07 brrt timotimo: haven't you heard, we have a jit and dynamic optimization :-P
15:08 sufrostico Hi
15:09 sufrostico Can someone help me with this piece of code?
15:09 sufrostico http://pastebin.com/4suLcdm9
15:09 arnsholt timotimo: The main piece of overhead was postcircumfix:<[ ]>, TBH
15:09 arnsholt That and some metaops
15:09 sufrostico traying to work with start await and promises...
15:10 arnsholt Once that's done, it's basically just a pile of bitops, which I think we should be able to execute pretty quickly, even interpreted =)
15:10 ugexe also no one seems to have mentioned what the :api<...> matcher on compunits is for?
15:12 ugexe i hope the answers to these questions dont come out a week before release...
15:13 timotimo ugexe: things like qt3 vs qt4 vs qt5 or gtk2 vs gtk3
15:14 brrt sufrostico, it looks sane enough to me
15:14 kjs_ joined #perl6
15:14 jnthn ugexe: Anything that uncertain in detail at this point is hardly likely to make it into 6.c.
15:15 jnthn (wrt :api)
15:15 ugexe the api im not so worried about, but good to know what its for (although i still dont see why you wouldnt just use a ::AdditionalNamespace)
15:16 ugexe the hooks details would be nice though, as the details should be as basic as deciding what parameters to pass into the build/test/install/whatever hook scripts
15:16 sufrostico brrt: thanks... I'll stare at the code some more
15:16 PerlJam sufrostico: maybe if you showed more of your code, someone could spot something?
15:16 ugexe because Build.pm does not cut it
15:18 RabidGravy it approximately does and the hooks aren't implemented
15:18 isacloud joined #perl6
15:18 RabidGravy I would like to have better granularity about though
15:18 nine If your sha256 implementation does less than 100 MB/s there's room for optimization...
15:18 timotimo arnsholt: bit ops on big integers are still always compiled to function calls which do allocations, so they aren't cheap at all :P
15:19 timotimo arnsholt: but bitops on native integers are compiled down to the thing a naive C compiler would give you
15:19 arnsholt Aha. Maybe it gets speshed to non-bigint code?
15:19 timotimo arnsholt: so at least a 50x performance improvement i'm guessing
15:19 timotimo it does not
15:19 arnsholt I must admit I didn't get quite carried away to looking at the bytecode =)
15:19 timotimo when big ints fit into 32bit, they take a slightly faster code path, though
15:19 timotimo but it will still allocate
15:20 dalek rakudo/nom: cca5f27 | jnthn++ | src/Perl6/ (3 files):
15:20 dalek rakudo/nom: Refactor trait handling.
15:20 dalek rakudo/nom:
15:20 dalek rakudo/nom: Makes it easier to compile-time analyze a few traits that will need
15:20 dalek rakudo/nom: that, and also cleans up a good amount of code duplication, and error
15:20 dalek rakudo/nom: handling duplication.
15:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cca5f27060
15:20 arnsholt Oh, that's interesting
15:20 arnsholt Maybe there's another win to be had in there, then
15:21 timotimo no, _I ops only work on real objects, and they are immutable. so every step still allocates
15:22 Skarsnik Good I find what is wrong with what calculate the size of type for NC. but... I am not sure how to fix it ~~
15:22 RabidGravy it does seem that things which define and/or use custom traits are a little bit slower
15:22 RabidGravy in a hand wavey kind of way
15:23 sufrostico PerlJam: just added the sub that should be executed async : http://pastebin.com/bRMShEMg
15:23 timotimo arnsholt: i've been thinking about making spesh aware that a complete secondary code path could be built if we have an intuition things will stay the same size and such and then bail if things get too big
15:25 timotimo but that's far past christmas, i expect
15:26 PerlJam sufrostico: is there some reason you don't want to show the whole code?  It's okay if it's long, but it's better to give the most complete picture possible to those that would help.
15:27 timotimo arnsholt: so are you going to change your code to use int instead of Int? :)
15:28 ugexe Build.pm doesnt approximate hooks at all. it carries dependencies, isn't executed as a separate script, and only has 1 phase of execution
15:28 arnsholt timotimo: I gave it a whack, but couldn't find a permutation that gave a win. Probably missed a spot, somewhere
15:28 timotimo probably
15:29 timotimo could you put up your WIP in a branch or something?
15:29 arnsholt How do you generally debug (if you can call it that) something like this?
15:29 timotimo the spesh output would show you where _I ops are used and you can also see which versions of operators are used (like the int vs Int ones)
15:29 arnsholt arnsholt/libdigest-perl6 is the base of the PR I sent to grondilu++
15:30 arnsholt Don't have any other commits beyond that
15:30 timotimo ah, i hadn't even seen that it's someone else's code
15:30 arnsholt Right, so that's MVM_SPESH_LOG=foo right?
15:30 timotimo yeah
15:30 sufrostico PerlJam: http://pastebin.com/hHKp7TXd
15:31 timotimo i usually just search for the string "Finished " in that resulting file
15:31 sufrostico sorry, ugly code in spanish
15:31 timotimo or for the filename of the script i'm working on
15:33 arnsholt Right. Any useful tricks for figuring out which bits correspond to the inner loops and such?
15:33 Skarsnik Should I fill a bug on rt? or add an issue on moar? (or do both?)
15:33 arnsholt Not to mention: What am I looking for in the output, when it's _i vs. _I I'm looking for?
15:34 arnsholt Oh, the whole sub is seen as one, it looks like
15:36 [Coke] bartolin: need to add back in the "hang" parts of those commits.
15:36 [Coke] I should have done those separately, sorry.
15:36 [Coke] I'll get it if no one beats me to it.
15:36 [Coke] Reminder: compiler release tomorrow
15:37 [Coke] please insure the changelog is updated.
15:38 timotimo arnsholt: yeah, we do frame-wise speshing; those can include things inlined from other frames and they may non-include inner curlies if they weren't inlined by the static optimizer or the dynamic one
15:40 ugexe is the only advantage of :api<xxx> over just using the module namespace itself that you can do :api<3> but not ::3?
15:40 bartolin [Coke]: I think I run all test files I changed before pushing to roast and saw no hanging tests. I'll have some time to look at it later today.
15:40 arnsholt Oh, this is interesting: In "sub rotr(uint32 $n, uint32 $b) { $n +> $b +| $n +< (32 - $b) }" The bitshifts and subtraction get compiled to brshift_i, blshift and sub_i, but the binary or is looked up with getlexstatic and invoked
15:41 arnsholt Maybe because the return type isn't int32?
15:41 [Coke] bartolin: No worries, I can just refudge those tests.
15:41 [Coke] S03-operators/mix.t was one of them, I think
15:41 PerlJam sufrostico: I'd have to say that $position somehow gets a value that's beyond the bounds of the @positions array, but I don't see it right now
15:42 PerlJam sufrostico:  btw, I think it's neat that someone is using perl6 for "AI"  :)
15:44 arnsholt Oh, cool. libsvm!
15:44 rindolf joined #perl6
15:45 sufrostico PerlJam: i think it takes the value of 10 ... but i cant put an if to prevent it... the number appear from nowhere....
15:49 timotimo anyway, we'll be in a slightly better place with regards to bitwise operations being jitted on big integers
15:49 zengargoylew sufrostico:  start conveniencia($position, @(@positions[$position])
15:49 dalek roast: 7e9a101 | usev6++ | integration/advent2012-day10.t:
15:49 dalek roast: Change tests with 'like' to use description
15:49 dalek roast:
15:49 dalek roast: (the tests died with a NPE on JVM before, which is a known bug)
15:49 dalek roast: review: https://github.com/perl6/roast/commit/7e9a1013b9
15:49 zengargoylew sufrostico: for @promesas>>.result -> $position, $fitness {
15:50 zengargoylew not sure since it's missing a file, and i don't speak spanish.. :)
15:50 zengargoylew but runs to apparent completion
15:50 dbrock- joined #perl6
15:51 zengargoylew so you should probaby fail if that external shell call fails....
15:51 zengargoylew you're passing a $array to a function that takes a @array
15:52 timotimo arnsholt: with my local patch to moarvm sha256 gets jitted completely
15:52 arnsholt Oh, awesome!
15:52 zengargoylew and then you still need to get the .result from a promise after awaiting.
15:52 jnthn Also, do my @results = await @promises;
15:52 arnsholt timotimo: I'll just commitbit you on my fork of the repo and you can push directly
15:52 jnthn Rather than pulling .result out afterwards
15:52 domidumont1 joined #perl6
15:52 zengargoylew yeah, twhat jnthn said..
15:52 * japhb will be in Dublin, Stockholm, and New York City over the first two weeks of December ... anyone interested in meeting up?
15:53 arnsholt timotimo: Push away!
15:53 dalek modules.perl6.org/mojo-app: 958cb3e | (Zoffix Znet)++ | mojo-app/ (3 files):
15:53 dalek modules.perl6.org/mojo-app: Make /repo/ URLs redirect to dist's repo
15:53 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/958cb3e1e3
15:54 kjs_ joined #perl6
15:54 timotimo arnsholt: i could still implement isprime_I and coerce_nI
15:54 autarch anyone have any thoughts on this code ... https://github.com/autarch/perl6-Pod-NodeWalker - in particular, are these the right class & role names - also, is the code idiomatic?
15:54 timotimo meh. i'll leave it for later.
15:55 arnsholt The code is probably optimised well beyond the point of being a bottle neck at this point =)
15:55 dalek modules.perl6.org/mojo-app: 12cbb54 | (Zoffix Znet)++ | mojo-app/lib/ModulesPerl6/Controller/Root.pm:
15:55 dalek modules.perl6.org/mojo-app: Docs for repo
15:55 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/12cbb546b0
15:56 timotimo also, i'll run a full spectest first.
15:56 timotimo arnsholt: you've been improving this code because it gets used for iperl6?
15:56 arnsholt Yup
15:56 timotimo i don't have a local patch to libdigest, though
15:56 timotimo i think you misunderstood me :)
15:56 timotimo my patch is only to moar's jit
15:57 arnsholt Oooh, I see! =D
15:57 timotimo it'd still be amazing if you could turn all of libdigest's sha256 to native int arithmetic
15:57 dbrock- joined #perl6
15:57 timotimo were you able to improve +| in this case?
15:57 domidumont joined #perl6
15:57 arnsholt Looking further at the log I think it gets speshed after all
15:58 arnsholt But I'm honestly not entirely sure =)
15:58 timotimo hah
15:58 RabidGravy autarch, works for me :)
15:58 timotimo if you put it into a branch, i'll have a look myself
15:58 arnsholt The spesh log is a mite opaque =)
15:58 timotimo yeah, it's not that easy if you're just getting started with it
15:58 timotimo not only do i have experience looking at the speshlog, but i also know what all the opcodes do/are %)
15:58 Skarsnik is that clear enought? (I prefer asking, because I know I have issue expressing myself correctly x)) https://rt.perl.org/Ticket/Display.html?id=126675
15:59 arnsholt The opcodes are generally comprehensible, since I've worked on Snake and such
15:59 arnsholt But the rest of it is pretty incomprehensible
15:59 arnsholt But I guess what I want to be looking at is the stuff that comes after "finished specializing 'foo'"?
15:59 timotimo yeah
16:00 timotimo if you want you can gist that
16:00 psch hrm, QASTOperationsMAST builds the getlex call for &EXHAUST with outer = 2, which - according to the BlockInfo stack - should point at <unit>
16:00 arnsholt Actually: The sp_getspeshslot ops are pretty weird. What are spesh slots?
16:00 timotimo the thing is that the spesh log only really tells you what spesh has done. not what it hasn't done and not why it has done things
16:00 psch but the actual getlex bytecode that's generated needs to go only one step outwards to *find* <unit>
16:00 timotimo a spesh slot is a gc-tracked thing that hangs off of a spesh'd frame
16:01 CIAvash joined #perl6
16:01 xinming joined #perl6
16:01 jnthn arnsholt: Just an array of objects of STables that we can refer to efficiently, and that we discover/need in the specialized cdoe.
16:01 jnthn *code
16:01 jnthn arnsholt: Like if we need a type to serve as a guard clause, we tend to stash it in there
16:01 psch ...that shouldn't change though, should?  i mean the distance to <unit> of a given block
16:01 psch +it
16:01 RabidGravy the cod of moar
16:01 timotimo cool, spectest's clean
16:01 cygx Skarsnik: the pastebinlink in the RT ticket is broken
16:01 arnsholt Right, right
16:02 arnsholt Aha. The bitwise or gets inlined after spesh
16:02 timotimo arnsholt: we often stash methods/code objects we want to call in spesh slots, for example
16:02 timotimo ah. if it shows up as "an inlined thing" inside spesh, then it's not the static optimizer that does the inlining
16:02 Skarsnik cygx, oh yeah the ) take part of the ling ><
16:02 jnthn arnsholt: The spesh log is primarily a disassembly of the bytecode, broken up into basic blocks, with various annotations on it. And it's in SSA form, so all the registers have a version number in parens.
16:03 arnsholt Yeah, that's what I figured
16:03 timotimo i think "an inlined thing" shows as "inlined" at the top of a BB, but other than that the inlined things are at the far end of the spesh'd thing and get called from early and return to somewhere early
16:03 arnsholt It does. That's how I knew it was inlined =D
16:04 arnsholt Yeah, it said goto BB(8), so I figured looking at BB(8) would be an idea
16:04 dalek modules.perl6.org/mojo-app: 12a0932 | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
16:04 dalek modules.perl6.org/mojo-app: Cleanup SASS
16:04 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/12a0932baf
16:05 arnsholt So, the inlined +| does some boxing, it looks like. Presumably because the optimizer can't guarantee that the bitshifts won't cause an overflow into bigints or something?
16:06 timotimo no, we don't overflow from native ints to bigints
16:06 timotimo we require the user to explicitly use Int for that
16:06 timotimo from the very beginning
16:06 arnsholt Ah, right
16:06 jnthn Well, or not use types at all
16:06 timotimo but see above for future possibilities with extra code-gen
16:06 timotimo right
16:06 n0tjack joined #perl6
16:06 jnthn But yeah, opting into int is opting into native semantics
16:06 jnthn Is there a native candidate for +| ?
16:07 timotimo yes indeed
16:07 timotimo multi sub infix:<+|>(int $a, int $b) {
16:08 jnthn Wonder why the (static) optimizer doesn't find/inline that one
16:08 arnsholt The result for rotr is here: https://gist.github.com/arn​sholt/2701d2371693f6bbe46f
16:08 arnsholt The code is "sub rotr(uint32 $n, uint32 $b --> uint32) { $n +> $b +| $n +< (32 - $b) }"
16:09 timotimo jnthn: lexref, i bet :P
16:09 timotimo arnsholt: can you see if rotr uses getlexref_i somewhere near the call to +| ?
16:09 dalek rakudo/nom: 06729d9 | jnthn++ | src/ (2 files):
16:09 dalek rakudo/nom: Move handling of `of` on variables to compiler.
16:09 dalek rakudo/nom:
16:09 dalek rakudo/nom: This means that `my @a of int` works, as well as various other forms.
16:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/06729d91e6
16:09 MadcapJake Working on adding highlighting for `L<...>` and `C<...>` expressions in pods. Take a look: https://twitter.com/MadcapJa​ke/status/667009689863897088
16:10 arnsholt Nope
16:11 dalek roast: dc03e10 | jnthn++ | S09-typed-arrays/native-decl.t:
16:11 dalek roast: Tests for `my @a of int`, which now works.
16:11 dalek roast: review: https://github.com/perl6/roast/commit/dc03e1025d
16:11 dalek roast: 0a0690c | jnthn++ | S12-introspection/WHAT.t:
16:11 dalek roast: Fix now-passing `of Foo` tests on vars.
16:11 dalek roast: review: https://github.com/perl6/roast/commit/0a0690c18d
16:14 arnsholt timotimo: What do the "FH start/end" annotations refer to?
16:14 jnthn FrameHandler (exception handlers)
16:14 arnsholt Right
16:15 Skarsnik MadcapJake, it look neat
16:15 dalek modules.perl6.org/mojo-app: 3583f33 | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
16:15 dalek modules.perl6.org/mojo-app: Prevent multi-line wrap on dist name/logotype/GitHub icon on mobile
16:15 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/3583f33f0b
16:16 jnthn MadcapJake: I'm getting really tempted to try using Atom for a while to get this nice highlighting. :)
16:17 timotimo arnsholt: hell-bent on figuring this out by yourself rather than giving me a paste? :P
16:19 domidumont joined #perl6
16:19 gtodd joined #perl6
16:21 arnsholt timotimo: The spesh log exceprt for rotr is here: https://gist.github.com/arn​sholt/2701d2371693f6bbe46f
16:21 MadcapJake thanks Skarsnik, jnthn!  One big plus for me was that there's a great vim-mode plugin that brings all the keyboard awesomeness of vim to atom. Makes it pretty easy to switch!
16:21 arnsholt The code is "sub rotr(uint32 $n, uint32 $b --> uint32) { $n +> $b +| $n +< (32 - $b) }"
16:23 timotimo interesting. how is rotr called?
16:23 timotimo because rotr is compiled with a return_o
16:24 arnsholt Literal second arg, first arg is fetched from an array
16:24 zengargoylew jnthn: are the rakudo and nqp internals materials from a couple of years ago still a good place to start?
16:24 ilmari are perl6's shift operators UB-safe for shift >= type-width?
16:24 timotimo can you find the caller of rotr in the spesh log?
16:24 timotimo what is UB?
16:25 arnsholt The return value usually goes to a var, but once is assigned to an array
16:25 ilmari timotimo: undefined behaviour
16:25 timotimo oh
16:25 timotimo not sure. on Int there is no >= type-width
16:25 ilmari shifting by more than the width of the shiftee is explicitly undefined behaviour in the C standard
16:25 sufrostico PerlJam, zengargoylew : the problem of the out of bounds position solved by using a for instead of a loop
16:26 sufrostico :s
16:26 diakopter ^)^
16:26 arnsholt timotimo: The caller is the sha256 routine itself, so what am I looking for?
16:26 jnthn zengargoylew: Yes
16:27 ilmari GET_REG(cur_op, 0).i64 = GET_REG(cur_op, 2).i64 << GET_REG(cur_op, 4).i64;
16:27 timotimo arnsholt: good question. i'm not 100% sure what influences whether a frame gets a return_o or if return_i is possible
16:28 timotimo anyway, with the "almost everything is int instead of Int" stuff, does it improve performance noticably?
16:28 timotimo also, i don't have a good before-after measurement for all my patches today for the test script
16:28 black_ant joined #perl6
16:29 diakopter ilmari: looks like it uses C's << :P
16:29 ilmari diakopter: yes
16:30 AlexDaniel joined #perl6
16:30 arnsholt timotimo: It didn't help much when I tried yesterday, but then again that was just one call
16:30 arnsholt I can try several runs later
16:30 timotimo arnsholt: sadly, rotr doesn't get jitted because of how it handles its arguments :(
16:30 * ilmari builds moarvm with -fsanitize=undefined
16:30 timotimo param_rp_i isn't implemented in the jit
16:31 diakopter interesting
16:31 timotimo it would be great if rotr could be inlined
16:31 arnsholt What can I do to change the argument handling?
16:31 arnsholt \x?
16:31 timotimo i'm not up to snuff on argument handling
16:31 dalek modules.perl6.org/mojo-app: a74cc36 | (Zoffix Znet)++ | / (2 files):
16:31 dalek modules.perl6.org/mojo-app: Add missing prereqs into Build.PL
16:31 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/a74cc365c9
16:31 timotimo i'm not sure \x will work with native ints, actually. you can try it
16:32 arnsholt Yeah, broke the end result when I tried it last time =)
16:33 timotimo there's still postcircumfix:<[ ]> in my profile
16:33 timotimo i thought you turned these into .AT-POS?
16:33 timotimo they're not very expensive, thouhg
16:34 domidumont joined #perl6
16:34 timotimo ah, there's postcircumfix:<[ ]> further outwards
16:35 arnsholt Yeah, I skipped the ones outside the core loop
16:36 timotimo m: say "rotr runs with just { 215 / 235008 } ms per invocation"
16:36 camelia rakudo-moar 06729d: OUTPUT«rotr runs with just 0.0009149 ms per invocation␤»
16:36 timotimo that's not terribly bad anyway :)
16:36 arnsholt Yeah, those don't matter much
16:36 arnsholt Oh, different thing you said
16:36 arnsholt Yeah, that's pretty fast after all
16:36 timotimo m: say "infix:<(+)> runs with { 715 / 241536 } ms per invocation"
16:36 camelia rakudo-moar 06729d: OUTPUT«infix:<(+)> runs with 0.0029602 ms per invocation␤»
16:37 kyclark joined #perl6
16:37 timotimo STORE on the other hand ...
16:37 timotimo m: say "STORE runs with { 390 / 26112 } ms per invocation"
16:37 camelia rakudo-moar 06729d: OUTPUT«STORE runs with 0.014936 ms per invocation␤»
16:38 timotimo the little bits all add up, don't they ...
16:38 kyclark Can someone explain what's going on with the binding := in this? http://lpaste.net/145501
16:39 timotimo last time i checked, the REPL was very unhappy when binding was involved :(
16:40 timotimo so "known bug", i'd say
16:40 kyclark ah, OK, it runs as a script
16:40 kyclark Thanks.
16:41 jnthn Hm
16:41 jnthn It works locally
16:41 lichtkind joined #perl6
16:41 jnthn I remember fixing something along those lines some time back
16:41 dalek modules.perl6.org/mojo-app: 630afed | (Zoffix Znet)++ | TODO-IDEAS.md:
16:41 dalek modules.perl6.org/mojo-app: Add builder script cleanup to TODO Ideas
16:41 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/630afed0fd
16:43 timotimo kyclark: in that case, the question becomes "what's your rakudo version"
16:45 kyclark Ah, dang, now I can't remember how I installed it on this machine.
16:45 Skarsnik damn 'rakudobrew build moar' updating everything and reinstalling the modules is really nice :) ++ for who did that x)
16:45 timotimo heh
16:45 timotimo well, perl6 --version will tell you
16:45 diakopter shamebot
16:45 Skarsnik perl6 --version
16:46 kyclark [gila@~/work/rakudo]$ perl6 --version
16:46 kyclark Unhandled exception: Bytecode stream version too high
16:46 kyclark at src/vm/moar/ModuleLoader.nqp:51  (/usr/local/Cellar/rakudo-star/2015.03/la​nguages/nqp/lib/ModuleLoader.moarvm::87)
16:46 kyclark from src/vm/moar/ModuleLoader.nqp:41  (/usr/local/Cellar/rakudo-star/2015.03/languag​es/nqp/lib/ModuleLoader.moarvm:load_module:85)
16:46 kyclark from <unknown>:1  (/usr/local/Cellar/rakudo-star/2015.​03/languages/perl6/runtime/perl6.moa​rvm:<dependencies+deserialize>:39)
16:46 diakopter brewcry
16:46 timotimo wow, you have a zombie installation of rakudo there
16:46 timotimo or rather a frankenstein version
16:46 kyclark I may or may not know what I'm doing.
16:46 timotimo and 2015.03 is *really* old, you should probably throw that out of your Cellar there
16:47 kyclark Gladly.  What's the Best Way to install?
16:47 sufrostico PerlJam, zengargoylew : working code... http://pastebin.com/8zgE4Wpd many thanks...
16:47 timotimo rakudobrew is very good; find it on github.com/tadzik/rakudobrew
16:48 timotimo it's for installing rakudo inside your home directory and keeping it up to date
16:48 yqt joined #perl6
16:48 dalek modules.perl6.org/mojo-app: dad765b | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
16:48 dalek modules.perl6.org/mojo-app: Fix column sorter icons covering th text
16:48 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/dad765bf31
16:48 RabidGravy it will do that if you're in a abuild directoty of a different version than you have in your ppath
16:48 sufrostico PerlJam, zengargoylew: the problema was that i forgot that the passing of parameters is by reference... not by value
16:49 abaugher joined #perl6
16:50 timotimo arnsholt: my simplistic measurements tell me jitting these extra bitops was worth almost nothing at all :(
16:51 timotimo well, it's just turning that stuff into function calls, so not the best thing in the world anyway
16:51 psch hrm, .dump()ing the qast the block that EXHAUST is supposed to sit in give me "Cannot invoke this object"...
16:51 flussence timotimo: it all adds up :)
16:52 sprocket joined #perl6
16:53 zengargoylew sufrostico: cool
16:54 PerlJam sufrostico: so ... you're going to write about this perl 6 wolf hunt AI code somewhere, right?  :)  It would make an interesting Advent article, if you can muster it.
16:55 sufrostico PerlJam: Sounds nice.. I'll try
16:56 dalek modules.perl6.org/mojo-app: 79ebd83 | (Zoffix Znet)++ | README.md:
16:56 dalek modules.perl6.org/mojo-app: State browsers we support (same as on perl6.org)
16:56 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/79ebd83846
16:57 PerlJam sufrostico: if you want ton contribute to the advent calendar, give me an email and I'll send you an invite
16:57 PerlJam er, s/ton/to/
16:57 arnsholt timotimo: Oh, that's a shame
16:58 dalek modules.perl6.org/mojo-app: 6f5ae3e | (Zoffix Znet)++ | README.md:
16:58 dalek modules.perl6.org/mojo-app: Make links actually clickable
16:58 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/6f5ae3e2b1
16:59 aaaa joined #perl6
16:59 dalek perl6.org: 263a312 | (Zoffix Znet)++ | README.md:
16:59 dalek perl6.org: Reword browser support paragraph
16:59 dalek perl6.org:
16:59 dalek perl6.org: Contributors do not *have* to use those two specific testing sites. Make that more clear
16:59 dalek perl6.org: review: https://github.com/perl6/p​erl6.org/commit/263a312dfc
17:00 pmurias jnthn: I made a pull request for the istty_fh op, it adds an extract field to syncstreams but I think that's better than having two op_tables
17:01 jnthn pmurias: Will look a bit later; thanks.
17:02 MadcapJake this regex seems wrong: « q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/ ».  According to docs, heredocs *require* the `to` and not the other two options, so `q:q/END/` would be wrong, right? :P
17:03 jnthn Right
17:03 MadcapJake m: my $str = q:heredoc/END/ hello world END; say $str;
17:03 camelia rakudo-moar 06729d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ayYNtoDbbB␤Two terms in a row␤at /tmp/ayYNtoDbbB:1␤------> 3my $str = q:heredoc/END/7⏏5 hello world END; say $str;␤    expecting any of:␤        infix␤        infix stopper␤        postfix…»
17:03 jnthn But you can put other options either side of the to and heredoc
17:03 jnthn q:c:heredoc/END/ and q:heredoc:c/END/ are equivalent
17:04 MadcapJake so you *can* use `heredoc` instead of `to`?
17:05 PerlJam aye, it's slightly better documentation
17:05 TimToady most of the Q options have both a short and a long form
17:05 jnthn MadcapJake: yes
17:06 TimToady m: my $foo = 42; say Q:double [$foo]
17:06 camelia rakudo-moar 06729d: OUTPUT«42␤»
17:07 MadcapJake Anyone know what synopsis this is in? I want to capture all the possibilities.
17:07 MadcapJake found it, in S02
17:07 TimToady see S02:3799
17:08 hoelzro o/ #perl6
17:11 MadcapJake I think I just need to fully rewrite all this quoting constructs to one base begin of q|Q with internal rules for adverbs, shortforms, and delimiters.  It always begins with a q or a Q though right?
17:12 molaf_ joined #perl6
17:12 TimToady well, could start with qq, or any of those with a single extra option glued on
17:13 sprocket hello p6!
17:13 TimToady qqv or Qww
17:13 TimToady o/
17:13 b2gills TimToady: I think you broke the `[+] 1..10**10` optimization when splitting up &sum with https://github.com/rakudo/rakudo/commit/​eea43c3ff17fc36ee31d440c6ebf5e8d2bae370d
17:13 sprocket just wanted to say that i’m thoroughly enjoying grammars - those things make life a whole lot easier
17:13 b2gills m: say [+] 1..10**10
17:14 MadcapJake ok, I could go two routes with that.  1) Highlight the [qQ] separately and capture the abbreviated addition similarly to adverb forms.  2) I could start with a positive lookahead and then capture the whole abbreviated form as one internally
17:14 PerlJam sprocket: aye, there's lots of joy in Perl 6.  Somehow I think that was by design  :)
17:14 camelia rakudo-moar 06729d: OUTPUT«(timeout)»
17:14 TimToady b2gills: so it would seem
17:14 dalek rakudo/nom: 29cc3c2 | jnthn++ | src/ (3 files):
17:14 dalek rakudo/nom: First 80% of supporting `is SomeType` on vars.
17:14 dalek rakudo/nom:
17:14 dalek rakudo/nom: Works for my/state/has declarations, though we need a little more work
17:14 dalek rakudo/nom: to address not getting sufficiently fresh state (which also needs the
17:14 dalek rakudo/nom: same engineering that shaped array declarations need).
17:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29cc3c2b35
17:14 TimToady I wonder how it still passes the test?
17:15 lucasb joined #perl6
17:15 b2gills It calls the List one I suppose
17:15 jnthn my @a is buf8; @a[0] = 1; say @a # works after 29cc3c2 :)
17:16 MadcapJake so it would be like (green)[qQ](red)q|w|x|...(whi​te)<delimiter>(green)<string contents>(white)<delimiter>
17:16 PerlJam jnthn++
17:16 jnthn dinner, rest; prolly a little more hacking later to see if I can get it far enough to have the shape decls wired up :) &
17:18 pmurias hoelzro: \o
17:18 mr_ron left #perl6
17:19 hoelzro o/ pmurias
17:20 dalek modules.perl6.org/mojo-app: 9e7207d | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
17:20 dalek modules.perl6.org/mojo-app: [layout] Handle overly long dist names
17:20 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/9e7207d8d2
17:20 timotimo sweet, jnthn :)
17:20 TimToady b2gills: ah, the test is on the method, not the sub; good catch
17:21 pmurias hmm, jvm doesn't seem to implement support for tty checking :/
17:22 b2gills TimToady:  I just tried 「[+] 1..10**100」 and noticed it took significantly longer than 0 seconds
17:23 TimToady yes, unfortunately we have to go through the sub to get to the method, since metaops want to be defined in terms of a base function
17:24 b2gills I'm trying having both :(\SELF) and :(+SELF) right now
17:24 woodruffw joined #perl6
17:25 TimToady if that doesn't work, try \ and **
17:26 pmurias jnthn: on the JVM there seems to be only System.console which allows us to only check if both stdin and stdout are not redirected
17:27 dbrock- joined #perl6
17:27 b2gills The problem is :(**SELF) doesn't work, you have to use :(**@SELF) in that case
17:27 domidumont joined #perl6
17:28 b2gills Adding :(\SELF) back in does work ( I am not sure why though )
17:29 timotimo arnsholt: it seems like turning the jit off completely makes the whole thing only barely slower
17:30 Skarsnik Interesting I updated rakudo and my code that leaked, still leak, but slowier x)
17:31 TimToady parse phase seems rather slow again
17:32 dalek roast: fdd2f41 | usev6++ | S05-modifier/repetition (2 files):
17:32 dalek roast: Fudge some more tests failing with UnwindException
17:32 dalek roast: review: https://github.com/perl6/roast/commit/fdd2f41f84
17:33 TimToady b2gills: I have some tests for sum() now, and they pass with your fix
17:34 b2gills I'm working on a pull request
17:34 TimToady I could just check in what I have
17:34 moritz m: say [+] 0..^5
17:34 camelia rakudo-moar 29cc3c: OUTPUT«10␤»
17:34 moritz m: say [+] 0..4
17:34 camelia rakudo-moar 29cc3c: OUTPUT«10␤»
17:34 moritz m: say [+] 0..4.1
17:34 camelia rakudo-moar 29cc3c: OUTPUT«10␤»
17:34 moritz m: say [+] 0..^4.1
17:34 camelia rakudo-moar 29cc3c: OUTPUT«10␤»
17:34 TimToady moritz: yes, we test for all those :)
17:35 TimToady the trick being to recognize when the endpoint is already excluded, and don't do it twice
17:35 moritz m: say (-2)^..2
17:35 camelia rakudo-moar 29cc3c: OUTPUT«-2^..2␤»
17:35 moritz m: say [+] (-2)^..2
17:35 camelia rakudo-moar 29cc3c: OUTPUT«2␤»
17:36 moritz m: say [+] (-2.01)^..2
17:36 camelia rakudo-moar 29cc3c: OUTPUT«1.96␤»
17:36 domidumont joined #perl6
17:36 TimToady hmm
17:36 TimToady well, that doesn't use the range optimization
17:38 dalek roast: 8f09611 | TimToady++ | S03-operators/range-int.t:
17:38 dalek roast: test for sum() as well as .sum
17:38 dalek roast: review: https://github.com/perl6/roast/commit/8f09611253
17:39 dalek rakudo/nom: 73485c4 | TimToady++ | src/core/Any.pm:
17:39 dalek rakudo/nom: add \SELF case to sum(), from b2gills++
17:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/73485c4f7a
17:39 zengargoylew joined #perl6
17:40 pmurias jnthn: two options are to either raise an error or try to just return true only if both stdin and stdout are not redirected
17:45 ginkoms joined #perl6
17:55 dha joined #perl6
18:02 zengargoylew left #perl6
18:02 zengargoylew joined #perl6
18:05 dalek modules.perl6.org/mojo-app: 838227a | (Zoffix Znet)++ | / (90 files):
18:05 dalek modules.perl6.org/mojo-app: Merge mojo app and db-builder dirs
18:05 dalek modules.perl6.org/mojo-app:
18:05 dalek modules.perl6.org/mojo-app: Because turns out we can! This will also greatly simplify deployment
18:05 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/838227a32e
18:06 [Coke] bartolin: down to 432 jvm failures on a local run - about 10% of yesterday's numbers.
18:06 FROGGS joined #perl6
18:08 timotimo oh wow, 90% of the failures got fixed?
18:08 timotimo that's great!
18:09 [Coke] this is why we need clean test runs on a regular basis. :|
18:10 FROGGS o/
18:10 diana_olhovik joined #perl6
18:11 timotimo BBIAB
18:12 diana_olhovik joined #perl6
18:15 abaugher joined #perl6
18:20 Skarsnik I found my leak, it's in XML::Element::elements method (I think)
18:20 xfix joined #perl6
18:21 Skarsnik https://gist.github.com/Ska​rsnik/9d66920ad3f04362388e if someone want to try to figure why x)
18:30 spider-mario joined #perl6
18:30 timotimo does the xml library you're wrapping have some sort of memory management interface?
18:31 dha Hm. building rakudo from git repository and this test is failing: t/04-nativecall/13-union.t
18:31 dha Anyone seen that before?
18:32 timotimo on windows nativecall tests are known to fail, iirc
18:33 dha Huh. When I run the test by itself, it passes. Also this is OS X
18:33 timotimo ugh. hooray.
18:33 * dha tries make test again for fun.
18:34 dha Ok, so it passes when run by it self, but fails during a full make test. Someone should probably look into that. :-)
18:37 timotimo doesn't fail on my box :|
18:38 dha Hm. :-/
18:39 dha oh well, maybe I'll try to look at it again later.
18:48 [Coke] split(:all) seen at: gen/jvm/CORE.setting, line 9788
18:48 [Coke] Please use split(:v) instead.
18:50 modcure joined #perl6
18:51 modcure when will Perl 6 be production ready ?
18:51 nine modcure: couple of weeks
18:52 PerlJam modcure: It's production ready now for many tasks
18:52 nine PerlJam: just tried a new answer ;)
18:52 PerlJam nine: aye, I'm just back filling :)
18:53 PerlJam modcure: btw, what do you want to do with Perl 6?  What kinds of tasks are you likely to use it for?
18:53 Hotkeys Triple A twitch fps game engine design
18:54 modcure For the web(connect to database, display results)  and/or  shell scripts to parse files and connect to database...
18:55 flussence well if you define production ready to include things like "ord('€') returns the correct answer", I guess you don't use PHP :)
18:55 Juerd Style advice requested! "my Supply $foo .= new;" or "my $foo = Supply.new;"?
18:56 PerlJam flussence: now, now ... php has their own channel.
18:56 flussence yeah, just venting because I found that out last week trying something for someone...
18:56 PerlJam Juerd: style advice?  The first one gives $foo a type, the second essentially doesn't.   That may matter in the long run.
18:56 nine modcure: the language should be fine for that. However we still have a rather small module ecosystem, so you might need to steal from other languages.
18:56 modcure I currently use Perl/Mason for web development and Perl for shell scripts
18:57 flussence well then keep using those
18:57 Juerd PerlJam: So, given that for the current program it doesn't really matter at all, because $foo is never assigned a second time, what would be best?
18:57 pink_mist oh god no, don't use Mason
18:57 [Coke] the core language is pretty stable. After christmas, I'm sure a lot of work will go into improving the ecosystem.
18:57 PerlJam Juerd: I don't know about best, but I'd choose the latter in that case probably.
18:57 modcure pink_mist, love Mason :)  been using Perl/Mason for 13 years and never had any issues..
18:58 PerlJam modcure: ever used Dancer?
18:58 modcure thanks all. I will download Perl6 on my local system to start learning it. love to learn.
18:58 Juerd Or maybe even "my $foo := Supply.new;" :)
18:59 * flussence looks at the docs for Mason, not knowing what it is... heeeeey, this looks familiar.
19:00 Juerd In fact, I'm probably under-using := and should probably get used to it anyway.
19:00 Juerd := is neat.
19:00 PerlJam flussence: I boggle that people still use Mason much like I boggle that there is still Perl 4 code floating around our there.  But, if it ain't broke ...  :)
19:01 grondilu does a C-style loop(my $i = 0; i < $limit; $i++) automatically uses natives or should I be explicit?
19:01 Ulti modcure I've used Perl 6 "in production" for everything but web stuff
19:02 Ulti modcure: there are some nice looking web things around Plack at the moment though which I haven't tried
19:02 grondilu arnsholt: ^ was about https://github.com/grondilu/libdigest-perl6/co​mmit/f206389e0920774f0142257346affba1ded60f1d
19:02 mspo mojolicious is the way
19:02 Ulti not for Perl 6 it's not
19:03 mspo is there plack and mason for perl6?
19:03 Ulti (not sure who in their right mind would want mason) but there is plack now
19:03 flussence PerlJam: most of the web dev stuff I've done in p5 used Template-Toolkit. It got the job done, but it *really* got in the way of my OCD for pretty output :)
19:05 Ulti for web stuff: https://github.com/supernovus/perl6-web/ https://github.com/tokuhirom/p6-Crust https://github.com/tadzik/Bailador/ https://github.com/shoichikaji/Frinfon
19:06 MadcapJake woot, just built a rule for heredocs that actually works and still highlights the rest of the line normally!
19:06 * jnthn back
19:07 nine flussence: for web templates, I'm really sold on https://metacpan.org/pod/Petal
19:08 flussence that looks neat
19:08 modcure joined #perl6
19:08 dalek rakudo/curli: 31db551 | (Stefan Seifert)++ | src/core/CompUnit/ (2 files):
19:08 dalek rakudo/curli: Don't load outdated precomp files from Repository::FileSystem
19:08 dalek rakudo/curli:
19:08 dalek rakudo/curli: Always look for the source file and check its modified time stamp against the
19:08 dalek rakudo/curli: precomp file one's.
19:08 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/31db551348
19:08 nine That ^^^ was much easier than I expected.
19:09 [Coke] r: $_ = "a b"; ss/a b/w/ ; say "alive"
19:09 camelia rakudo-{moar,jvm} 73485c: OUTPUT«alive␤»
19:09 [Coke] ... local jvm gives:
19:09 [Coke] java.lang.RuntimeException: Cannot access a native attribute as a reference attribute
19:10 jnthn .tell pmurias I'd just go with our best guess rather than raising an error; it's probably more useful.
19:10 yoleaux jnthn: I'll pass your message to pmurias.
19:10 Hotkeys Is there anything that anyone is longing for in the ecosystem
19:11 [Coke] Hotkeys: https://github.com/perl6/perl6-most-wan​ted/blob/master/most-wanted/modules.md
19:11 dalek modules.perl6.org/mojo-app: 08c0e37 | (Zoffix Znet)++ | / (9 files):
19:11 dalek modules.perl6.org/mojo-app: Manage fallout from dir merge
19:11 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/08c0e3782a
19:12 ugexe the p6 equivilent of gofmt
19:12 bartolin [Coke]: I also get that exception locally ('Cannot access a native attribute ...')
19:12 jnthn nine: Does 31db551 handle transitive deps properly?
19:13 Ulti Hotkeys crypto I think is a big one
19:13 Ulti since you basically need it for doing anything serious on the web now
19:13 nine jnthn: no. I'm not sure how I can actually find out those in a FileSystem repository. The Installation repository at least has the depends information. Though that will not help for intra dist dependencies either...
19:14 * ugexe wonder if there should be a 'authoring-depends' or something similar so people can still test/build without needing modules to check the pod coverage
19:14 arnsholt grondilu: The C-style loop doesn't use natives by default I think. But changing it didn't make much difference in my (admittedly very simple) benchmark
19:14 arnsholt Also, there's a pointless change in my PR which I forgot to remove
19:15 jnthn nine: Well, I speculated a dependencies file for Installation for that
19:15 jnthn dependencies      # Pairs of short-name to short-name SHA-1s
19:16 nine jnthn: but where do we get that information from?
19:16 nine jnthn: that part may actually be easier for the FileSystem repo, since it can just record those dependencies while recursively precompiling
19:18 FROGGS can't we record this information on installation time?
19:18 nine FROGGS: recording is the easy part, but where does the information come from?
19:18 bartolin [Coke]: my latest spectest run on JVM gave 401 failing tests. shall we try to get it further down?
19:19 FROGGS nine: hmmm
19:19 bartolin [Coke]: the actual question seems to be: shall we keep the policy 'only fudge with RT number'?
19:19 jnthn nine: We'd collect/store them at module installation time for the installation one, again during the precompilation phase
19:19 PerlJam MadcapJake++
19:20 nine jnthn: aah...of course. To precompile we have to load the modules anyway. Difficulty is only in that we precompile in a different process.
19:21 MadcapJake It's nice but I can't seem to get it to capture nested heredocs :(
19:21 jnthn nine: Yeah. I've kinda pondered if the easiest way is to just add a --precompile mode
19:21 Juerd Is there a way to .decode with fallback characters when the given data is not well formed?
19:21 jnthn nine: And it spits out (to a file, or stdout, or something) such info
19:22 jnthn Juerd: Not yet; replacement chars for encode got done just a week or two ago by ilmari++.
19:22 Juerd Oh. Darn.
19:22 jnthn Juerd: What's your use case, ooc?
19:22 jnthn You can try :enc<utf8-c8>
19:22 nine jnthn: that means that I'll have to have a look at how precompilation actually works. Till now I could just re-use the code that already existed.
19:22 jnthn ;)
19:22 crucialrhyme joined #perl6
19:23 jnthn I'd be symaphetic if I wasn't currently refactoring the way variable declarations work :P
19:23 Juerd An MQTT stream. Most data will be UTF-8 encoded. Some will be malformed UTF-8, some will be iso8859-1, some will be binary :)
19:23 Juerd What's utf8-c8?
19:23 jnthn If it encounters something that's not valid UTF-8, it uses NFG synthetics to store the octets.
19:24 grondilu arnsholt: to improve performance I suspect using macros will help a lot.  Not sure they are ready now, though.
19:24 jnthn And if you encode it back to a bytestream it roundtrips them.
19:24 nine jnthn: variable declarations? Oh that's really a fringe feature. Perfectly suited for changing a couple of weeks before 1.0
19:24 Juerd Ah, great, that suffices for now.
19:24 jnthn (Provided you encode with utf-c8 again)
19:24 [Coke] bartolin: I prefer an RT, but am happy for now to have something like "rakudo.jvm skip '<one line exception message>'
19:24 * grondilu wonders if we shall have an 'inline' trait as in C
19:25 [Coke] (like I gave up and started doing with NPE)
19:25 Juerd https://github.com/Juerd/p​6-mqtt/blob/master/mqtt.p6  # Getting the hang of it.
19:26 jnthn nine: Yeah, I know. Real programmers don't use variables!
19:26 arnsholt Yeah, making the rotr and add mod32 operators macros might help a bit too
19:26 Juerd I really love supplies.
19:26 cygx joined #perl6
19:26 cygx FROGGS: https://github.com/rakudo/rakudo/pull/591 # makes v5 work again
19:27 nine jnthn: if we screw that up we can still go as purely functional language. Multi paradigm FTW!
19:27 jnthn ;)
19:27 [Coke] bartolin: https://gist.github.com/coke/dd7015735ce2de1a5ec9 - tests that are dying instead of just failing, with # of impacted tests.
19:28 [Coke] last 2 are the same error I just mentioned.
19:28 sprocket joined #perl6
19:29 grondilu arnsholt: I'll give it a shot
19:29 japhb Ulti, PerlJam, flussence: The guy who invented (Perl 5) Mason used to be my boss, around 15 years ago.  At the time, it was *awesome*.
19:30 dalek rakudo/nom: 70c7a23 | cygx++ | src/Perl6/Grammar.nqp:
19:30 dalek rakudo/nom: unbreak v5
19:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/70c7a23fb4
19:30 dalek rakudo/nom: 95172f4 | FROGGS++ | src/Perl6/Grammar.nqp:
19:30 dalek rakudo/nom: Merge pull request #591 from cygx/v5
19:30 dalek rakudo/nom:
19:30 dalek rakudo/nom: unbreak v5
19:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95172f4518
19:30 FROGGS cygx++ # that's awesome!
19:30 ugexe it might be worth comparing the modules loaded with the `provides` or actual .pm files, as some run time loaded modules may not get loaded/tracked during those phases. And such files would need their own dependencies resolved :(
19:31 cygx FROGGS: needs the v5 unrot branch, of course
19:31 bartolin [Coke]: yeah, I have a similiar list :-)
19:31 FROGGS cygx: how far advanced is it?
19:32 cygx FROGGS: advanced in what way? compared to v5 master?
19:33 cygx just replaces EnumMap -> Map, rw -> raw, etc
19:33 grondilu m: macro postfix:<mod32>($n) { return quasi { {{{$n}}} mod 2**32 } }; say (10**32 + 1)mod32
19:33 camelia rakudo-moar 73485c: OUTPUT«1␤»
19:33 grondilu arnsholt: ^seems to work
19:34 FROGGS cygx: I guess I'm asking if I should merge it now
19:35 nine jnthn: do you think it's realistic do do in-process precompilation?
19:36 grondilu m: macro postfix:<mod7>($n) { return quasi { {{{$n}}} mod 7 } }; say (7 + 1)mod7; macro infix:<m+>($a, $b) { return quasi { ({{{$a}}}+{{{$b}}})mod7 }; say 2 m+ 8
19:36 camelia rakudo-moar 73485c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UG7vcLm4rU␤Missing block␤at /tmp/UG7vcLm4rU:1␤------> 3 { ({{{$a}}}+{{{$b}}})mod7 }; say 2 m+ 87⏏5<EOL>␤    expecting any of:␤        postfix␤        statement end␤        statement modifier…»
19:36 cygx FROGGS: haven't really done any testing yet, but it's less broken than current master at least
19:36 grondilu m: macro postfix:<mod7>($n) { return quasi { {{{$n}}} mod 7 } }; say (7 + 1)mod7; macro infix:<m+>($a, $b) { return quasi { ({{{$a}}}+{{{$b}}})mod7 } }; say 2 m+ 8
19:36 camelia rakudo-moar 73485c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jB6BMyLcaS␤Unknown QAST node type QAST::Unquote␤at /tmp/jB6BMyLcaS:1␤»
19:36 FROGGS cygx: k, will merge
19:37 jnthn nine: In theory, in the future, yeah... Right now? I'd lean away from it.
19:37 Hotkeys grondilu: why not just do (7 + 1)%7
19:37 Hotkeys readability?
19:38 dalek roast: 88fa5d0 | usev6++ | S05-metasyntax/charset.t:
19:38 dalek roast: Fudge tests for ignorecase and character ranges for JVM
19:38 dalek roast: review: https://github.com/perl6/roast/commit/88fa5d0931
19:38 FROGGS cygx: done, thanks again :o)
19:39 arnsholt grondilu: Oh, neat!
19:39 cygx my pleasure
19:39 cygx with hindsight, it really was a simple fix
19:40 grondilu Hotkeys: yes I should not try to reuse a macro inside an other one
19:40 crucialrhyme does anyone have advice for how to make my code (specifically sub update_dict) less slow? it takes like 20 seconds to run on /usr/share/dict/words compared to ~1 for essentially the same thing written in python. is there a more idiomatic way that might be faster? http://pastebin.com/XsTEWtNr
19:40 dha joined #perl6
19:42 arnsholt grondilu: You're right about the unrolled stuff before the loop, BTW. But the AT-POS change is the most important one. It made a huge, huge difference
19:43 vendethiel joined #perl6
19:43 grondilu arnsholt: well that's LTA.
19:44 dalek nqp: 82b7eba | FROGGS++ | tools/build/MOAR_REVISION:
19:44 dalek nqp: bump moar rev for cstruct alignment fix
19:44 dalek nqp: review: https://github.com/perl6/nqp/commit/82b7ebaa4e
19:44 grondilu maybe postcircumfix:<[]> should be a macro (!?)
19:44 arnsholt Yeah, it's really ugly, but it killed a whole load of overhead
19:45 gfldex crucialrhyme: i would try to stick $tagged.chars into it's own variable
19:45 Hotkeys I was thinking this too ^
19:46 Hotkeys I wasn't sure though
19:46 japhb arnsholt: Where's the current version of your code?
19:47 ugexe would it be faster to my @t = $tagged.comb; and then iterate @t instead of calling .substr so much?
19:47 ab6tract joined #perl6
19:48 Juerd Does Perl 6 have quotemeta?
19:48 dalek rakudo/nom: deeec10 | FROGGS++ | t (2 files):
19:48 dalek rakudo/nom: add test for RT #126675, bump nqp
19:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/deeec10a2e
19:48 dalek roast: 0607677 | usev6++ | S15-unicode-information/uniname.t:
19:48 dalek roast: Fudge tests for 'uninames of Str' RT #126678
19:48 dalek roast: review: https://github.com/perl6/roast/commit/0607677ce0
19:49 nine Juerd: nope
19:49 Juerd Oh...
19:49 nine I really hope you don't actually need it
19:49 Juerd Well... There would be ways around it, but having it would have been much easier.
19:49 japhb Juerd: It's not needed for interpolation into regexen, if that is your fear.
19:50 nine What do you want to use it for?
19:50 dha Juerd - for what i was able to glean on quotemeta, see http://doc.perl6.org/langu​age/5to6-perlfunc#quoting
19:50 dha (possibly a bit out of date, but I don't think anything has changed in this particular area)
19:50 Juerd https://github.com/Juerd/Net-MQTT-Simple/b​lob/master/lib/Net/MQTT/Simple.pm#L35-L49
19:50 japhb Juerd: We force the programmer to explicitly say that they want to interpret interpolated regex metacharacters; by default they don't.
19:50 Juerd There I translate an MQTT filter into a Perl 5 regex
19:50 dbohdan Is anyone working on a PCRE-like library for Perl 6 grammars?
19:51 crucialrhyme ugexe: i like having strings as keys to the hash, and it seems like having to .join everything is even slower.
19:51 Juerd The easiest way to do this, is to first quotemeta everything, and then match the escaped things that may be special.
19:51 crucialrhyme gfldex: that shaved off about half a second
19:51 arnsholt japhb: The SHA code? grondilu++ merged it into the repo just a little while ago, so you can just get the main one
19:52 japhb Ah, I was just wanting a link to look at, since I'm curious how non-idiomatic it had to get to be fast.
19:52 Juerd I don't expect anyone to be able to read those regexes, though. If you can read them, the brain damage is probably irreversible :)
19:52 japhb Juerd: Given my comment above ... if you are creating a Perl *6* regex, you don't need to worry about the quotemeta stage.
19:53 japhb TimToady Fixed That.(tm)
19:53 Juerd japhb: I'm creating one programmatically...
19:53 Juerd Which opens a whole new can of worms perhaps.
19:53 cygx FROGGS: so, v5 fails precompilation and the sanity test, the latter probably still to more misplaced `is rw` annotations
19:53 cygx (my test case was just a basic `use v5; print $^O`)
19:53 dalek roast: 953aca0 | usev6++ | S06-signature/slurpy-params.t:
19:53 dalek roast: Fudge test for JVM, RT #126493
19:53 dalek roast: review: https://github.com/perl6/roast/commit/953aca0b62
19:54 japhb Only if you're planning to EVAL it.  If you're building it up using interpolation, the metacharacters *won't* be interpreted unless you specifically ask for it.
19:54 arnsholt japhb: Oh, right!
19:54 Juerd I'm probably going to use a completely different approach: instead of cherry picking the things that need changing, I'll actually *parse* the original filter string, and actually translate it. Much more work :(
19:54 Juerd My original approach was a hack, but an efficient one that took only a few lines of code.
19:54 cygx FROGGS: if you have better things to do, I'll see if I can do something about that by Christmas
19:54 Hotkeys is there a perl 6 style guide
19:54 arnsholt japhb: https://github.com/grondilu/libdigest-perl6/co​mmit/2dce53f4cd50ea5d3148cd5da3e93c282b638e5e is the commit
19:54 japhb arnsholt: Thanks!  :-)
19:54 gfldex crucialrhyme: did you try to change update_dict(Int %dict, Str $w) to update_dict(%dict, Str $w)? May skip a type check.
19:55 arnsholt The important stuff is the stuff inside the loop
19:55 FROGGS cygx: if you want to do that, sure, go ahead :o)
19:55 japhb arnsholt: I assume you mean the innermost one with the AT-POS usage.
19:55 Hotkeys and/or a wonderful list of idioms
19:55 FROGGS cygx: I want to spend the little time I have fixing RT tickets
19:56 * japhb wanders off to a meeting block ... BBL
19:56 crucialrhyme gfldex: just saved another 3s! but aren't type hints supposed to help the compiler optimize?
19:56 arnsholt Yeah, AT-POS and a couple of metaops I flattened out
19:56 nine crucialrhyme: a common misconception
19:57 gfldex crucialrhyme: nobody told the optimiser how to do that yet. And the inliner doesn't inline much. Resulting in the JIT not to jit much.
19:57 cygx FROGGS++ # getting rakudo ready
19:57 FROGGS crucialrhyme: this might be the case in future
19:58 gfldex crucialrhyme: besides, they ain't type hints. They are to-be-enfoced-type-checks.
19:58 timotimo crucialrhyme: if nobody told you yet, you can run perl6 --profile on your script and get a bit of helpful information; also, $i++ on a native int is many times slower than $i = $i + 1 so far, but that's just the first thing i see
19:59 Juerd Oh, uh, how does one generate a regex with code?
19:59 cygx .oO( EVAL! )
19:59 Juerd I got started by generating a string, but... I'd need quotemeta :)
20:00 gfldex Juerd: that might be a good use for macros.
20:00 Juerd Really?
20:03 crucialrhyme well, i learned something today! the profiler says that the two big problems are substr and the hash lookup.
20:03 moritz Juerd: sub quotemeta($_) { S/(\W)/\\$0/ } # or so :-)
20:04 Juerd moritz: Still though, how to interpolate a string *as a regex* in a regex? :)
20:04 ugexe wonder if late binding the hash key join would help your usage or not... something like `my @a = 1,2,3; my %x; my $y := @a[1,2].join; %x{$y}++`
20:04 Juerd I'm reading S05 but I can't find it
20:04 jnthn Juerd: <$str>
20:04 cygx is there a p6-equivalent of nqp::eqat?
20:04 Juerd Ah, the spec said "to interpolate a Regex object" :)
20:05 * Juerd tries
20:05 jnthn cygx: yes, but I can't remember what it's called :P
20:06 PerlJam isn't that index?
20:06 PerlJam or perhaps substr() plus the eq op
20:07 vendethiel- joined #perl6
20:07 cygx PerlJam: cf crucialrhyme's comment a few lines up of substr being a problem
20:07 PerlJam ah
20:09 dalek roast: a8fe0ec | usev6++ | S06-operator-overloading/sub.t:
20:09 dalek roast: Fudge test for JVM: TTIAR
20:09 dalek roast: review: https://github.com/perl6/roast/commit/a8fe0ecb5f
20:09 dha I think I wondered about this before, but got no input....
20:10 cygx jnthn: it's spelled substr-eq
20:10 dha in 5to6-nutshell, it says "The $ sigil is now always used with "item" variables (e.g. $name)..."
20:10 dha What is an "item" variable?
20:11 dha I don't  believe the term is used or defined anywhere else.
20:11 gfldex crucialrhyme: have a look at https://github.com/rakudo/rakudo​/blob/nom/src/core/Str.pm#L2068
20:12 gfldex crucialrhyme: you may be able to inline that by hand
20:14 cygx is a BagHash optimized compared to an ordinary Hash?
20:14 dalek roast: 6c2e1b4 | jnthn++ | S09-multidim/decl.t:
20:14 dalek roast: Fix a test thinko.
20:14 dalek roast: review: https://github.com/perl6/roast/commit/6c2e1b4c2c
20:15 dalek roast: e3df384 | jnthn++ | S02-types/is-type.t:
20:15 dalek roast: Some tests for `my $foo is SomeType`.
20:15 dalek roast: review: https://github.com/perl6/roast/commit/e3df3841f7
20:15 grondilu the macro seems not happy with «⊕=» construct
20:15 grondilu m: macro infix:<m+>($a, $b) { quasi { ({{{$a}}} + {{{$b}}}) % 7 } }; my @a = 1, 2; @a «[m+]=» (1, 1);
20:15 camelia rakudo-moar deeec1: OUTPUT«Type check failed in unquote evaluation; expected AST but got Int␤  in macro infix:<m+> at /tmp/MQyeZZUwyl:1␤  in block <unit> at /tmp/MQyeZZUwyl:1␤␤»
20:16 dalek roast: ce6b79c | usev6++ | S06-signature/sigilless.t:
20:16 dalek roast: Fudge test for JVM, only failing with harness
20:16 dalek roast: review: https://github.com/perl6/roast/commit/ce6b79c2ca
20:17 grondilu or simpler:
20:17 grondilu m: macro infix:<m+>($a, $b) { quasi { ({{{$a}}} + {{{$b}}}) % 7 } }; my $x = 5; $x [m+]= 4;
20:17 camelia rakudo-moar deeec1: OUTPUT«Type check failed in unquote evaluation; expected AST but got Int␤  in macro infix:<m+> at /tmp/tztpR7wVaA:1␤  in block <unit> at /tmp/tztpR7wVaA:1␤␤»
20:17 grondilu though I suspect that's just NYI
20:18 crucialrhyme gfldex: nope, i just made it slower, although admittedly maybe i did a bad job of using the nqp stuff
20:19 zhmylove joined #perl6
20:20 * flussence ran that trigrams script and the profiler said 96% JITted... seems awfully slow given that number.
20:23 diana_olhovik_ joined #perl6
20:24 crucialrhyme cygx: switching to a BagHash just shaved another 3s off
20:25 Juerd Just spent some time trying why the heck my code had all kinds of syntax errors. Turns out I used qw(...) where I should have used <...> :)
20:26 dalek modules.perl6.org/mojo-app: 3d9fb25 | (Zoffix Znet)++ | web/lib-db-builder/P6Project (2 files):
20:26 dalek modules.perl6.org/mojo-app: Toss SpriteMaker
20:26 dalek modules.perl6.org/mojo-app:
20:26 dalek modules.perl6.org/mojo-app: We can now use AssetPack Mojolicious plugin right in the app
20:26 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/3d9fb2581f
20:26 dalek rakudo/nom: 019bf1b | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
20:26 dalek rakudo/nom: Fix p6typecheckrv for r-j.
20:26 dalek rakudo/nom:
20:26 dalek rakudo/nom: Failure does not violate declared return types, so we can't throw a
20:26 dalek rakudo/nom: TypeCheck::Return when we get it. Fixes RT #126673.
20:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/019bf1b167
20:27 psch xmas tickets are too hard :l
20:27 jnthn Tell me about it... :P
20:28 psch although all those phasery bugs probably will have lots of fallout for r-j too
20:29 psch or well, change behavior at least...
20:29 bartolin psch++ (and of course jnthn++)
20:30 dalek modules.perl6.org/mojo-app: 34e103e | (Zoffix Znet)++ | web/morbo:
20:30 dalek modules.perl6.org/mojo-app: Tell Morbo to watch the db and conf
20:30 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/34e103eff7
20:33 dalek rakudo/nom: 0b228c9 | jnthn++ | src/Perl6/ (2 files):
20:33 dalek rakudo/nom: Support shapes on my decls; improve `is ContType`.
20:33 dalek rakudo/nom:
20:33 dalek rakudo/nom: Things like `my %h is BagHash` now properly gets a fresh BagHash
20:33 dalek rakudo/nom: each time.
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0b228c9a27
20:33 dalek rakudo/nom: d410e34 | jnthn++ | t/spectest.data:
20:33 dalek rakudo/nom: Run S02-types/is-type.t and S09-multidim/decl.t.
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d410e34510
20:34 jnthn $ perl6-m -e "my @a[2]; @a[3] = 42"
20:34 jnthn Index 3 for dimension 1 out of range (must be 0..1) in block <unit> at -e:1
20:34 jnthn \o/
20:34 abaugher joined #perl6
20:35 jnthn heh, that error has an off-by-one...
20:35 jnthn Oh no it doesn't
20:35 Juerd How do you call a non-exported sub? With "unit module foo; sub bar { ... }" I tried "foo::bar(...)" but that says "Could not find symbol"
20:35 jnthn My brane has an off-by-one
20:35 jnthn Juerd: You have to declare it "our sub bar ..." to make it available that way
20:36 Juerd Hmmm... Oh.
20:36 Juerd Thanks. Useful in this case, but I foresee issues with many kinds of quick hacks that I do :(
20:36 grondilu does this fixed-size arrays come with a performance gain?
20:36 grondilu *do these ... come*
20:38 jnthn grondilu: "It depends"
20:39 jnthn grondilu: And given I'm mostly caring about making them work at all right now, unlikely.
20:39 jnthn grondilu: In the longer run, yes, accessing a multi-dim array will work out faster than accessing nested ones.
20:39 Juerd How can I make a regex from a string, other than /<$foo>/? In unit tests, I need to be able to see the actual regex that was generated, as "expected: /<$regex>/" isn't very useful to me :)
20:41 grondilu m: my $str = "^foo"; say rx/$str/.perl;
20:41 camelia rakudo-moar 019bf1: OUTPUT«rx/$str/␤»
20:41 grondilu hum
20:41 grondilu m: my $str = "^foo"; say rx/<$str>/.perl;
20:41 camelia rakudo-moar 019bf1: OUTPUT«rx/<$str>/␤»
20:41 cygx crucialrhyme: https://gist.github.com/cygx/84b6245ac28213a8667f
20:41 Juerd I guess I could EVAL it... :)
20:42 Skarsnik timotimo, my test (with the leak) use the XML module, that is written in perl6
20:42 dha m: my $str = "^foo";say $str.perl;
20:42 camelia rakudo-moar 019bf1: OUTPUT«"^foo"␤»
20:42 eliasr joined #perl6
20:42 dha I'm not sure if it would apply to all cases, but can't you just look at the contents of $str in such  case?
20:43 gfldex crucialrhyme: that's what I got so far. Went from 14.6s to 7.6 . https://gist.github.com/gf​ldex/e8469ad25ee559e7c8ca
20:43 Juerd dha: What do you mean?
20:43 Juerd dha: I have a function that returns a generated regex
20:43 zengargoylew left #perl6
20:44 Skarsnik FROGGS, thx for the fix :) I also made a module to analyse nativecall cstruct if you are interested, that how I find out this issue with the size
20:44 dha I guess I'm not understanding what's actually needed here. Never mind.
20:45 gfldex m: my %h{str}; use nqp; my $s = 'icanhazword'; %h{nqp::unbox_s($s)} = 1; dd %h;
20:45 camelia rakudo-moar 019bf1: OUTPUT«Type check failed in binding key; expected str but got Str␤  in block <unit> at /tmp/6weEerseTm:1␤␤»
20:45 gfldex why does it got Str?
20:45 psch gfldex: probably because postcircumfix:<{ }> doesn't have a str candidate and thus autoboxes
20:46 jnthn gfldex: Native types won't work out too well with hash keys
20:46 jnthn We should probably whine about them until we can do them properly
20:46 psch (i'm guessing str might be missing a few things a hash key needs to be able to do, too)
20:46 * gfldex cries bitter tears
20:47 Peter_R joined #perl6
20:47 crucialrhyme gfldex cygx thanks! that is an improvement
20:47 gfldex is that LTA then and needs rakudobugging?
20:49 geraud joined #perl6
20:50 [Coke] hub.docker.com - rakudo-star has 48.8K pulls.
20:51 hoelzro \o/
20:51 ugexe rakudo has 665 stars...
20:54 johan joined #perl6
20:55 Skarsnik Is there some way track what the GC does? I try to find why this grow in memory for each loop : https://gist.github.com/Ska​rsnik/9d66920ad3f04362388e
20:56 dalek modules.perl6.org/mojo-app: 1dc95aa | (Zoffix Znet)++ | web/ (2 files):
20:56 dalek modules.perl6.org/mojo-app: Make building in an output dir actually work
20:56 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/1dc95aa118
20:58 Hotkeys Is there an easy way to unload modules or is that a messy thing to do
20:59 Hotkeys Looking for a good way to do a plugin system
20:59 dalek modules.perl6.org/mojo-app: b172de2 | (Zoffix Znet)++ | web/templates/layouts/default.html.ep:
20:59 dalek modules.perl6.org/mojo-app: Fix link to the build log
20:59 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/b172de239b
21:04 Skarsnik Hotkeys, hm tricky if the module export stuff I believe, or maybe when you reload them with requiere it get erased
21:06 PerlJam that's why we've got the need declarator, so that you can load without importing any symbols.
21:06 Hotkeys I'll have to look into need
21:06 dalek rakudo/curli: 7bbe2ef | (Stefan Seifert)++ | src/core/CompUnit/ (2 files):
21:06 dalek rakudo/curli: Record the transitive dependencies of modules precompiled by FileSystem
21:06 dalek rakudo/curli:
21:06 dalek rakudo/curli: Write the list of transitive dependencies to a "dependencies" file during
21:06 dalek rakudo/curli: precompilation in Repository::FileSystem. This can later be used to check the
21:06 dalek rakudo/curli: modification times of all transitive dependencies.
21:06 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/7bbe2efa7a
21:06 PerlJam S11 somewhere
21:08 Skarsnik a wild guess to have proper plugin, it's etheir forcing them to does a role that provide init and a delete that purge his own namespace (or do it for it)
21:10 dha Looks like C<need> could use some more extensive documentation.
21:12 jnthn use = need + import
21:12 jnthn (roughly :))
21:12 Juerd Yay, mqtt-filter-to-perl5-regex-translator succesfully translated to a mqtt-filter-to-perl6-regex-translator. All 560 tests pass :)
21:13 diakopter___ joined #perl6
21:14 jdv79 is london more expensive than nyc?  sure seems it but i've only been here a few hours.
21:15 dha jdv79 - have not compared lately. They probably go back and forth. :-)
21:15 jnthn jdv79: I've never been to nyc, so hard to say. I think it probably depends what part of London, though. And London is certainly more expensive than, say, Yorkshire. :)
21:15 Juerd (In case anyone cares, https://github.com/Juerd/p6​-mqtt/blob/master/regex.pm and https://github.com/Juerd/p6-​mqtt/blob/master/t/regex.t)
21:16 jdv79 i'm not sure where i am - near kings cross.  i'm gonna try to get oriented when its light out.
21:16 PerlJam jdv79: see if you can catch the train to hogwarts!  ;-P
21:19 MadcapJake With the way that Atom handles begin/end rules, I won't be able to support heredocs that aren't neatly nested (the last heredoc of a line will need to be the first to end).
21:20 Juerd The Perl 6 version is only 60x slower
21:21 * jnthn looks forward to haver 6.c, when he can stop doing missing features/fixing semantics all the time and do performance things. :)
21:21 jnthn *after
21:21 diakopter___ Juerd: that's within expectoration distance
21:21 Juerd diakopter___: Yes, I'm positively surprised. Expected much worse.
21:22 Juerd Especially since this is very, very heavy on regexes, and Perl 5 is known for its incredibly fast regexes.
21:24 PerlJam MadcapJake: that didn't make any sense to me unless you're just trying to say that you won't be able to support multiple heredocs in a single statement  (heredocs aren't "nested")
21:25 dalek roast: 34d8a07 | usev6++ | S (2 files):
21:25 dalek roast: Fudge tests for JVM, RT #126679
21:25 dalek roast: review: https://github.com/perl6/roast/commit/34d8a076bb
21:25 dalek roast: 24283a2 | usev6++ | S32-str/split.t:
21:25 dalek roast: Fudge more tests for JVM, RT #126679
21:25 dalek roast:
21:25 dalek roast: Fudging is imprecise in this case due to the use of subtests
21:25 dalek roast: review: https://github.com/perl6/roast/commit/24283a2ea2
21:25 * gfldex .oO( Perl 6 is faster then c)
21:25 Juerd gfldex: Huh?
21:25 TimToady but is it faster than c²?
21:26 gfldex well it will be some time after 6.c
21:27 * grondilu is not sure what 6.c means, guesses 6.christmas
21:28 grondilu (but finds the idea silly)
21:28 jnthn m: my @a[3;3]; @a[1;2] = 42; say @a[1;2]; @a[2,4] = 100;
21:28 camelia rakudo-moar d410e3: OUTPUT«42␤Partially dimensioned views of arrays not yet implemented. Sorry. ␤  in block <unit> at /tmp/2HVsx0MMvA:1␤␤»
21:28 MadcapJake PerlJam: they aren't nested and that's why it doesn't work :P If they were only allowed to be nested then Atom's grammar engine could handle it.  But heredocs can "overlap" which is impossible for me to capture
21:28 jnthn m: my @a[3;3]; @a[1;2] = 42; say @a[1;2]; @a[2;4] = 100;
21:28 camelia rakudo-moar d410e3: OUTPUT«42␤Index 4 for dimension 2 out of range (must be 0..2)␤  in block <unit> at /tmp/6fMcEMBXRF:1␤␤»
21:28 jnthn Yays :)
21:29 jnthn TimToady: Still got more to wire up and incorporate, but you can at least now declare and index multi-dim arrays :)
21:29 TimToady \ö/
21:30 PerlJam MadcapJake: does Atom have any way to match without consuming?  You could use that to mark the end/begin tokens if so
21:30 jnthn m: my %h is BagHash; say %h.WHAT
21:30 camelia rakudo-moar d410e3: OUTPUT«(BagHash)␤»
21:30 telex joined #perl6
21:30 jnthn This too, finally :)
21:31 Juerd Is there a way to force three values into a sub that expects 2 arguments? :P
21:31 Juerd Never mind that. It's a silly question.
21:32 dalek roast: b8191b7 | usev6++ | S15-literals/identifiers.t:
21:32 dalek roast: Fudge tests for JVM: Unicode literals
21:32 dalek roast: review: https://github.com/perl6/roast/commit/b8191b7287
21:32 Juerd I should probably rethink the way I'm passing things to this supply anyway.
21:32 Juerd Currently passing arrays, and unpacking them in the signature. But there's this third value that you're typically not interested in. :(
21:33 diakopter___ m: my %h does ::BagHasherific;
21:33 camelia rakudo-moar d410e3: OUTPUT«Unhandled exception: Method 'item' not found for invocant of class 'BagHasherific'␤   at <unknown>:1  (/home/camelia/rakudo-m-inst-2/share/perl6/runtime​/CORE.setting.moarvm:print_exception:4294967295)␤ from gen/moar/m-CORE.setting:19216  (/home/camelia…»
21:34 jnthn Juerd: Use *@ at the end of the unpacking subsignature to discard other things?
21:35 Juerd jnthn: The thing is, the signatures will be written by the user of the module. I don't want them to have to type anything for something that most users won't ever need
21:35 colomon joined #perl6
21:35 Juerd I'm exposing a Supply, they can tap.
21:36 Juerd There's no signature unpacking for hashes, is there?
21:36 diakopter___ m: my %h is Hash[Hash]; say %h.WHAT
21:36 camelia rakudo-moar d410e3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hT5iD0qa_q␤Can't use unknown trait 'is ' in a variable declaration.␤at /tmp/hT5iD0qa_q:1␤------> 3my %h is Hash[Hash]7⏏5; say %h.WHAT␤    expecting any of:␤        TypeObject␤        default…»
21:36 diakopter___ m: my %h is Hash of Hash; say %h.WHAT
21:36 camelia rakudo-moar d410e3: OUTPUT«(Hash[Hash])␤»
21:36 diakopter___ jnthn: is my %h is Hash[Hash] supposed to work
21:36 dalek roast: dbbab0e | usev6++ | S04-phasers/pre-post.t:
21:36 dalek roast: Change fudging for JVM to 'skip', RT #124961
21:36 dalek roast: review: https://github.com/perl6/roast/commit/dbbab0efae
21:37 diakopter___ m: my Hash[Hash] %h; say %h.WHAT
21:37 camelia rakudo-moar d410e3: OUTPUT«(Hash[Hash[Hash]])␤»
21:38 MadcapJake PerlJam: How do you mean?  I can't see a way around this: To initiate the capture of the subsequent lines of a heredoc, I need to enter a begin/end rule.  And thus a line like `say q:to/END1/, q:to/END2/;` will mean that I am now nested inside the END2 rule match and since my end rule is just `\3` (the 3rd capture of the begin rule), I can't access that within the nested pattern.
21:38 Juerd Or, is there a way to call a Supply's tap differently, based on its arity?
21:38 diakopter___ m: my ::Unicccc %h; say %h.WHAT
21:38 camelia rakudo-moar d410e3: OUTPUT«Method 'instantiate_generic' not found for invocant of class 'Hash[Unicccc]'␤  in block <unit> at /tmp/Qprvr7GDDV:1␤␤»
21:39 psch m: my %h = a => 1, b => 2; sub f( %h ( :$a, :$b ) ) { say $a }; f %h
21:39 camelia rakudo-moar d410e3: OUTPUT«1␤»
21:39 diakopter___ masak: I need your [WEIRD] (or at least [ANNOYING]) submitter
21:40 jnthn diakopter___: I don't think Hash[Hash] is parsing like you think.
21:40 jnthn It won't work, anyways.
21:40 jnthn is Hash of Hash is the right way
21:40 diakopter___ okie
21:40 luis joined #perl6
21:40 jnthn *sigh* Why is people's first instinct to feed random shit to the compiler...
21:41 diakopter___ only some people's
21:41 jnthn Indeed.
21:41 diakopter___ first instinct, and fourth instinct, and fifth...
21:42 jnthn Juerd: You can unpack hashes.
21:42 jnthn Juerd: As named params
21:42 jnthn Juerd: You could wrap the thing up before passing it to tap, if that helps. Maybe by subclassing Supply even :)
21:43 Juerd I can't find documentation on unpacking hashes.
21:43 Juerd What do you mean by wrapping up?
21:44 dalek modules.perl6.org/mojo-app: bf252f1 | (Zoffix Znet)++ | Build.PL:
21:44 dalek modules.perl6.org/mojo-app: Add IO::Socket::IP 0.37 to prereqs
21:44 dalek modules.perl6.org/mojo-app:
21:44 dalek modules.perl6.org/mojo-app: Versions earlier than 0.31 cause cryptic error messages down the food chain
21:44 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/bf252f1dd9
21:44 jnthn m: sub foo((:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2 }
21:44 camelia rakudo-moar d410e3: OUTPUT«1␤2␤»
21:44 Juerd Thanks :)
21:44 jnthn Juerd: Are you exposing things for the user of your module to .tap?
21:44 Juerd m: sub foo((:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 }
21:44 camelia rakudo-moar d410e3: OUTPUT«Unexpected named argument 'hoping-this-will-be-ignored' passed in sub-signature␤  in sub foo at /tmp/jn9WBq09yf:1␤  in block <unit> at /tmp/jn9WBq09yf:1␤␤»
21:44 Juerd Aw :)
21:45 dalek roast: ddbbc84 | usev6++ | S06-advanced/return.t:
21:45 jnthn Nah, that'd need a *% there
21:45 dalek roast: Fudge for JVM, RT #126673
21:45 dalek roast: review: https://github.com/perl6/roast/commit/ddbbc84e45
21:45 psch m: sub foo( %h (:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 }
21:45 camelia rakudo-moar d410e3: OUTPUT«Unexpected named argument 'hoping-this-will-be-ignored' passed in sub-signature of parameter %h␤  in sub foo at /tmp/S2NBVSkhLU:1␤  in block <unit> at /tmp/S2NBVSkhLU:1␤␤»
21:45 psch m: sub foo( *%h (:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 }
21:45 camelia rakudo-moar d410e3: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in sub foo at /tmp/t3cf3ODMC4:1␤  in block <unit> at /tmp/t3cf3ODMC4:1␤␤»
21:45 psch vOv
21:45 Juerd jnthn: I'm not sure if I understand your question. I'm exposing a supply, that the user can tap. The values I'm emitting are currently hashes with three keys: topic, message, retain. Retain is a boolean and usually not interesting.
21:45 * psch &
21:46 Juerd jnthn: Having ", *%" in code by users would be ugly.
21:47 Juerd I've now moved the ugliness to the hash, so  -> $topic, $message { say "$topic: $message" }  became  -> { say "{ .<topic> }: { .<message> }" }
21:47 Juerd That's doable :)
21:47 rurban joined #perl6
21:47 jnthn *nod*
21:47 Juerd They can unpack it if they want, but it's a lot of code and they can't just ignore 'retain' if they do.
21:48 Juerd For APIs with callbacks, it would be nice to have a way to force-feed more arguments :)
21:48 dalek roast: 35504df | usev6++ | S06-signature/type-capture.t:
21:48 dalek roast: Fudge for JVM, RT #126383
21:48 dalek roast: review: https://github.com/perl6/roast/commit/35504dfbf0
21:49 Juerd Especially if you want to introduce more arguments, but keep backwards compatibility with the previous version.
21:49 Juerd Perl 5 handles this nicely by not caring about almost anything.
21:49 zengargoyle TimToady: can i pick you brain about some POD questions?
21:52 dalek roast: 26e82b7 | usev6++ | S06-advanced/callframe.t:
21:52 dalek roast: Fudge for JVM, NPE for RT #77752
21:52 dalek roast: review: https://github.com/perl6/roast/commit/26e82b72fc
21:53 ZoffixW joined #perl6
21:55 dalek roast: e922c94 | usev6++ | S06-currying/misc.t:
21:55 dalek roast: Fudge for JVM: NPE in sub 'is-primed-call'
21:55 dalek roast: review: https://github.com/perl6/roast/commit/e922c94b94
21:55 dalek modules.perl6.org/mojo-app: 4d0dc28 | (Zoffix Znet)++ | web/build-project-list.pl:
21:55 dalek modules.perl6.org/mojo-app: We are already cleaning old logotypes before the build
21:55 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/4d0dc28b43
21:58 grondilu m: say 1_00;  # I was expecting a "malformed integer literal" here
21:58 camelia rakudo-moar d410e3: OUTPUT«100␤»
21:58 grondilu (as a warning at least)
21:58 ZoffixW grondilu, not sure about P6, but in P5, you can use _ in digits.. Makes stuff like 1_000_000_000 more readable.
21:59 grondilu ZoffixW: it's not the use of _ per se, it's the fact that it did not group by three digits
21:59 PerlJam yes, you can do the same in P6
21:59 PerlJam grondilu: neither P5 nor P6 care how you group them
22:00 grondilu ok
22:00 PerlJam though ...
22:00 PerlJam m: say 1__00
22:00 camelia rakudo-moar d410e3: OUTPUT«5===SORRY!5===␤Only isolated underscores are allowed inside numbers␤at /tmp/M1hL6oEDHX:1␤------> 3say 17⏏5__00␤Confused␤at /tmp/M1hL6oEDHX:1␤------> 3say 17⏏5__00␤␤»
22:01 PerlJam yep. both P5 and P6 complain when you place them next to each other
22:01 PerlJam m: say 1._00
22:01 camelia rakudo-moar d410e3: OUTPUT«Method '_00' not found for invocant of class 'Int'␤  in block <unit> at /tmp/W4YjDat02f:1␤␤»
22:02 PerlJam m: say 1_.00
22:02 camelia rakudo-moar d410e3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_K5bs17k7S␤Confused␤at /tmp/_K5bs17k7S:1␤------> 3say 17⏏5_.00␤»
22:02 PerlJam (also sane :)
22:02 zengargoyle not everybody groups by 3 digits
22:02 PerlJam especially if you're using octal or hex
22:03 jnthn 'night, #perl6
22:03 ZoffixW night
22:04 PerlJam g'night jnthn!  Sleep well!
22:04 bartolin [Coke]: I think I handled almost all of the dying tests on JVM (except S04-statements/with.t and S17-supply/watch-path.t -- the latter didn't die for me)
22:05 luis joined #perl6
22:06 bartolin [Coke]: that would make about 120 failing test left. but I'm heading to bed now ... o/
22:12 dalek modules.perl6.org/mojo-app: 8c915a7 | (Zoffix Znet)++ | web/lib/ModulesPerl6/Model/ (2 files):
22:12 dalek modules.perl6.org/mojo-app: Adjust path to db file relative to bin
22:12 dalek modules.perl6.org/mojo-app: review: https://github.com/perl6/modul​es.perl6.org/commit/8c915a7469
22:12 dalek rakudo/curli: 11efa61 | (Stefan Seifert)++ | src/core/CompUnit/ (3 files):
22:12 dalek rakudo/curli: Check transitive dependencies when loading a precomp file
22:12 dalek rakudo/curli:
22:12 dalek rakudo/curli: With this automatic precompilation in CompUnit::Repository::FileSystem should
22:12 dalek rakudo/curli: be safe for general usage.
22:12 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/11efa618b3
22:13 nine I just love how much faster Inline::Perl5's test suite runs with this ^^^ :)
22:13 Juerd What does "Cannot unbox a type object" mean? I don't know what unboxing is.
22:14 ZoffixW nine++
22:14 PerlJam nine: when does that get merged back into nom?  :)
22:15 Skarsnik Juerd, when did you get thise?
22:16 Juerd Skarsnik: await $object.connection, where the object "has IO::Socket::Async $.connection;"
22:16 nine PerlJam: I hope to finish this up within a week or so. Panda will need some adaptions, but nothing major.
22:16 diakopter___ nine: how much faster? [morbidly curious]
22:17 ZoffixW From the P5 grapevine, if anyone wants to kick up an idea: http://www.learning-perl.com/2015/11​/should-we-call-it-learning-perl-5/
22:18 Skarsnik ZoffixW, damn that a legit concern
22:19 ZoffixW *phew* modules.perl6.org/mojo-app finally builds correctly on my demo box \o/
22:20 fjk joined #perl6
22:20 PerlJam calling the next edition "Learning Perl 5" won't affect all of the already-printed versions, so there's bound to be some confusion at some point.  But I think they should call the next version "Learning Perl 5" to distinguish from "Learning Perl 6" that will eventually come out
22:20 nine diakopter___: 9 seconds vs. 32 since most of the time was spent compiling over and over again
22:21 dalek rakudo/curli: 45fd6a6 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm:
22:21 dalek rakudo/curli: Need to unlock the store if modification time check failed
22:21 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/45fd6a67a9
22:21 ZoffixW PerlJam, but the issue with that is the uninitiated will go with the "6 > 5" and pick up learning P6 without realizing it's a different language and not a newer version of P5
22:21 _sri_ it's not too late to change the name from Perl 6 to something else
22:22 _sri_ in fact, it can even be very valuable for marketing
22:22 dha _sri_ - I think that argument is pretty much dead at this point.
22:23 diakopter___ "buying the wrong book" is probably the tiniest of concerns, anyway
22:23 PerlJam ZoffixW: this is might be a good strategy for P6  ;>
22:24 Skarsnik Maybe put Learning camelia perl6 will make then think twice ?
22:24 ZoffixW PerlJam, but that strategy is also pissing off a whole bunch of P5 devs :) We want to make friends, not enemies
22:24 ZoffixW Renaming P6 won't solve much at this point.
22:25 pink_mist maybe if the P6 book was named 'Learning Rakudo Perl 6'
22:25 _sri_ that's one thing that really bugs me about the perl6 community, total disregard for the future of perl5
22:25 PerlJam Perl 6 might be de facto called Rakudo if enough people just start doing that (no matter what anyone else says/thinks/wants)
22:25 dha ZoffixW - I'm not sure I agree, but it appears to be a moot point.
22:25 diakopter___ ZoffixW: I'd challenge that claim; how do you know there are all these pissed-off P5 devs?
22:25 pink_mist and I agree with _sri_ here
22:26 dha _sri_ - Honestly, I think it's disagreement, rather than disregard. That said, that doesn't necessarily mean there isn't a problem.
22:26 Juerd Can anyone tell me what unboxing is?
22:26 ZoffixW Juerd, unpacking args? dunno
22:26 dha diakopter___ - oh, you just have to talk to them. They'll make it quite clear that they're pissed off. :-)
22:26 ZoffixW I saw that a few times, but forget what was causing it
22:26 PerlJam Juerd: boxing is putting a raw thingy into an object.  unboxing is taking the raw thingy out.
22:27 ZoffixW diakopter___, I'm a Perl 5 programmer who participates in the P5 community... I've had a lot of discussions with the P5 folks about the name thing :)
22:27 zengargoyle isn't it taking things out of the container
22:27 PerlJam (like the way I use those technical terms)
22:28 Juerd PerlJam: Okay, then I still don't understand what's going wrong in my code :(
22:28 pink_mist well the context was unboxing an object ... a type object in Juerd's case .. which doesn't have a "thingy" in it, so of course that fails
22:28 Juerd I'm doing $foo.bar, it doesn't feel like getting thingies out of objects.
22:28 zengargoyle a type object.  like an unset thing.
22:28 diakopter___ ZoffixW: okay, "the P5 community" is hardly representative of P5 devs. online fankids and convention circuit groupies aren't representative of anybody :-o
22:28 zengargoyle is $foo defined?
22:28 cygx joined #perl6
22:28 FROGGS Skarsnik: so you are Sylvain? where is that module ooc?
22:28 Juerd Oh, wrong line number. Sorry. I'm not sure what I'm doing.
22:29 cygx Juerd: 'cannot unbox a type object' is perl6 speak for NullPointerException :p
22:29 Skarsnik FROGGS, https://github.com/Skarsnik/nativecall-typediag (the doc sux for now)
22:30 ZoffixW diakopter___, eh? You have the lead developer of the most ++ed Perl 5 project discussing the issue of the name... you can't dismiss this as "hardly representative"
22:30 diakopter___ ZoffixW: ... except maybe [they might be representative of] people who make their living from [other people using] the language
22:31 Juerd Ah, apparently an argument I was passing wasn't initialized.
22:31 zengargoyle m: my Str $s; say $s.substr(0,1);
22:31 camelia rakudo-moar d410e3: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/buEu3Oju_h:1␤Cannot unbox a type object␤  in block <unit> at /tmp/buEu3Oju_h:1␤␤»
22:31 FROGGS Skarsnik: wow, nice :o)
22:31 zengargoyle m: my Str $s; $s.substr(0,1);
22:31 camelia rakudo-moar d410e3: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/yI0snqC75Y:1␤Cannot unbox a type object␤  in block <unit> at /tmp/yI0snqC75Y:1␤␤»
22:32 pink_mist Juerd: you can add :D to the variable declaration/signature to make sure it has to be defined =)
22:32 Juerd pink_mist: Yeah, maybe I should patch IO::Socket::Async to have that :)
22:32 FROGGS gnight
22:33 diakopter___ ZoffixW: yes, representative of "the community", of course, you're right.  I was thinking of P5 users, not P5 porters and maintainers of popular projects.  But I concede the point anyway, yes there are plenty of people worried about the name causing problems for their livelihood
22:33 pink_mist ZoffixW: Mojolicious is the most ++ed? 0_o
22:33 ZoffixW pink_mist, yup, higher even than perl itself :P
22:33 pink_mist cool :D
22:33 Juerd Are default values in "has" ignored if you have your own BUILD?
22:33 pink_mist Mojolicious++
22:34 Skarsnik hm, good question
22:34 PerlJam well, sri++ too :)
22:35 _sri_ \o/
22:35 hoelzro Juerd: only if there's a kwarg for that attribute, iirc
22:35 colomon joined #perl6
22:35 Juerd What's a kwarg?
22:35 hoelzro er, sorry
22:35 hoelzro named parameter
22:36 PerlJam .oO( beware the kwarg, it is mean and vicious )
22:36 pink_mist why 'kw'arg? 0_o
22:36 hoelzro m: class Person { has $.name = 'John'; has $.age = 21; }; say Person.new(:name<Rob>)
22:36 camelia rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => 21)␤»
22:36 pink_mist the 'k' stands for key I guess?
22:36 Juerd All of my default values are ignored :(
22:36 hoelzro Key Word ARGument
22:36 pink_mist ahh
22:36 hoelzro it's python slang
22:37 rurban joined #perl6
22:37 Juerd TBH, I'm not sure if I should do this in BUILD even. Maybe it goes in new. This is all new (or BUILD) to me.
22:37 Juerd Where does initialization for the object go?
22:37 hoelzro hehe
22:37 hoelzro BUILD, usually
22:37 Juerd It looks like you can't have custom initialization without doing *everything* yourself :|
22:38 hoelzro m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD(:$!name) {} }; say Person.new(:name<Rob>)
22:38 camelia rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => 21)␤»
22:38 hoelzro m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD(:$!name, :$!age) {} }; say Person.new(:name<Rob>)
22:38 camelia rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => Any)␤»
22:38 hoelzro Juerd: I'm guessing you're seeing something like ↑ ?
22:38 diakopter___ ZoffixW: on the other hand, would those same people also argue against (and worry about) "losing users/customers" from Perl 5 to Perl 6?
22:39 Juerd hoelzro: I don't get it. In my code, all variables result in "(Str)", "(Int)", when I &say them.
22:39 hoelzro Juerd: would you mind pasting some code on a pastebin and sending us a link?
22:39 Juerd Regardless of BUILD's signature.
22:40 Juerd https://gist.github.com/Juerd/61eebb42659886927eb1
22:40 Juerd Basically, $!server must be set by the user, $!port has a default.
22:41 ZoffixW diakopter___, not sure what you mean. The main issue all comes down to "6 > 5": people unfamiliar with historic reasons for the name of P6 will think it's the "new and improved" P5. Firefox 6 is more up-to-date and is meant to be better than Firefox 5. Same applies to all software... except for Perl.
22:41 Juerd But $!server isn't set to what I'm passing (my $m = Net::MQTT.new(server => 'test.mosquitto.org')), and $!port is just as empty.
22:41 hoelzro I'm not sure if has defaults happen before or after BUILD
22:41 hoelzro well, the named parameters passed to new are passed to BUILD
22:42 diakopter___ ZoffixW: but from a language design perspective, "more up-to-date" and "better" is exactly what is intended by Perl 6
22:42 ZoffixW diakopter___, and actually, there is a good reason for P6 folks to worry about that issue too, because there are people upset enough to make it their missing to diss P6, like this fella: https://twitter.com/zoffix​/status/666263831572647936 https://twitter.com/zoffix​/status/665282194827583492
22:42 ZoffixW diakopter___, but Perl 5 is still actively developed.
22:42 hoelzro if the default logic happens after BUILD, then $!server is Str because BUILD doesn't set it up via its signature
22:43 hoelzro m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD(:$!name) { say $!age } }; say Person.new(:name<Rob>)
22:43 camelia rakudo-moar d410e3: OUTPUT«(Any)␤Person.new(name => "Rob", age => Any)␤»
22:43 ZoffixW diakopter___, it's just as up-to-date and "better" than earlier P5 versions. It's just offers a different solution to problem-solving than the P6 build.
22:43 hoelzro m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD() { say $!age } }; say Person.new(:name<Rob>)
22:43 camelia rakudo-moar d410e3: OUTPUT«(Any)␤Person.new(name => "John", age => Any)␤»
22:43 diakopter___ ZoffixW: I was trying to emphasize "language design" in that comment
22:43 Juerd Right, but that would mean that I can't use any of the defaulting logic if I want other stuff to happen at initialization, using those defaults...
22:43 hoelzro hmm...that's interesting
22:43 hoelzro m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD() {  } }; say Person.new(:name<Rob>)
22:43 camelia rakudo-moar d410e3: OUTPUT«Person.new(name => "John", age => 21)␤»
22:43 Juerd I can only imagine that this is an extremely common use case.
22:43 Skarsnik lol ZoffixW your operator xD
22:44 ZoffixW :)
22:44 hoelzro it looks like referring to any attributes in BUILD circumvents their defaulting logic, which seems...odd.
22:44 ZoffixW And aannnyyyywaaaaay... looks like I'm finally done with the mojo-app branch
22:44 Juerd hoelzro: Agreed
22:44 grondilu arnsholt: seems to me that the sha256 code on RC is faster than the code on the Digest module.
22:44 ZoffixW moritz, I submitted the PR to merge the mojo-app branch for modules.perl6.org: https://github.com/perl6/modules.perl6.org/pull/26
22:44 Juerd I could just add the defaults to BUILD's signature, but it's so nice to have them all in one place :(
22:44 hoelzro Juerd: I think that's a rakudobug
22:45 ZoffixW hm
22:45 ZoffixW .tell moritz, I submitted the PR to merge the mojo-app branch for modules.perl6.org: https://github.com/perl6/modules.perl6.org/pull/26
22:45 yoleaux ZoffixW: What kind of a name is "moritz,"?!
22:45 ZoffixW .tell moritz I submitted the PR to merge the mojo-app branch for modules.perl6.org: https://github.com/perl6/modules.perl6.org/pull/26
22:45 yoleaux ZoffixW: I'll pass your message to moritz.
22:45 ZoffixW .botsnack # smart bot
22:45 yoleaux :D
22:45 ZoffixW .tell timotimo you mentioned you wanted to see a demo pre-merge of the mojo-app branch when it was done. It's here: http://perl6.xtatik.org/
22:45 yoleaux ZoffixW: I'll pass your message to timotimo.
22:45 Skarsnik ZoffixW, do you have some screenshot?
22:45 ZoffixW Skarsnik, of what?
22:46 Skarsnik Oh, you just linked a demo of mojo-app x)
22:46 ZoffixW :D
22:46 ZoffixW Time for beer an' commute home &
22:46 Juerd I'm resorting to having those defaults in BUILD's signature, for now.
22:47 arnsholt grondilu: Oh. In that case, maybe we'll just replace it with that =)
22:49 hoelzro filed as RT #126680
22:49 hoelzro Juerd: ↑
22:50 Juerd hoelzro: Nice, thanks!
22:50 pmurias joined #perl6
22:50 diakopter___ 007 confuses me
22:50 hoelzro I'll read up on the spec regarding defaults for has + BUILD, and maybe look into fixing that tonight
22:51 grondilu arnsholt: sorry, I was wrong.  There's something weird though.  I need to clarify.
22:53 pmurias diakopter___: P5 porters and maintainers of popular project are an important group of potential Perl 6 users
22:53 yoleaux 19:10Z <jnthn> pmurias: I'd just go with our best guess rather than raising an error; it's probably more useful.
22:54 grondilu I don't understand.  When I run $ time perl6 -e 'use Digest::SHA; say sha256 "foo";', it tells me it took 27s
22:55 grondilu but if I add say now - BEGIN now at the end, it tells me 0.55s
22:55 diakopter___ pmurias: of course, but that has nothing to do with my point, which I apparently failed to communicate
22:55 Skarsnik compile time
22:56 raiph joined #perl6
22:56 Skarsnik grondilu, time will give you time run + time to compile
22:57 grondilu but I thought using BEGIN would include compile time.
22:57 cygx in particular, it'll include the time to compile Digest::SHA
22:57 grondilu as in BEGIN happens at the beginning of compilation.
22:57 cygx you need to precompile the module to make it useable
22:57 grondilu oh I see
22:57 grondilu I had installed it with panda and I thought it precompiled it.
22:58 grondilu but I recently learnt that is not the case.
22:58 pmurias diakopter___: IMHO the way people *outside* the P5 community perceive the name should be more important when thinking about the name change
22:59 diakopter___ pmurias: I agree exactly, and that's very compatible with my point
23:00 timotimo psch: it may be a good idea to rename the "failure" parameter to p6typecheckrv to "nil"? because that's really what gets passed
23:00 yoleaux 22:45Z <ZoffixW> timotimo: you mentioned you wanted to see a demo pre-merge of the mojo-app branch when it was done. It's here: http://perl6.xtatik.org/
23:00 grondilu I'm pretty sure panda used to precompile modules.  Was there a regression or something?
23:01 Juerd Turning working code into a module was *hard*.
23:01 Juerd It'll get easier as I get used to the perl6isms :)
23:01 diakopter___ .tell ZoffixW that's neat (demo modules site); really well done
23:01 yoleaux diakopter___: I'll pass your message to ZoffixW.
23:02 Juerd https://github.com/Juerd/p6-mqtt/  # But... I can now haz module!
23:02 Juerd Next time I'll try to get all p5/Net::MQTT::Simple functionality in there, and write some documentation.
23:02 cygx grondilu: I believe it was a deliberate decision to remove precomp from panda as rakudo is supposed to handle it automatically
23:02 Juerd (Forgot to git push. Done now.)
23:02 pmurias diakopter___: OTOH calling authors of popular frameworks "convention groupies" seem really silly
23:03 diakopter___ but I wasn't doing that /o\
23:06 pmurias isn't the Perl 5/6 rename discussion a bit pointless as it's TimToady's decision and he doesn't want a rename
23:06 Juerd pmurias: The discussion is pointless but one can still hope he'll change his mind :)
23:07 Juerd Preferrably before Christmas :P
23:10 TEttinger pmurias: call it perlin, then any search for perlin noise finds not only 2 very different algos but also a language!
23:11 MadcapJake My opinion on the name (I have never programmed Perl 5), it cues you in that this is a sigil-language in the same vein as Perl 5 but just like Python2/3, they aren't interchangeable (obviously more of a difference than Python but still I'd say that's a fair analogy).  From a philosophical perspective, Perl 6 was designed/intended to be Perl 5 without all the cowtows to popular opinion, instead replaced by good design.  That's the
23:11 MadcapJake epitome of a version change, *not* a new name.  ( to me xD )
23:11 TEttinger yeah, it still seems to be very much "a" perl, just a different newer version
23:12 pink_mist MadcapJake: the simple version change made sense back when it was meant to just be the next iteration of the same language. it really isn't that anymore. it's not even close to the python2/3 situation
23:12 MadcapJake right, maybe they should've gone with Perl 7, just to be clear it's really different xD  a la Windows 8 -> Windows 10
23:12 TEttinger like you have scheme and common lisp both describable as "a" lisp, even though they don't interoperate and are very different
23:13 Juerd TEttinger: Scheme and Common Lisp don't share a same version numbering.
23:13 TEttinger true
23:13 TEttinger rename perl 5 then :P
23:13 Juerd Renaming something that's already released is kind of hard
23:13 TEttinger I was joking
23:14 Juerd Renaming Perl 6 now is also hard, but still possible.
23:14 * Juerd votes for Rakudo :)
23:14 TEttinger yeah, makes sense
23:14 MadcapJake TEttinger: haha!
23:14 pmurias in terms of design Perl 6 is the sequel to Perl 5, it's the lack of compatiblity with the existing code/ecosystem that's creating the "sister language" story
23:15 Juerd It wouldn't surprise me, though, if p5p at some point after Perl6's release, decides to rename perl5.
23:15 TEttinger "we don't want to associate with _that_ perl"
23:15 TEttinger I don't think there's any of that though, haha
23:16 MadcapJake it's funny because if a windows user installed Windows 11 (when it comes out), they wouldn't want it to be an incremental iteration on Windows 10,  they expect a big change.  but programmers, apparently they expect single number increments to just be tiny iterations that solidifies the previous design... xD
23:16 pmurias if Perl was a computer game, the Perl 5/6 naming wouldn't be confusing
23:17 MadcapJake pmurias: haha, yeah that's what i was thinking with the windows analogy, this just seems to be an issue because...programmers xD
23:18 cygx personally, I'd rather just improve p5/p6 interoperability and provide a single interpreter frontend
23:19 TEttinger pmurias: that's a good example. popular games even, like grand theft auto 2 and 3 were totally different genres
23:20 Juerd TEttinger: Those numbers aren't taken for version numbers, though
23:20 Juerd The problem may not be that Perl 6 is not Perl 5, but that 1..5 were the same thing.
23:20 TEttinger they were less than 10 years apart too :)
23:20 Ulti maybe change P6 to be called Lerp the drooling sister language to Perl
23:21 Juerd Perl 5 and Perl 6 are much less than 10 years apart. In fact, at some points in the future, Perl 5 will be newer than Perl 6.
23:21 Ulti not by implementation
23:21 diakopter___ not from a language design perspective
23:21 TEttinger Juerd: hm, when did perl 5 first come out?
23:21 Juerd TEttinger: Is that at all relevant?
23:21 MadcapJake but is the 6 really a version number? Even if you consider it semantic versioning then the 6 would literally mean "breaks compatibility with 5".
23:21 TEttinger no really, I don't know
23:22 Juerd diakopter___: The thing is, users and sysadmins deal with the executable, the actual product, all the time, not with the language design.
23:22 Ulti 1993
23:22 TEttinger thank you, Ulti
23:22 Juerd diakopter___: I understand that it's a second design. Or perhaps a first ;). But Perl 1..5 weren't 5 different language designs.
23:22 Ulti well TimToady started dreaming of it then?
23:22 lichtkind masak: jejki
23:22 Juerd TEttinger: perldoc perlhist
23:23 dha I blame Jon Orwant.
23:23 TEttinger you could call it perl 28 and assume that much version shift
23:23 Juerd TEttinger: I'd prefer 28 to 6.
23:23 pink_mist Ulti: as I mentioned a while ago: back when he first started thinking about perl 6, naming it perl 6 was a no-brainer. now it's way too different imo. it should get a completely new name.
23:23 Juerd pink_mist: It's not going to, though.
23:23 TEttinger (maybe 27)
23:24 kid51 joined #perl6
23:24 saaki "Thirty"
23:24 MadcapJake It's only "way too different" because you are a Perl 5 programmer.  to me, it looks mostly the same (I know that's obv not true but still it really does seem that way)
23:24 ZoffixMobile joined #perl6
23:24 dha I actually don't consider the idea of Perl 5 and Perl 6 being two different languages in the same family to be a difficult concept. Just one people aren't used to, hence the shouting.
23:24 diakopter___ .tell ZoffixMobile that's neat (demo modules site); really well done
23:24 yoleaux diakopter___: I'll pass your message to ZoffixMobile.
23:25 ugexe not to mention 70% of the ecosystem is "XXX a port of perl5's XXX"
23:25 Juerd dha: It's an easy concept that we continue to have to explain.
23:25 Ulti pink_mist frankly Perl 5 should get a new name, if you just told people there was a new language called ProductivityScript made a really swish website with nice high production video tutorials and pushed it at every conference there is a whole generation of 20 somethings that have never even *seen* perl. They would think its some new fancy Ruby like language.
23:25 dha Juerd - exactly.
23:25 Juerd dha: And in terms of language adoption, I think that this will severely hinder Perl 6's chances.
23:26 Ulti however everyone has heard of Perl, usually with random garbage about how you shouldn't even bother to look at it
23:26 MadcapJake Juerd: not a chance.  Tell anyone you are learning Perl 6 and they instantly bring up the 5/6 debacle.  It's actually probably going to help Perl 6 adoption if anything xD
23:26 Ulti Perl is the problem in the name not the number
23:26 dha Juerd - I imagine that is a possibility. But it's the situation we're in.
23:26 ZoffixMobile diakopter___, but the design thing is irrelevant to the argument. The P5 like the language for X reasons and it's irrelevant whether language Y decided to do things different
23:26 yoleaux 23:24Z <diakopter___> ZoffixMobile: that's neat (demo modules site); really well done
23:26 hankache joined #perl6
23:27 ZoffixMobile It also misses the core issue that without any explanations, the default is to assume Perl 6 is an upgrade to Perl 5.
23:27 ZoffixMobile And that you should avoid Perl 5 becauee it got superseeded
23:27 dha ZoffixMobile - That guy you were arguing with on twitter has a *new* complaint. :-/
23:27 Juerd dha: Yep. I accept the situation as it's happening. But still I do hope that at some point, it'll get better.
23:27 lichtkind i actuall will steal this ProductivityScript line
23:27 lichtkind its fabulous
23:27 MadcapJake But it is an upgrade, isn't it?  Perl 6 is *intended* to be a better designed Perl 5, right?
23:27 lichtkind i mean for my perl 6 article
23:28 Juerd ZoffixMobile: Package maintainers are going to hate Perl 6 more than they've ever hated Python 3 :)
23:28 diakopter___ ZoffixMobile: well yes, that is the point of TimToady investing so many years in it, to make something that supersedes and surpasses
23:28 Juerd I wouldn't mind Perl6 v1.0.0 either ;)
23:29 ZoffixMobile MadcapJake, not anymore. Perl 6 is now a new language and Perl 5 **is still actively developed and improved** just not to the idea of what "improved" means to a P6 programmer
23:29 Ulti I dunno
23:29 dha MadcapJake - kind of. but it has gone so far that it's very different in many ways. And the idioms are quite different.
23:29 diakopter___ ZoffixMobile: .. and to make something that should be preferred over his previous language designs
23:30 MadcapJake But Perl 5 isn't planning on breaking compatibility ever? So it's really just intending to maintain and improve the current syntax/semantics, right?
23:30 ZoffixMobile diakopter___, I doubt TimToady wishes to make a statement that Perl 5 is dead amd no one should use it because Perl 6 is better.
23:30 diakopter___ of course not, it's not what I said.
23:30 Juerd As I'm rewriting one of my Perl 5 modules in Perl 6, I become more convinced that Perl 6 is not "Perl", but something else. I like it better than Perl.
23:31 Ulti MadcapJake yeah but they have signatures getting in there even with backcompat
23:31 ZoffixMobile MadcapJake, it does add new features. They are requested by a pragma
23:31 Ulti postfix deref is also quite nice, I wish they would stop things being "experimental" a lot faster
23:31 MadcapJake Well I guess that does complicate things xD I thought they were just maintaining Perl 5.
23:31 Ulti so you feel like you could actually use *anything* post 5.10
23:31 pecastro joined #perl6
23:32 Skarsnik I think when porting a P5 -> P5 you should only keep the tests xD
23:32 Skarsnik *p
23:32 Ulti I still explicitly put use feature 'say' in half my scripts
23:32 Skarsnik *whatever keyboard
23:32 Juerd Ulti: Quite nice? Adding "->$#*" to the language isn't "nice".
23:32 ZoffixMobile diakopter___, then your previous statement is inapplicable. Yes, Larry started with making P5 better, but we ended up with a new language, while P5 went on on a new path
23:32 Ulti Juerd: thats a bad example though
23:32 Juerd Ulti: All of them are incredibly ugly, this one just happens to be the ugliest.
23:32 ZoffixMobile Juerd, but the alternative is the same thing but with braces :p
23:33 tokuhiro_ joined #perl6
23:33 Ulti ->@ rather than @{} around the whole chain of -> is a lot micer
23:33 Juerd Ulti: It's ->@* though.
23:33 Ulti because it makes it a lot more obvious what is deref'ing
23:33 Juerd (iirc)
23:33 Ulti especially for a slice!
23:33 diakopter___ ZoffixMobile: "making X better" is very different from "making something better than X"
23:33 Skarsnik I hate deferencing in p5 xD
23:33 MadcapJake Interestingly a similar "problem" is occuring for the Angular.js developers.  Their new framework is called Angular 2 but it's quite different to Angular 1 and most people don't understand why they're A) breaking compat so much, B) not changing the name, and C) not done yet :P
23:33 atweiden joined #perl6
23:33 Ulti Juerd: is it?
23:33 Juerd Ulti: If I recall correctly, it is. I wouldn't have thought so negatively about it if the * wasn't there.
23:34 Ulti a deeply nested hash slice is basically the most dreaded part of P5 syntax for me
23:34 Ulti it always looks nuts because you have the overloaded {} adjacent
23:34 ZoffixMobile diakopter___, indeed, but by having that something named the same thing with a larger number next to it implies the latter
23:34 Juerd Ulti: $foo{ bar }{ baz }{ quux } isn't so bad, is it?
23:34 ZoffixMobile Anyway. I'm off to walk to the dark, hobo-inhabitted park :p
23:34 Ulti Juerd: I thought the @* was something else :/
23:35 psch timotimo: 'fail X::$whatever' seems to return a Failure, not Nil
23:35 psch m: sub f { fail X::AdHoc.new }; say f().WHAT # as here
23:35 camelia rakudo-moar d410e3: OUTPUT«(Failure)␤»
23:35 Ulti Juerd: thats not a hash slice.. now I want all the quux entries for every value where baz is
23:35 psch m: say Nil ~~ Failure
23:35 camelia rakudo-moar d410e3: OUTPUT«False␤»
23:35 Ulti or a subset I define of keys
23:35 psch m: use nqp; say nqp::istype(Nil, Failure)
23:35 camelia rakudo-moar d410e3: OUTPUT«0␤»
23:35 Juerd Ulti: Oh, slices. I don't use them much. When I do, I usually assign to an intermediary variable to make it readable.
23:36 psch m: use nqp; say nqp::istype(Failure, Nil)
23:36 camelia rakudo-moar d410e3: OUTPUT«1␤»
23:36 psch there...
23:36 diakopter___ m: say Failure ~~ Nil # curious
23:36 camelia rakudo-moar d410e3: OUTPUT«True␤»
23:36 Ulti Juerd could do but if that intermediate has no good name its kind of lame having %temp
23:36 Ulti just have nice syntax for it
23:36 pmurias Ulti: having some random idiots who haven't ever seen Perl code retell some ultra lame joke it is annoying
23:37 Juerd Everything has a good name. In this case, whatever key the hash had, is the name for the identifier.
23:37 dha Holy crap. That guy on twitter is something other than else.
23:37 Ulti pmurias the peple who have used Perl a long time tell the same lame jokes though, they have heard them so often and so frequently they believe it about their own tools!
23:38 Ulti dha url? I have some popcorn ready
23:39 diakopter___ Ulti: the links ZoffixW posted
23:39 diakopter___ 57 min ago
23:39 psch j: sub f() returns Int { return Nil } # Nil already doesn't mess with p6typecheckrv, apparently
23:39 camelia rakudo-jvm d410e3: ( no output )
23:39 psch errr
23:39 psch ENOINVOCATION
23:39 dha Uh... I would, but apparently, after a brief exchange he has blocked me from reading his tweets. but he's @unlocalblog - maybe you can read him.
23:39 psch r: sub f() returns Int { return Nil }; f
23:39 camelia rakudo-moar d410e3: ( no output )
23:39 camelia ..rakudo-jvm d410e3: OUTPUT«Type check failed for return value; expected Int but got Nil␤  in sub f at /tmp/tmpfile:1␤  in block <unit> at /tmp/tmpfile:1␤␤»
23:40 psch timotimo: so, yeah, apparently it should check for type Nil instead of Failure :)
23:40 psch timotimo++
23:40 dha I responded to his tweet about brian d foy's post about renaming Learning Perl.
23:41 Ulti oh yeah that Jeff Anderson guy was a bit angry on some other tweets too but ones to his mates
23:42 * Ulti sometimes just searches "Perl 6" on twitter no hashtag to see what people are saying less publicly
23:42 diakopter___ dha: yeah but farther down his tweet stream there is "Have you ever heard of the Illumanti? Pretty cool stuff ... #waybehind"
23:42 Ulti I find it hard to be angry at a programming language, or an organised group of individuals creating something they love
23:42 frobisher joined #perl6
23:43 Skarsnik is there some kind of pragma to say to the compiler 'CHECK THE TYPING OF METHODS FOR ** SAKE'?
23:43 Ulti I even get paid to write Perl 5 every day at the moment, my job doesnt vanish because Perl 6 exists
23:44 Ulti people act like Perl 6 is David Bowie from Labyrinth come to take their children away
23:44 skids joined #perl6
23:45 dha So, as I was saying before I got disconnected, @unlocalblog indicated that the question about renaming Learning Perl was proof that we're lying when we say Perl 6 isn't competing with Perl 5.
23:45 dha I merely asked how that indicated competition, rather than an attempt at clarity. Then he blocked me.
23:46 Ulti Perl 6 is competing with Java too, we should bump the version like they did Perl 60.0?
23:47 diakopter___ my point was that it is absolutely competing, on language design (usability, learnability, memorability, someday maintainability & someday interoperability)
23:50 Ulti only if you assume the same people who would do any of that in Perl 5 are the ones doing it in Perl 6
23:50 diakopter___ XD, I think
23:51 Ulti I've read a lot of Rakudo internal code, I haven't once felt the need to go anywhere near the perl internals and I've been hacking in P5 for a while now
23:51 ZoffixMobile joined #perl6
23:52 Skarsnik yay Zoffix is not dead in the weird dark alley
23:52 ZoffixMobile \o/
23:52 ZoffixMobile I missed my bus tho :p
23:53 Skarsnik good night here x)
23:53 ZoffixMobile night
23:55 Ulti also Swift 2 is the Perl 6 mind killer
23:55 Ulti since it has nice unicode and rational numbers
23:56 Ulti and supported by one of the largest manufacturers of smartphones and pushers of pay for software
23:58 Ulti was it someone in here who linked a nice matrix of :hip: new language features and what languages do and dont have them
23:58 Ulti Swift was basically the only thing with a similar profile to Perl 6
23:59 ZoffixMobile I think the solution to the name thing is involving the two communities together and promoting both languages. So the name of the book that sparked this conversation.... the cover could include promo for another book, a Perl 6 book. Though that likely sounds weird for those who know just one Perl. Personally, I could argue why one is better than the other for both :/
23:59 Ulti have one book that you flip over

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

Perl 6 | Reference Documentation | Rakudo