»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
Zoffix cygx, oh yeah, fails for any R == G == B actually. 00:00
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?
cygx Zoffix: really? I don't see that
RabidGravy should start looking for remunerative employment at some point
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'
cygx pink_mist: endianness
(at a guess)
Zoffix cygx, oh, ok.
RabidGravy yeah "hardware"
Zoffix has a few brews
*had
RabidGravy brews++
Zoffix by has as well
:)
pink_mist cygx: I guess that makes sense .. thanks :)
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
RabidGravy anyway the wind has died down now I think I may be able to sleep 00:04
toodlepip
play nicely
cygx o/
Zoffix \o
Skarsnik from some code from gstreamer 00:05
"{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR," \
" I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444," \
" NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }"
Zoffix :o 00:06
Skarsnik they are video format
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
s/is/runs for/l;
00:08 pippo left 00:09 RabidGravy left
Skarsnik bgrx is for premultiplied alpha 00:09
Zoffix This channel needs a Markov chain bot
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
*during Freenode's*
Zoffix can't type anymore
ugexe camelia should write a program using the history of user input markov chained
Skarsnik spend new year on irc is sad x)
Zoffix Skarsnik, why?
Skarsnik, I meet people I've known for a decade but don't get to talk to any more. 00:11
Plus, I can just pass out when i'm drunk... I'm home already :)
Skarsnik I done it once, I feel sad not being with friends x)
ahah nice point
cygx 'night o/ 00:16
Zoffix \o
00:16 cygx left
jdv79 timotimo: idk. how do i check that easily? 00:22
00:23 lostinfog left, BenGoldberg joined 00:28 telex left, BenGoldberg left
arnsholt timotimo: The Net::ZMQ tests pass for me. What kinds of error are you getting? 00:29
jdv79 i commented though i'm not sure. 00:30
00:30 BenGoldberg joined, telex joined 00:37 n0tjack left 00:38 johan left, synbot6 left 00:45 Peter__R left
timotimo jdv79: what is that in reference to? 00:46
arnsholt: i'll gist it
jdv79 a lame moarvm ticket
timotimo oh, that 00:47
jdv79: i suppose build a simple c program and supply that flag?
jdv79 i did in the comment
i think
timotimo gist.github.com/timo/cafd71a06a2a81a95a04
ah 00:48
that helps
you see, i advertised that as an "easy to get into our project" issue on the weekly
jdv79 i did not 00:49
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?
Skarsnik good night here x)
timotimo on the other hand, the more adorable of the two cats just lied down next to me
Skarsnik x)
left your keyboard and cuddle them to death 00:51
timotimo i have both libzmq.so.3 and libzmq.so.4
jdv79 oh, i see it now. did you add that later?
timotimo i added the third one
jdv79 i only remember the profiler and abi ones
ah
arnsholt Right, that's a bit more modern than Ubuntu, I think
IIRC I have 2.2.0 or something like that
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 0a0fe74 | (Zoffix Znet)++ | mojo-app/DEPLOYMENT.md:
Add instructions for brewing Perl 5 in a virgin Debian env
00:52
timotimo libzmq.so points at the one with the 3, though
Zoffix: a debian env without alcohol? 00:53
arnsholt Right. On my system it points to libzmq.so.1.0.1
Zoffix timotimo, huh?
arnsholt So it could actually just be something to do with you having a more modern ZMQ
timotimo lol
jdv79 nite 00:54
00:56 yeahnoob joined
timotimo good night! 00:56
00:56 Skarsnik left
arnsholt Yeah, it's bedtime here too, really 00:57
timotimo: I'll try to have a look at what happens if I use ZMQ 3 instead 00:58
Likely it'll blow up
Zoffix Hm, just remembered there was a rendering issue I wanted to fix in mojo-app branch for uber long module names.
so now PR today :) Tomorrow's the day.
*no
zengargoyle timezones are such funny things on #perl6 01:01
dalek kudo-star-daily: 598b7f7 | coke++ | log/ (3 files):
today (automated commit)
01:08
[Coke] wonders what the odds are of getting a clean r-j run for this release. :| 01:19
01:19 n0tjack joined 01:20 Zoffix left 01:24 dbohdan joined 01:30 n0tjack left 01:35 n0tjack joined 01:40 n0tjack left 01:44 tokuhiro_ joined 01:48 tokuhiro_ left 02:07 yary joined
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
02:10 kid51 joined 02:11 molaf_ joined
yary Hello p6 people, been talking to camelia, I think this qualifies as an LTA error- 02:14
p6: use 6.000; print "OK";
camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ use used at line 1␤␤»
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:15
02:15 molaf left
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
02:16 tokuhiro_ joined
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␤␤»
yary m: use v6.Birthday; print "OK";
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";␤»
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␤␤»
zengargoyle m: use v6.b; say "OK";
camelia rakudo-moar 1ca52f: OUTPUT«OK␤»
zengargoyle that i think they shortened.
yary ok, that much makes sense (b vs Birthday) 02:18
zengargoyle m: need v6; say "OK"; 02:19
camelia rakudo-moar 1ca52f: OUTPUT«OK␤»
zengargoyle m: need v6.0000; say "OK";
camelia rakudo-moar 1ca52f: OUTPUT«OK␤»
zengargoyle sorta think the 'use' may just be for Perl 5's sake. 02:20
yary m: need v6.0.0
camelia ( no output )
yary m: need v6.0.0; say 600
camelia rakudo-moar 1ca52f: OUTPUT«600␤»
02:21 dayangkun joined
zengargoyle like use is need+import or something like that. the meaning has changed a bit. 02:21
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
yary eg. will "use v6" mean "need 6.Christmas semantics?" 02:23
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:25
02:26 FROGGS left
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:28
psch m: say v6 cmp v6.0.0; say v6 cmp v6.c 02:29
camelia rakudo-moar 1ca52f: OUTPUT«Same␤More␤»
zengargoyle looks like the 'v' leader is the important thing that makes it a <version>
psch m: say v6 cmp v6.0.0; say v6 cmp v6.1
camelia rakudo-moar 1ca52f: OUTPUT«Same␤Less␤»
psch huh
that's a tad spooky
v6 is later than v6.c 02:30
yary that makes sense
psch nah, i don't think so
yary letter means alpha
or beta etc release
any number in a version is higher than any letter
psch well, yes, that's the way i'd make sense of it, too
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
and v6.zzzzz is a pre-release for v6.0000
psch or v6.b[irthday] being the first "public beta" release
02:31 Ben_Goldberg joined
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
psch zengargoyle: well... volunteered..? :P 02:31
zengargoyle lol, i can't even make my POD thing work.... 02:32
psch what's the hangup?
02:32 doublec_ left
zengargoyle gist.github.com/18152f52ffce7fc03960 02:33
02:33 BenGoldberg left, doublec left
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:33
yary ah yes... 6.Chirstmas is NOT an official releas 02:34
e
in my mind either
zengargoyle heh, planning on going through some Rakudo/NQP stuff i found from that 2day thing a while back.
yary I was confabulating it with v6.000
02:35 Ben_Goldberg left
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
02:35 Ben_Goldberg joined
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
m: say v6 cmp v6.1
camelia rakudo-moar 1ca52f: OUTPUT«Less␤»
psch yary: but v6 is already less than v6.1
zengargoyle: well, did you add a 'class Pod::Data' to Pod.pm?
zengargoyle: at least that's where i'd put it
02:36 doublec joined
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"
psch zengargoyle: yeah, it says "i don't know how to put this into Pod.pm", i saw that
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"
psch yary: v6 already means v6.0.0 repeating
m: say v6 cmp v6.0.0.0.0.0.1
camelia rakudo-moar 1ca52f: OUTPUT«Less␤»
yary good then I'm happy.
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
02:39 xpen joined
yary (other than the LTA error when you forget to put a "v" in front of a bare number) 02:40
p6: need 6
camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ need used at line 1␤␤»
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
dalek ast: b0cf420 | coke++ | S0 (4 files):
Generic fudge for jvm NPEs
psch s/work//
zengargoyle: i could probably give more useful hints with a branch to pull and try locally 02:41
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:42
psch m: use "foo" 02:43
camelia rakudo-moar 1ca52f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V5rygUhZ8o␤Undeclared routine:␤ use used at line 1␤␤»
zengargoyle it take the 'v' to make it use <version> vs use <module>
psch yary: can you create an RT ticket for that?
yary sure 02:44
psch yary: thanks
02:47 baest joined
psch zengargoyle: src/Perl6/Actions.pm:6885-6941 does something similar (albeit probably a bit less complex) 02:48
zengargoyle: as in, instantiate a Perl 6 level class in the Actions
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, doublec left
psch zengargoyle: that's good, 'cause it means your Pod::Data class works already :) 02:49
zengargoyle: if i read your gist right the podtest.p6 works as written? 02:51
zengargoyle yes.
02:51 Util joined
zengargoyle the simple 'just hold the list of blocks' works. 02:51
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?
the BUILD and for loop with noting else doesn't even work.
it's like by that time @!blocks isn't a real array you can use. 02:54
psch ah
yeah, you might have to hllize that
i think we have a recursive helper in $*W for that
zengargoyle IIRC it complains about not having a .Numeric method which i'm guessing it it trying to figure out how long @!blocks it.
zengargoyle typing poorly. :/ 02:55
psch Perl6::World.p6ize_recursive
zengargoyle oh, sounds promising.
02:56 doublec_ is now known as doublec
psch i think you want to make BUILD a submethod, though, 'cause it touches privates 02:56
(or maybe because it's in general good practice to have it a submethod...)
zengargoyle i think i tried both, i at least saw both ways used when i ack'd 02:57
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
camelia rakudo-moar 1ca52f: OUTPUT«Method 'foo' not found for invocant of class 'B'␤ in block <unit> at /tmp/p5fdT_XVq9:1␤␤»
psch submethods don't get inherited, same as private attributes
so a method BUILD in your case would complain when invoked from a subclass
zengargoyle good to know. not sure if subclassing Pod::anything makes much sense in runtime... maybe. 03:00
03:01 kaare_ joined
[Coke] IWBNI fudge skip didn't override the test name. 03:03
03:05 yary left
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:08
03:09 sufrostico left, sufrosti1o left 03:10 softmoth_ left 03:12 kid51 left 03:15 ShimmerFairy left 03:16 Ben_Goldberg left 03:17 Ben_Goldberg joined 03:18 zengargoyle left 03:20 zengargoyle joined
dalek ast: 493b724 | coke++ | S (5 files):
Generic fudge for jvm NPEs
03:22
03:22 Ben_Goldberg left 03:26 noganex joined 03:29 noganex_ left 03:45 yqt left 03:46 vendethiel joined 03:49 BenGoldberg joined
ingy dj_goku_: pong. (privmsg me) 03:52
ugexe what does the :api<...> matcher on compunits determine?
04:02 kaare_ left
geekosaur ugexe: per design.perl6.org/S11.html#Versioning now you know as much as I do (which isn't much...) 04:04
seems to not be specified between identifying somehow an API variant
and API dominates version 04:05
04:06 n0tjack joined
ugexe seems redundant with namespaces so i must not understand 04:07
04:07 lab joined 04:11 softmoth_ joined 04:13 n0tjack left, n0tjack joined 04:14 mr-foobar joined 04:15 softmoth_ left 04:18 n0tjack left 04:19 raiph left 04:44 average joined
average not bad.. twit.tv/shows/triangulation/episodes/225 04:44
you guys are doing ok with promotion 04:45
p6 is all over the news pretty much everywhere
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:50
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:53
04:55 aindilis joined, aindilis left 04:56 aindilis joined 04:58 BenGoldberg left, skids left 05:05 molaf_ left 05:07 mr-foobar left, mr-fooba_ joined 05:14 Actualeyes joined 05:18 vendethiel left
grondilu MadcapJake: to specify the entry point, you can create a MAIN subroutine. 05:21
just like in C, actually.
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:23
05:25 raiph joined 05:30 xinming left 05:46 AlexDaniel left 05:59 softmoth_ joined 06:04 softmoth_ left, khw left 06:08 raiph left 06:09 Mhoram left, abaugher joined 06:23 TimToady left, TimToady joined 06:24 n0tjack joined 06:28 n0tjack left
ugexe what does Build.pm style workflow mean? 06:46
nor can you simply alias commands to precompile a project, because you need logic to determine the build order 06:51
06:52 aborazmeh joined, aborazmeh left, aborazmeh joined 06:55 FROGGS_ left 06:56 domidumont joined 06:59 geraud left 07:00 domidumont left, sammers left 07:01 domidumont joined, cgfbee left 07:02 adu joined
[Tux] Having previously installed Pod::Coverage, currently breaks most of my Ecosystem :( 07:03
gist.github.com/Tux/dbb6c241a0df9fea2866
can someone please teach panda the "uninstall" option? 07:04
07:08 FROGGS_ joined 07:12 n0tjack joined 07:16 n0tjack left
[Tux] test 50000 21.045 20.931 07:20
test-t 50000 18.351 18.237
Inline::Perl5 won't install due to the Pod::Coverage issues
nine [Tux]: once I'm done with rakudo's curli branch an uninstall option should be easy to implement 07:21
[Tux] nine++
(not that it would help for Inline::Perl5) 07:22
dalek ast: 5e1c8c7 | usev6++ | S (5 files):
Revert "Generic fudge for jvm NPEs"

This reverts commit 493b72489a0e530d2be0755bc83bac14c2f15460.
Tests are passing again after rakudo commit 5da0b3faed.
07:24
ast: 4dcb14e | usev6++ | S0 (4 files):
Revert "Generic fudge for jvm NPEs"

This reverts commit b0cf420bcee203a6172f0e6a9d78db223e721db9.
Tests are passing again after rakudo commit 5da0b3faed.
07:29
07:30 El_Che_ is now known as El_Che 07:33 TimToady left 07:34 TimToady joined
dalek ast: 0ced0cc | usev6++ | S02-types/sethash.t:
Revert "Fudge for the JVM so we can complete the test."

This reverts commit ffda0cb01c58df1639b01e8a29d18a0772419f6c.
Tests are passing again after rakudo commit 5da0b3faed.
07:34
07:35 cgfbee joined, toax joined
dalek ast: 6b3843a | usev6++ | S02-types/mixhash.t:
Revert "Fudge for the JVM so we can complete the test."

This reverts commit f20a1b2dd2c6580e50a46ced03a4ff2c6bba7f48.
Tests are passing again after rakudo commit 5da0b3faed.
07:38
masak morning, #perl6 07:42
[Tux] morning masak
dalek ast: 501b480 | usev6++ | S02-types/baghash.t:
Unfudge tests which gave a NPE on rakudo.jvm

Tests were fudged with commit 701861312a, but are passing again after rakudo commit 5da0b3faed.
07:45
bartolin sorry for the spam. basically, .sort was broken on JVM but works again now 07:46
[Coke]: ^^
moritz ... and we use sort a lot in the tests for comparing hashes / hash keys
bartolin yes, so there was quite a spectest fallout on rakudo.jvm 07:47
07:47 softmoth_ joined
dalek kudo/nom: 87b10aa | TimToady++ | src/core/Grammar.pm:
.parse should return Nil on failure, not Any
07:48
ast: 96ed583 | usev6++ | S03-metaops/hyper.t:
Revert "Fudge for the JVM so we can complete the test."

This reverts commit bf1fd082488da8d81c3e1fe6c0389268efeb9a7c.
Tests are passing again after rakudo commit 5da0b3faed.
07:51
07:51 adu left
[Tux] TimToady, would that fix the Pod::Coverage problem? 07:51
07:52 softmoth_ left
TimToady what problem is that? 07:52
TimToady is still about 3 days behind on backlog...
[Tux] gist.github.com/Tux/dbb6c241a0df9fea2866 07:54
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
[Tux] now trying if jvm will work with Text::CSV :) 07:56
07:56 RabidGravy joined
dalek ast: 385bfcc | usev6++ | S32-hash/adverbs.t:
Revert "Fudge for the JVM so we can complete the test."

This reverts commit b0c517be4d369ca1aa76d9e703b30426a240740f.
Tests no longer die with NPE after rakudo commit 5da0b3faed.
07:59
07:59 zhmylove joined
bartolin well, that should be all reverts wrt .sort. I'm going to close the related three tickets 08:01
nine bartolin: \o/ 08:02
[Tux] panda doesn't install on jvm
08:04 CIAvash joined 08:05 darutoko joined 08:16 eliasr joined 08:18 zhmylove left 08:26 xpen left 08:29 espadrine_ joined
dalek ast: f96a954 | usev6++ | S32- (2 files):
Fudge tests for JVM ('todo'), RT #126671
08:30
08:31 Praise left 08:34 xpen joined 08:35 Praise joined, Praise left, Praise joined 08:41 espadrine_ left 08:43 abraxxa joined 08:49 zakharyas joined
dalek rl6-bench: d2108c7 | timotimo++ | perl6/pi-sequential-iteration:
Intify commandline arguments once instead of every time

this reduces run time of pi-sequential-iteration to about 45%
08:50
ast: b192d2b | usev6++ | S05-match/capturing-contexts.t:
Tighten fudge for rakudo.jvm
08:51
rl6-bench: 81603c2 | timotimo++ | perl6/ (11 files):
just make sure all cmdline args get Intified if needed

didn't measure any of this, but it's just a bit of extra sanity in any case.
08:55
09:00 azawawi joined
azawawi hi 09:00
09:01 zhmylove joined
azawawi How do i force rakudo build to compile to 32-bit on a 64-bit machine? 09:01
09:01 kjs_ joined, xpen left
timotimo hum. i should also have mentioned pod data block work in the weekly :\ 09:02
09:02 xpen joined, rindolf joined
azawawi and can a 64-bit rakudo NativeCall load a 32-bit DLL or not? 09:03
09:03 xpen_ joined 09:07 xpen left 09:11 dakkar joined 09:15 xpen joined 09:16 xpen__ joined 09:18 xpen_ left, xpen__ left 09:19 xpen_ joined 09:20 xpen__ joined, xpen left 09:22 xpen joined
dalek ast: 5b1c98c | usev6++ | S05-modifier/counted (2 files):
Fudge some tests for JVM ('todo'), RT #125815
09:22
09:23 xpen left 09:24 andreoss joined, xpen joined, xpen_ left 09:25 xpen__ left
dalek ast: 75f702c | usev6++ | S05-modifier/counted-match.t:
Fudge some tests for JVM, RT #124279
09:29
09:32 lab left 09:33 lab joined, kjs_ left 09:36 yeahnoob left, softmoth_ joined 09:37 kjs_ joined 09:41 softmoth_ left, pdcawley_ is now known as pdcawley
mrf o/ #perl6 09:48
09:53 xinming joined 09:56 azawawi left
bartolin currently .squish and friends return a Seq. what are the advantages over returning a List? one point is performance, probably? 10:01
the current behaviour could lead to surprises:
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␤␤»
bartolin also 'is-deeply' seems to be more picky on JVM: 10:03
r: use Test; is-deeply(<a b>.squish, <a b>)
camelia rakudo-moar 87b10a: OUTPUT«ok 1 - ␤»
..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, xpen left
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:
m: my @a = <a b>.squish; say @a.elems; say @a
camelia rakudo-moar 87b10a: OUTPUT«2␤[a b]␤»
bartolin hi, jnthn :-)
jnthn bartolin: Almost everything that can produce results lazily returns a Seq
And yes, it's right that squish does. 10:07
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
bartolin ah, yes. I didn't think about laziness. 10:08
jnthn Assigning to an array actually evaluates the Seq
And assigns it into the array eagerly
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.
bartolin I guess that will be a faq ... (I quickly looked at doc.perl6.org/language/faq but didn't find the answer there.) 10:10
JimmyZ we just need <<best practice of Perl 6>> book :P 10:11
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:12 n0tjack left
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. :-)
'cus that keeps memory around
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.
Yeah, cookbook style things don't have such issues.
10:18 Woodi_ is now known as Woodi 10:19 Upasaka left
JimmyZ well, me too. I 'd like read cookbook instead of best practice 10:21
10:21 xpen_ left 10:22 Upasaka joined
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:24
10:25 aborazmeh left
RabidGravy right off to take the cat to the Kitty Hotel 10:25
have fun 10:26
10:28 pmurias joined 10:30 RabidGravy left 10:31 xpen joined
Woodi hi today :) 10:37
jnthn nine: Yes, the key thing being you paid attention to the reasoning. :) 10:38
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
maybe best practices can be tree-graphed too ? :)
10:50 Skarsnik joined
dalek c: bb59c5a | (Steve Mynott)++ | doc/Language/faq.pod:
add reference to POSIX from ecosystem
10:50
stmuk_ JimmyZ: there is a start of the cookbook under perl6-examples 10:52
10:56 rindolf left 11:04 znpy joined
dalek ast: fa09383 | jnthn++ | S06-signature/shape.t:
Tests for signature shape matching syntax.

Check the declared shape against that required.
11:04
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:10
dalek kudo/nom: 536b388 | jnthn++ | src/Perl6/ (2 files):
Implement @a[10] style matching in signatures.

Matches against the declared shape of the array.
11:14
kudo/nom: c9d0d2c | jnthn++ | t/spectest.data:
Run S06-signature/shape.t.
11:24 softmoth_ joined 11:28 cosimo joined 11:29 softmoth_ left 11:32 Zoffix joined 11:37 brrt joined
dalek kudo/nom: cc628b5 | jnthn++ | src/core/Array.pm:
Fix fixed dimension illegal operation throws.
11:38
kudo/nom: fdd236c | jnthn++ | src/core/array_slice.pm:
Remove bogus 'is rw'.
11:40 xpen left 11:44 mr_ron left
zengargoyle good * #perl6 11:44
11:45 mr_ron joined
dalek ast: e1ef203 | jnthn++ | S09-multidim/ (4 files):
Tests covering multi-dim array support so far.
11:58
11:58 dayangkun left
Skarsnik Hello 11:58
dalek kudo/nom: 61e5052 | jnthn++ | t/spectest.data:
Run various new multi-dim array tests.

Cover the support we've already had in Rakudo for a while.
11:59
jnthn lunch & 12:01
pmurias jnthn: should I add a nqp::isatty op? needed for fixing rt.perl.org/Public/Bug/Display.html?id=123347
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:03
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:05
12:05 Actualeyes left
pmurias (or I could just update it after the refactoring) 12:06
jnthn Go ahead, it'll be easy to change the function to do something else if needed 12:09
really lunch :) &
12:14 andreoss left 12:15 sno left 12:20 Actualeyes joined
Skarsnik Does some poeple has ideas for the bool issue on github.com/MoarVM/MoarVM/pull/294 ? 12:30
12:33 tokuhiro_ left 12:35 n0tjack joined 12:39 n0tjack left 12:41 cygx joined
cygx Skarsnik: create a platform header for stdbool.h 12:41
if __STDC_VERSION__ >= 199901L, just include stdbool.h
define bool as char for old MSVC versions, bailout otherwise 12:42
12:42 rindolf joined
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:43
12:44 sufrostico joined
cygx Skarsnik: stdbool.h has been around since gcc 2.95 (and with proper C99 semantics since 3.0) 12:46
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.
cygx (in practice)
12:47 CIAvash left 12:50 Sqirrel joined 12:52 mr_ron left
cygx I'd probably just got with checking _MSC_VER < X => typedef unsigned char bool, otherwise include <stdbool.h> 12:52
12:53 mr_ron joined 12:59 telex left 13:00 espadrine_ joined, telex joined 13:02 toax left 13:05 Upasaka left 13:11 kaare_ joined
Skarsnik thx cygx for the comment, you explain thing better than me x) 13:11
13:12 softmoth_ joined 13:14 domidumont left
cygx Skarsnik: no problem 13:15
dalek ast: 3ff13fe | usev6++ | S32-list/ (4 files):
Fudge tests in S32-list for JVM
13:16
13:17 softmoth_ left 13:18 domidumont joined 13:22 RabidGravy joined
Skarsnik and... time to track/correct this bug pastebin.com/FVagmG6T 13:23
13:29 espadrine_ left 13:31 espadrine_ joined 13:32 ZoffixW joined
ZoffixW I see a problem with our ecosystem design: fpaste.scsys.co.uk/501640 13:32
JSON::Faster was removed from the ecosystem, but I had it installed, so rakudobrew is trying to recompile it 13:33
And panda doesn't have an uninstall option :)
tadzik heh :)
13:33 tokuhiro_ joined
tadzik I guess that's panda's fault then 13:33
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.
ZoffixW like, ignore the issue and move on; not crash on it
jnthn Eventually, we should be installing immutable distributions. 13:35
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"
No, the module source should ideally follow such immutability rules too
nine jnthn: that might have interesting interactions with panda install .
jnthn nine: That probably needs handling differently, yes...
13:37 tokuhiro_ left
jnthn What are the use caes for "panda install ."? 13:38
masak jnthn: irclog.perlgeek.de/perl6/2015-11-17#i_11554754 -- looks sane to me. +1
timotimo i use "panda install ." for development
tadzik same
timotimo what ufo used to do :P
jnthn masak: Well, but the way the discussion was heading is away from what you wanted in the ticket
masak: That is, .+ and .* are only about single dispatch
Skarsnik in some travis file?
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
ZoffixW passes around a round of ++
timotimo whoa
jnthn Wow, what did we do? :P
timotimo i didn't know we improved anything about that?!
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 ;)
jnthn masak: OK. :) 13:43
masak jnthn: I would love it if .* and .+ were something that I actually found useful and predictable. :)
ZoffixW Or maybe I'm wrong: irclog.perlgeek.de/perl6/2015-11-17#i_11554519
jnthn I'll make sure we codify the current behavior in tests, and that it's as I actually think it is. :)
masak +1
RabidGravy the tools should probably distinguish between install from local copy and install from the interwebs though
jnthn *nod* 13:44
Agree it's a useful feature.
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: github.com/zoffixznet/perl6-Color/...perators.t
nine jnthn: I use panda install . for running S01 spectests on the development version of Inline::Perl5 13:45
jnthn: also same as RabidGravy. For example installing LibraryMake with a local patch to make it work with rakudo's curli branch ;) 13:46
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
Sorry :}
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...
nine: It's more that if installing published modules from a repository we should expect them to be immutable... 13:48
dalek ast: 30bac51 | jnthn++ | S09-multidim/decl.t:
Tests for multi-dim array declaration syntax.

Not yet running/passing.
ast: b2f0f93 | usev6++ | S0 (2 files):
Fudge some more tests for JVM
13:49
ZoffixW But if it's any consolation, on my home box the test runs in just 3 seconds :P 13:50
Skarsnik hm should I repport a bug for: 13:53
(skardev)root@pinkpony:~/p6/rakudo# ./perl6-gdb-m plop.p6
blablabl then Reading symbols from /opt/bin/moar...(no debugging symbols found)...done.
timotimo what's the bug about that?
Skarsnik should it use the local bin/moar and not the installed one ? 13:54
nine jnthn: ok, I'll keep that in mind
timotimo it should not
jnthn It should use the one your Rakudo was built against
13:54 ZoffixW left
Skarsnik actually it's probably the same x) 13:56
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
that really weid actually
/opt/bin/moar --execname="$0" --libpath="/opt/share/nqp/lib" --libpath="." /root/p6/rakudo/perl6.moarvm -e ' 13:58
why the two are mixed
timotimo and why do you run perl6 stuff as root?
Skarsnik well I use the one I installed system wide. I am too lazy to reclone/rebuild (and it's just a chroot) 13:59
timotimo doesn't root inside a chroot still have direct access to things in /dev, /sys and /proc if you bind-mount it? 14:00
i suppose just for a bit of development, you don't need all of that 14:01
Skarsnik it's more lazyness to reclone/build as an user 14:03
14:04 lab left 14:05 lab joined
Skarsnik It's also because my local install is 32bits and I have a bug only on a 64bits ~~ 14:05
14:06 pmurias left 14:07 lab_ joined, pmurias joined, [Sno] joined, [Sno] is now known as sno 14:10 lab left
[Coke] bartolin: nice fix on the jvm stuff. thank you. 14:10
14:11 Upasaka joined, pippo joined 14:15 zengargoylew joined
[Coke] bartolin++ 14:15
I have to admit, I was a little concerned when I started seeing the reverts coming through. :)
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␤»
psch changes are: signature for &h can't have |$, and the trait signature needs the Routine type for $r 14:18
but that's the one that didn't output anything in the ticket, except for those two changes
psch adds that to the ticket 14:19
14:20 kjs_ left
Skarsnik I need panda to have 14:21
oups
Debugger::UI::CommandLine
14:23 zhmylove left
nine Skarsnik: you shouldn't need panda for anything ;) 14:25
timotimo yeah. if not panda, then you can use zef :)
nine Or a simple -I or PERL6LIB
timotimo fair enough
cygx or 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:
timotimo nine: i wonder if -I will actually be in the commandline early enough for everything to find it 14:28
14:29 khw joined
Skarsnik does adding printf directly in moar C source work? or it's redirected? 14:30
timotimo it gets output to stdout
i usually fprintf(stderr, ...) 14:31
nine fprintf(stderr, ...) works but feels kinda dirty. I mean, this is C! It should at least involve 3 macros 14:32
14:32 kjs_ joined
Skarsnik xD 14:32
timotimo put macros between you and the ickyness that is C 14:33
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:34
jnthn Less is moar... :P 14:35
Skarsnik seriously, I like working with gstreamer/glib api for C, it's not that bad
arnsholt Seriously though, that's one of the best parts of jnthn-code. It's very clean and no real nuisance parameters 14:36
nine Skarsnik: that's so much to type, can't you write a macro for that? ;) 14:40
14:41 xinming_ joined 14:43 skids joined 14:45 xinming left
psch hm, does QASTCompilerMAST::BlockInfo give me a way of checking the name (if any) of the compiling block? 14:48
is that in the $qast it holds?
*$!qast
jnthn Yeah, I think that'll be a QAST::Block which has a .name property
14:48 xpen joined
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:51
jnthn wonders why it's using Int and not int for that math 14:53
14:53 molaf joined
timotimo what, sha256? 14:55
14:57 eliasr left
jnthn aye 14:58
15:00 softmoth_ joined
arnsholt timotimo: heim.ifi.uio.no/arnskj/test.p6 15:00
timotimo aha! arnsholt can immediately answer that! :)
arnsholt Why the code uses Int? I have no idea
timotimo it only does the sha256 once?
arnsholt Yeah, initially that was enough 15:01
timotimo do things you work with fit into 64bits?
arnsholt Since it took like a second or two to compute the checksum =)
The spec is defined in terms of int32
Except the message which is bytes, obv.
timotimo 2.7 seconds to parse the script %) 15:02
3 seconds to run the whole thing
so ... why is it that fast?
aren't we usually slow at things?
ok, running it a hundred times gives 18.3 seconds 15:03
15:03 bombless joined
ugexe Have any of the details of how hooks are to work been decided yet? 15:04
dalek osystem: f21a1f0 | (Kamil Kułaga)++ | META.list:
add github.com/teodozjan/path6-coverage

  github.com/teodozjan/path6-coverage Checks whether package name equals with module path
15:04 kjs_ left
ugexe uh what 15:05
a package name doesnt and shouldnt have any path requirement on the side of module author 15:06
15:06 zhmylove joined
brrt timotimo: haven't you heard, we have a jit and dynamic optimization :-P 15:07
sufrostico Hi 15:08
Can someone help me with this piece of code? 15:09
pastebin.com/4suLcdm9
arnsholt timotimo: The main piece of overhead was postcircumfix:<[ ]>, TBH
That and some metaops
sufrostico traying to work with start await and promises...
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:11 FROGGS_ left
ugexe i hope the answers to these questions dont come out a week before release... 15:12
timotimo ugexe: things like qt3 vs qt4 vs qt5 or gtk2 vs gtk3 15:13
brrt sufrostico, it looks sane enough to me 15:14
15:14 kjs_ joined
jnthn ugexe: Anything that uncertain in detail at this point is hardly likely to make it into 6.c. 15:14
(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)
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 isacloud left
PerlJam sufrostico: maybe if you showed more of your code, someone could spot something? 15:16
ugexe because Build.pm does not cut it
RabidGravy it approximately does and the hooks aren't implemented 15:18
15:18 isacloud joined
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...
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
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?
timotimo arnsholt: so at least a 50x performance improvement i'm guessing
it does not
arnsholt I must admit I didn't get quite carried away to looking at the bytecode =)
timotimo when big ints fit into 32bit, they take a slightly faster code path, though
but it will still allocate
dalek kudo/nom: cca5f27 | jnthn++ | src/Perl6/ (3 files):
Refactor trait handling.

Makes it easier to compile-time analyze a few traits that will need that, and also cleans up a good amount of code duplication, and error handling duplication.
15:20
arnsholt Oh, that's interesting
Maybe there's another win to be had in there, then
timotimo no, _I ops only work on real objects, and they are immutable. so every step still allocates 15:21
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
in a hand wavey kind of way
sufrostico PerlJam: just added the sub that should be executed async : 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
but that's far past christmas, i expect 15:25
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? :)
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
timotimo probably
could you put up your WIP in a branch or something? 15:29
15:29 rindolf left
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)
arnsholt arnsholt/libdigest-perl6 is the base of the PR I sent to grondilu++
Don't have any other commits beyond that 15:30
timotimo ah, i hadn't even seen that it's someone else's code
arnsholt Right, so that's MVM_SPESH_LOG=foo right?
timotimo yeah
sufrostico PerlJam: pastebin.com/hHKp7TXd
timotimo i usually just search for the string "Finished " in that resulting file 15:31
sufrostico sorry, ugly code in spanish
timotimo or for the filename of the script i'm working on
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?)
arnsholt Not to mention: What am I looking for in the output, when it's _i vs. _I I'm looking for?
Oh, the whole sub is seen as one, it looks like 15:34
[Coke] bartolin: need to add back in the "hang" parts of those commits. 15:36
I should have done those separately, sorry.
I'll get it if no one beats me to it.
Reminder: compiler release tomorrow
please insure the changelog is updated. 15:37
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:38
15:39 kjs_ left
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.
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
Maybe because the return type isn't int32? 15:41
[Coke] bartolin: No worries, I can just refudge those tests.
S03-operators/mix.t was one of them, I think
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
sufrostico: btw, I think it's neat that someone is using perl6 for "AI" :) 15:42
arnsholt Oh, cool. libsvm! 15:44
15:44 rindolf joined
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:45
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])
dalek ast: 7e9a101 | usev6++ | integration/advent2012-day10.t:
Change tests with 'like' to use description

  (the tests died with a NPE on JVM before, which is a known bug)
zengargoylew sufrostico: for @promesas>>.result -> $position, $fitness {
not sure since it's missing a file, and i don't speak spanish.. :) 15:50
but runs to apparent completion
15:50 dbrock- joined
zengargoylew so you should probaby fail if that external shell call fails.... 15:51
you're passing a $array to a function that takes a @array
timotimo arnsholt: with my local patch to moarvm sha256 gets jitted completely 15:52
arnsholt Oh, awesome!
zengargoylew and then you still need to get the .result from a promise after awaiting.
jnthn Also, do my @results = await @promises;
arnsholt timotimo: I'll just commitbit you on my fork of the repo and you can push directly
jnthn Rather than pulling .result out afterwards
15:52 domidumont1 joined
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?
arnsholt timotimo: Push away! 15:53
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 958cb3e | (Zoffix Znet)++ | mojo-app/ (3 files):
Make /repo/ URLs redirect to dist's repo
15:53 domidumont left 15:54 kjs_ joined
timotimo arnsholt: i could still implement isprime_I and coerce_nI 15:54
autarch anyone have any thoughts on this code ... github.com/autarch/perl6-Pod-NodeWalker - in particular, are these the right class & role names - also, is the code idiomatic?
timotimo meh. i'll leave it for later.
arnsholt The code is probably optimised well beyond the point of being a bottle neck at this point =) 15:55
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 12cbb54 | (Zoffix Znet)++ | mojo-app/lib/ModulesPerl6/Controller/Root.pm:
Docs for repo
timotimo also, i'll run a full spectest first. 15:56
arnsholt: you've been improving this code because it gets used for iperl6?
arnsholt Yup
timotimo i don't have a local patch to libdigest, though
15:56 xinming_ left
timotimo i think you misunderstood me :) 15:56
my patch is only to moar's jit
arnsholt Oooh, I see! =D 15:57
15:57 dbrock- left
timotimo it'd still be amazing if you could turn all of libdigest's sha256 to native int arithmetic 15:57
15:57 dbrock- joined
timotimo were you able to improve +| in this case? 15:57
15:57 domidumont joined
arnsholt Looking further at the log I think it gets speshed after all 15:57
But I'm honestly not entirely sure =) 15:58
timotimo hah
RabidGravy autarch, works for me :)
timotimo if you put it into a branch, i'll have a look myself
arnsholt The spesh log is a mite opaque =)
timotimo yeah, it's not that easy if you're just getting started with it
not only do i have experience looking at the speshlog, but i also know what all the opcodes do/are %)
Skarsnik is that clear enought? (I prefer asking, because I know I have issue expressing myself correctly x)) rt.perl.org/Ticket/Display.html?id=126675
arnsholt The opcodes are generally comprehensible, since I've worked on Snake and such 15:59
But the rest of it is pretty incomprehensible
But I guess what I want to be looking at is the stuff that comes after "finished specializing 'foo'"?
timotimo yeah
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>
arnsholt Actually: The sp_getspeshslot ops are pretty weird. What are spesh slots?
16:00 domidumont1 left
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>
timotimo a spesh slot is a gc-tracked thing that hangs off of a spesh'd frame
16:01 CIAvash joined, xinming joined
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
*code
arnsholt: Like if we need a type to serve as a guard clause, we tend to stash it in there
psch ...that shouldn't change though, should? i mean the distance to <unit> of a given block
+it
RabidGravy the cod of moar
timotimo cool, spectest's clean
cygx Skarsnik: the pastebinlink in the RT ticket is broken
arnsholt Right, right 16:02
Aha. The bitwise or gets inlined after spesh
timotimo arnsholt: we often stash methods/code objects we want to call in spesh slots, for example
ah. if it shows up as "an inlined thing" inside spesh, then it's not the static optimizer that does the inlining
Skarsnik cygx, oh yeah the ) take part of the ling ><
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
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 kjs_ left
arnsholt It does. That's how I knew it was inlined =D 16:03
16:04 xpen left
arnsholt Yeah, it said goto BB(8), so I figured looking at BB(8) would be an idea 16:04
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 12a0932 | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
Cleanup SASS
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
16:06 bombless left
timotimo no, we don't overflow from native ints to bigints 16:06
we require the user to explicitly use Int for that
from the very beginning
arnsholt Ah, right
jnthn Well, or not use types at all
timotimo but see above for future possibilities with extra code-gen
right
16:06 n0tjack joined
jnthn But yeah, opting into int is opting into native semantics 16:06
Is there a native candidate for +| ?
16:07 zakharyas left
timotimo yes indeed 16:07
multi sub infix:<+|>(int $a, int $b) {
jnthn Wonder why the (static) optimizer doesn't find/inline that one 16:08
arnsholt The result for rotr is here: gist.github.com/arnsholt/2701d2371693f6bbe46f
The code is "sub rotr(uint32 $n, uint32 $b --> uint32) { $n +> $b +| $n +< (32 - $b) }"
timotimo jnthn: lexref, i bet :P 16:09
arnsholt: can you see if rotr uses getlexref_i somewhere near the call to +| ?
dalek kudo/nom: 06729d9 | jnthn++ | src/ (2 files):
Move handling of `of` on variables to compiler.

This means that `my @a of int` works, as well as various other forms.
MadcapJake Working on adding highlighting for `L<...>` and `C<...>` expressions in pods. Take a look: twitter.com/MadcapJake/status/6670...9863897088 16:10
arnsholt Nope
dalek ast: dc03e10 | jnthn++ | S09-typed-arrays/native-decl.t:
Tests for `my @a of int`, which now works.
16:11
ast: 0a0690c | jnthn++ | S12-introspection/WHAT.t:
Fix now-passing `of Foo` tests on vars.
arnsholt timotimo: What do the "FH start/end" annotations refer to? 16:14
jnthn FrameHandler (exception handlers)
16:14 n0tjack left
arnsholt Right 16:14
Skarsnik MadcapJake, it look neat 16:15
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 3583f33 | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
Prevent multi-line wrap on dist name/logotype/GitHub icon on mobile
jnthn MadcapJake: I'm getting really tempted to try using Atom for a while to get this nice highlighting. :) 16:16
timotimo arnsholt: hell-bent on figuring this out by yourself rather than giving me a paste? :P 16:17
16:19 domidumont left, domidumont joined, gtodd joined 16:20 dwarring left, domidumont left
arnsholt timotimo: The spesh log exceprt for rotr is here: gist.github.com/arnsholt/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!
arnsholt The code is "sub rotr(uint32 $n, uint32 $b --> uint32) { $n +> $b +| $n +< (32 - $b) }"
16:23 brrt left
timotimo interesting. how is rotr called? 16:23
because rotr is compiled with a return_o
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?
ilmari are perl6's shift operators UB-safe for shift >= type-width?
timotimo can you find the caller of rotr in the spesh log?
what is UB?
arnsholt The return value usually goes to a var, but once is assigned to an array 16:25
ilmari timotimo: undefined behaviour
timotimo oh
not sure. on Int there is no >= type-width
ilmari shifting by more than the width of the shiftee is explicitly undefined behaviour in the C standard
sufrostico PerlJam, zengargoylew : the problem of the out of bounds position solved by using a for instead of a loop
:s 16:26
diakopter ^)^
arnsholt timotimo: The caller is the sha256 routine itself, so what am I looking for?
jnthn zengargoylew: Yes
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
anyway, with the "almost everything is int instead of Int" stuff, does it improve performance noticably? 16:28
also, i don't have a good before-after measurement for all my patches today for the test script
16:28 black_ant joined
diakopter ilmari: looks like it uses C's << :P 16:29
ilmari diakopter: yes
16:30 AlexDaniel joined
arnsholt timotimo: It didn't help much when I tried yesterday, but then again that was just one call 16:30
I can try several runs later
timotimo arnsholt: sadly, rotr doesn't get jitted because of how it handles its arguments :(
ilmari builds moarvm with -fsanitize=undefined
timotimo param_rp_i isn't implemented in the jit
diakopter interesting 16:31
timotimo it would be great if rotr could be inlined
arnsholt What can I do to change the argument handling?
\x?
timotimo i'm not up to snuff on argument handling
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: a74cc36 | (Zoffix Znet)++ | / (2 files):
Add missing prereqs into Build.PL
timotimo i'm not sure \x will work with native ints, actually. you can try it
arnsholt Yeah, broke the end result when I tried it last time =) 16:32
timotimo there's still postcircumfix:<[ ]> in my profile 16:33
i thought you turned these into .AT-POS?
they're not very expensive, thouhg
16:34 domidumont joined
timotimo ah, there's postcircumfix:<[ ]> further outwards 16:34
arnsholt Yeah, I skipped the ones outside the core loop 16:35
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␤»
timotimo that's not terribly bad anyway :)
arnsholt Yeah, those don't matter much
Oh, different thing you said
Yeah, that's pretty fast after all
timotimo m: say "infix:<(+)> runs with { 715 / 241536 } ms per invocation"
camelia rakudo-moar 06729d: OUTPUT«infix:<(+)> runs with 0.0029602 ms per invocation␤»
16:37 kyclark joined
timotimo STORE on the other hand ... 16:37
m: say "STORE runs with { 390 / 26112 } ms per invocation"
camelia rakudo-moar 06729d: OUTPUT«STORE runs with 0.014936 ms per invocation␤»
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? lpaste.net/145501
timotimo last time i checked, the REPL was very unhappy when binding was involved :( 16:39
so "known bug", i'd say 16:40
kyclark ah, OK, it runs as a script
Thanks.
jnthn Hm 16:41
It works locally
16:41 lichtkind joined
jnthn I remember fixing something along those lines some time back 16:41
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 630afed | (Zoffix Znet)++ | TODO-IDEAS.md:
Add builder script cleanup to TODO Ideas
timotimo kyclark: in that case, the question becomes "what's your rakudo version" 16:43
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)
timotimo heh
well, perl6 --version will tell you
diakopter shamebot
Skarsnik perl6 --version
kyclark [gila@~/work/rakudo]$ perl6 --version 16:46
Unhandled exception: Bytecode stream version too high
at src/vm/moar/ModuleLoader.nqp:51 (/usr/local/Cellar/rakudo-star/2015.03/languages/nqp/lib/ModuleLoader.moarvm::87)
from src/vm/moar/ModuleLoader.nqp:41 (/usr/local/Cellar/rakudo-star/2015.03/languages/nqp/lib/ModuleLoader.moarvm:load_module:85)
from <unknown>:1 (/usr/local/Cellar/rakudo-star/2015.03/languages/perl6/runtime/perl6.moarvm:<dependencies+deserialize>:39)
diakopter brewcry
timotimo wow, you have a zombie installation of rakudo there
or rather a frankenstein version
kyclark I may or may not know what I'm doing.
timotimo and 2015.03 is *really* old, you should probably throw that out of your Cellar there
16:47 abaugher left
kyclark Gladly. What's the Best Way to install? 16:47
sufrostico PerlJam, zengargoylew : working code... pastebin.com/8zgE4Wpd many thanks...
timotimo rakudobrew is very good; find it on github.com/tadzik/rakudobrew
it's for installing rakudo inside your home directory and keeping it up to date 16:48
16:48 yqt joined
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: dad765b | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
Fix column sorter icons covering th text
16:48
RabidGravy it will do that if you're in a abuild directoty of a different version than you have in your ppath
sufrostico PerlJam, zengargoylew: the problema was that i forgot that the passing of parameters is by reference... not by value
16:49 abaugher joined
timotimo arnsholt: my simplistic measurements tell me jitting these extra bitops was worth almost nothing at all :( 16:50
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"...
flussence timotimo: it all adds up :)
16:52 sprocket joined
zengargoylew sufrostico: cool 16:53
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:54
sufrostico PerlJam: Sounds nice.. I'll try 16:55
16:55 abraxxa left
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 79ebd83 | (Zoffix Znet)++ | README.md:
State browsers we support (same as on perl6.org)
16:56
PerlJam sufrostico: if you want ton contribute to the advent calendar, give me an email and I'll send you an invite 16:57
er, s/ton/to/
arnsholt timotimo: Oh, that's a shame
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 6f5ae3e | (Zoffix Znet)++ | README.md:
Make links actually clickable
16:58
16:59 aaaa joined
dalek href="https://perl6.org:">perl6.org: 263a312 | (Zoffix Znet)++ | README.md:
Reword browser support paragraph

Contributors do not *have* to use those two specific testing sites. Make that more clear
16:59
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:00
jnthn pmurias: Will look a bit later; thanks. 17:01
17:01 domidumont left
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:02
jnthn Right 17:03
MadcapJake m: my $str = q:heredoc/END/ hello world END; say $str;
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…»
jnthn But you can put other options either side of the to and heredoc
q:c:heredoc/END/ and q:heredoc:c/END/ are equivalent
MadcapJake so you *can* use `heredoc` instead of `to`? 17:04
PerlJam aye, it's slightly better documentation 17:05
TimToady most of the Q options have both a short and a long form
jnthn MadcapJake: yes
17:05 zhmylove left
TimToady m: my $foo = 42; say Q:double [$foo] 17:06
camelia rakudo-moar 06729d: OUTPUT«42␤»
MadcapJake Anyone know what synopsis this is in? I want to capture all the possibilities. 17:07
found it, in S02
TimToady see S02:3799
hoelzro o/ #perl6 17:08
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:11
17:12 molaf_ joined
TimToady well, could start with qq, or any of those with a single extra option glued on 17:12
sprocket hello p6! 17:13
TimToady qqv or Qww
o/
b2gills TimToady: I think you broke the `[+] 1..10**10` optimization when splitting up &sum with github.com/rakudo/rakudo/commit/ee...8d2bae370d
sprocket just wanted to say that i’m thoroughly enjoying grammars - those things make life a whole lot easier
b2gills m: say [+] 1..10**10
17:13 molaf left
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 :)
camelia rakudo-moar 06729d: OUTPUT«(timeout)»
TimToady b2gills: so it would seem
dalek kudo/nom: 29cc3c2 | jnthn++ | src/ (3 files):
First 80% of supporting `is SomeType` on vars.

Works for my/state/has declarations, though we need a little more work to address not getting sufficiently fresh state (which also needs the same engineering that shaped array declarations need).
TimToady I wonder how it still passes the test?
17:15 lucasb joined
b2gills It calls the List one I suppose 17:15
jnthn my @a is buf8; @a[0] = 1; say @a # works after 29cc3c2 :)
MadcapJake so it would be like (green)[qQ](red)q|w|x|...(white)<delimiter>(green)<string contents>(white)<delimiter> 17:16
PerlJam jnthn++
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 :) &
pmurias hoelzro: \o 17:18
17:18 mr_ron left
hoelzro o/ pmurias 17:19
17:19 woodruffw left
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 9e7207d | (Zoffix Znet)++ | mojo-app/public/sass/main.scss:
[layout] Handle overly long dist names
17:20
timotimo sweet, jnthn :)
TimToady b2gills: ah, the test is on the method, not the sub; good catch
17:21 kyclark left
pmurias hmm, jvm doesn't seem to implement support for tty checking :/ 17:21
b2gills TimToady: I just tried 「[+] 1..10**100」 and noticed it took significantly longer than 0 seconds 17:22
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:23
b2gills I'm trying having both :(\SELF) and :(+SELF) right now 17:24
17:24 woodruffw joined 17:25 pippo left
TimToady if that doesn't work, try \ and ** 17:25
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:26
17:27 dbrock- left, dbrock- joined
b2gills The problem is :(**SELF) doesn't work, you have to use :(**@SELF) in that case 17:27
17:27 domidumont joined
b2gills Adding :(\SELF) back in does work ( I am not sure why though ) 17:28
timotimo arnsholt: it seems like turning the jit off completely makes the whole thing only barely slower 17:29
17:29 domidumont left
Skarsnik Interesting I updated rakudo and my code that leaked, still leak, but slowier x) 17:30
TimToady parse phase seems rather slow again 17:31
dalek ast: fdd2f41 | usev6++ | S05-modifier/repetition (2 files):
Fudge some more tests failing with UnwindException
17:32
TimToady b2gills: I have some tests for sum() now, and they pass with your fix 17:33
b2gills I'm working on a pull request 17:34
TimToady I could just check in what I have
moritz m: say [+] 0..^5
camelia rakudo-moar 29cc3c: OUTPUT«10␤»
moritz m: say [+] 0..4
camelia rakudo-moar 29cc3c: OUTPUT«10␤»
moritz m: say [+] 0..4.1
camelia rakudo-moar 29cc3c: OUTPUT«10␤»
moritz m: say [+] 0..^4.1
camelia rakudo-moar 29cc3c: OUTPUT«10␤»
17:34 sprocket left
TimToady moritz: yes, we test for all those :) 17:34
the trick being to recognize when the endpoint is already excluded, and don't do it twice 17:35
moritz m: say (-2)^..2
camelia rakudo-moar 29cc3c: OUTPUT«-2^..2␤»
moritz m: say [+] (-2)^..2
camelia rakudo-moar 29cc3c: OUTPUT«2␤»
moritz m: say [+] (-2.01)^..2 17:36
camelia rakudo-moar 29cc3c: OUTPUT«1.96␤»
17:36 domidumont joined
TimToady hmm 17:36
well, that doesn't use the range optimization
17:37 lucasb left
dalek ast: 8f09611 | TimToady++ | S03-operators/range-int.t:
test for sum() as well as .sum
17:38
17:38 zengargoylew left
dalek kudo/nom: 73485c4 | TimToady++ | src/core/Any.pm:
add \SELF case to sum(), from b2gills++
17:39
17:39 zengargoylew joined
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:40
17:45 ginkoms joined 17:55 dha joined 17:59 cygx left 18:02 zengargoylew left, zengargoylew joined
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 838227a | (Zoffix Znet)++ | / (90 files):
Merge mojo app and db-builder dirs

Because turns out we can! This will also greatly simplify deployment
18:05
[Coke] bartolin: down to 432 jvm failures on a local run - about 10% of yesterday's numbers. 18:06
18:06 FROGGS joined 18:07 pmurias left
timotimo oh wow, 90% of the failures got fixed? 18:08
that's great!
[Coke] this is why we need clean test runs on a regular basis. :| 18:09
FROGGS o/ 18:10
18:10 diana_olhovik joined, diana_olhovik left 18:11 dakkar left
timotimo BBIAB 18:11
18:12 diana_olhovik joined, abaugher left 18:15 abaugher joined
Skarsnik I found my leak, it's in XML::Element::elements method (I think) 18:20
18:20 xfix joined, diana_olhovik left
Skarsnik gist.github.com/Skarsnik/9d66920ad3f04362388e if someone want to try to figure why x) 18:21
18:30 spider-mario joined
timotimo does the xml library you're wrapping have some sort of memory management interface? 18:30
dha Hm. building rakudo from git repository and this test is failing: t/04-nativecall/13-union.t 18:31
Anyone seen that before?
timotimo on windows nativecall tests are known to fail, iirc 18:32
dha Huh. When I run the test by itself, it passes. Also this is OS X 18:33
timotimo ugh. hooray.
dha tries make test again for fun.
Ok, so it passes when run by it self, but fails during a full make test. Someone should probably look into that. :-) 18:34
timotimo doesn't fail on my box :| 18:37
dha Hm. :-/ 18:38
oh well, maybe I'll try to look at it again later. 18:39
18:39 dha left
[Coke] split(:all) seen at: gen/jvm/CORE.setting, line 9788 18:48
Please use split(:v) instead.
18:49 black_ant left 18:50 modcure joined, mrf left
modcure when will Perl 6 be production ready ? 18:51
nine modcure: couple of weeks
PerlJam modcure: It's production ready now for many tasks 18:52
nine PerlJam: just tried a new answer ;)
PerlJam nine: aye, I'm just back filling :)
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
modcure For the web(connect to database, display results) and/or shell scripts to parse files and connect to database... 18:54
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;"?
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...
PerlJam Juerd: style advice? The first one gives $foo a type, the second essentially doesn't. That may matter in the long run.
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.
modcure I currently use Perl/Mason for web development and Perl for shell scripts
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?
pink_mist oh god no, don't use Mason
[Coke] the core language is pretty stable. After christmas, I'm sure a lot of work will go into improving the ecosystem.
PerlJam Juerd: I don't know about best, but I'd choose the latter in that case probably.
modcure pink_mist, love Mason :) been using Perl/Mason for 13 years and never had any issues.. 18:58
PerlJam modcure: ever used Dancer?
modcure thanks all. I will download Perl6 on my local system to start learning it. love to learn.
Juerd Or maybe even "my $foo := Supply.new;" :)
flussence looks at the docs for Mason, not knowing what it is... heeeeey, this looks familiar. 18:59
Juerd In fact, I'm probably under-using := and should probably get used to it anyway. 19:00
:= is neat.
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 ... :)
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:01 molaf_ left
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 github.com/grondilu/libdigest-perl...a1ded60f1d
mspo mojolicious is the way
Ulti not for Perl 6 it's not
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
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 modcure left
Ulti for web stuff: github.com/supernovus/perl6-web/ github.com/tokuhirom/p6-Crust github.com/tadzik/Bailador/ github.com/shoichikaji/Frinfon 19:05
MadcapJake woot, just built a rule for heredocs that actually works and still highlights the rest of the line normally! 19:06
jnthn back
nine flussence: for web templates, I'm really sold on metacpan.org/pod/Petal 19:07
19:07 aaaa left
flussence that looks neat 19:08
19:08 modcure joined
dalek kudo/curli: 31db551 | (Stefan Seifert)++ | src/core/CompUnit/ (2 files):
Don't load outdated precomp files from Repository::FileSystem

Always look for the source file and check its modified time stamp against the precomp file one's.
19:08
nine That ^^^ was much easier than I expected.
[Coke] r: $_ = "a b"; ss/a b/w/ ; say "alive" 19:09
camelia rakudo-{moar,jvm} 73485c: OUTPUT«alive␤»
[Coke] ... local jvm gives:
java.lang.RuntimeException: Cannot access a native attribute as a reference attribute
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.
Hotkeys Is there anything that anyone is longing for in the ecosystem
[Coke] Hotkeys: github.com/perl6/perl6-most-wanted...modules.md 19:11
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 08c0e37 | (Zoffix Znet)++ | / (9 files):
Manage fallout from dir merge
ugexe the p6 equivilent of gofmt 19:12
bartolin [Coke]: I also get that exception locally ('Cannot access a native attribute ...')
jnthn nine: Does 31db551 handle transitive deps properly?
Ulti Hotkeys crypto I think is a big one 19:13
since you basically need it for doing anything serious on the web now
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...
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
Also, there's a pointless change in my PR which I forgot to remove
19:15 gtodd left
jnthn nine: Well, I speculated a dependencies file for Installation for that 19:15
dependencies # Pairs of short-name to short-name SHA-1s
nine jnthn: but where do we get that information from? 19:16
jnthn: that part may actually be easier for the FileSystem repo, since it can just record those dependencies while recursively precompiling
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?
bartolin [Coke]: my latest spectest run on JVM gave 401 failing tests. shall we try to get it further down?
FROGGS nine: hmmm 19:19
bartolin [Coke]: the actual question seems to be: shall we keep the policy 'only fudge with RT number'?
jnthn nine: We'd collect/store them at module installation time for the installation one, again during the precompilation phase
PerlJam MadcapJake++
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:20
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
Juerd Is there a way to .decode with fallback characters when the given data is not well formed?
jnthn nine: And it spits out (to a file, or stdout, or something) such info
Juerd: Not yet; replacement chars for encode got done just a week or two ago by ilmari++. 19:22
Juerd Oh. Darn.
jnthn Juerd: What's your use case, ooc?
You can try :enc<utf8-c8>
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.
jnthn ;)
19:22 crucialrhyme joined
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 :)
What's utf8-c8?
jnthn If it encounters something that's not valid UTF-8, it uses NFG synthetics to store the octets.
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.
nine jnthn: variable declarations? Oh that's really a fringe feature. Perfectly suited for changing a couple of weeks before 1.0
Juerd Ah, great, that suffices for now.
jnthn (Provided you encode with utf-c8 again)
[Coke] bartolin: I prefer an RT, but am happy for now to have something like "rakudo.jvm skip '<one line exception message>'
grondilu wonders if we shall have an 'inline' trait as in C
[Coke] (like I gave up and started doing with NPE) 19:25
Juerd github.com/Juerd/p6-mqtt/blob/master/mqtt.p6 # Getting the hang of it.
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
Juerd I really love supplies.
19:26 cygx joined
cygx FROGGS: github.com/rakudo/rakudo/pull/591 # makes v5 work again 19:26
nine jnthn: if we screw that up we can still go as purely functional language. Multi paradigm FTW! 19:27
jnthn ;)
[Coke] bartolin: gist.github.com/coke/dd7015735ce2de1a5ec9 - tests that are dying instead of just failing, with # of impacted tests.
last 2 are the same error I just mentioned. 19:28
19:28 sprocket joined
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*.
dalek kudo/nom: 70c7a23 | cygx++ | src/Perl6/Grammar.nqp:
unbreak v5
19:30
kudo/nom: 95172f4 | FROGGS++ | src/Perl6/Grammar.nqp:
Merge pull request #591 from cygx/v5

unbreak v5
FROGGS cygx++ # that's awesome!
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 :(
cygx FROGGS: needs the v5 unrot branch, of course 19:31
bartolin [Coke]: yeah, I have a similiar list :-)
FROGGS cygx: how far advanced is it?
19:32 espadrine_ left
cygx FROGGS: advanced in what way? compared to v5 master? 19:32
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
camelia rakudo-moar 73485c: OUTPUT«1␤»
grondilu arnsholt: ^seems to work
FROGGS cygx: I guess I'm asking if I should merge it now 19:34
nine jnthn: do you think it's realistic do do in-process precompilation? 19:35
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…»
cygx FROGGS: haven't really done any testing yet, but it's less broken than current master at least
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
camelia rakudo-moar 73485c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jB6BMyLcaS␤Unknown QAST node type QAST::Unquote␤at /tmp/jB6BMyLcaS:1␤»
FROGGS cygx: k, will merge
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
readability?
dalek ast: 88fa5d0 | usev6++ | S05-metasyntax/charset.t:
Fudge tests for ignorecase and character ranges for JVM
19:38
FROGGS cygx: done, thanks again :o)
arnsholt grondilu: Oh, neat! 19:39
cygx my pleasure
with hindsight, it really was a simple fix
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? pastebin.com/XsTEWtNr
19:40 dha joined
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:42
19:43 vendethiel joined
grondilu arnsholt: well that's LTA. 19:43
dalek p: 82b7eba | FROGGS++ | tools/build/MOAR_REVISION:
bump moar rev for cstruct alignment fix
19:44
grondilu maybe postcircumfix:<[]> should be a macro (!?)
arnsholt Yeah, it's really ugly, but it killed a whole load of overhead
gfldex crucialrhyme: i would try to stick $tagged.chars into it's own variable 19:45
Hotkeys I was thinking this too ^
I wasn't sure though 19:46
japhb arnsholt: Where's the current version of your code?
ugexe would it be faster to my @t = $tagged.comb; and then iterate @t instead of calling .substr so much? 19:47
19:47 ab6tract joined
Juerd Does Perl 6 have quotemeta? 19:48
dalek kudo/nom: deeec10 | FROGGS++ | t (2 files):
add test for RT #126675, bump nqp
ast: 0607677 | usev6++ | S15-unicode-information/uniname.t:
Fudge tests for 'uninames of Str' RT #126678
nine Juerd: nope 19:49
Juerd Oh...
nine I really hope you don't actually need it
Juerd Well... There would be ways around it, but having it would have been much easier.
japhb Juerd: It's not needed for interpolation into regexen, if that is your fear.
nine What do you want to use it for? 19:50
dha Juerd - for what i was able to glean on quotemeta, see doc.perl6.org/language/5to6-perlfunc#quoting
(possibly a bit out of date, but I don't think anything has changed in this particular area)
Juerd github.com/Juerd/Net-MQTT-Simple/b...pm#L35-L49
japhb Juerd: We force the programmer to explicitly say that they want to interpret interpolated regex metacharacters; by default they don't.
Juerd There I translate an MQTT filter into a Perl 5 regex
dbohdan Is anyone working on a PCRE-like library for Perl 6 grammars?
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.
crucialrhyme gfldex: that shaved off about half a second
arnsholt japhb: The SHA code? grondilu++ merged it into the repo just a little while ago, so you can just get the main one
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 :)
japhb Juerd: Given my comment above ... if you are creating a Perl *6* regex, you don't need to worry about the quotemeta stage.
TimToady Fixed That.(tm) 19:53
Juerd japhb: I'm creating one programmatically...
Which opens a whole new can of worms perhaps.
cygx FROGGS: so, v5 fails precompilation and the sanity test, the latter probably still to more misplaced `is rw` annotations
(my test case was just a basic `use v5; print $^O`)
dalek ast: 953aca0 | usev6++ | S06-signature/slurpy-params.t:
Fudge test for JVM, RT #126493
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!
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 :(
My original approach was a hack, but an efficient one that took only a few lines of code.
cygx FROGGS: if you have better things to do, I'll see if I can do something about that by Christmas
Hotkeys is there a perl 6 style guide
arnsholt japhb: github.com/grondilu/libdigest-perl...282b638e5e is the commit
japhb arnsholt: Thanks! :-)
gfldex crucialrhyme: did you try to change update_dict(Int %dict, Str $w) to update_dict(%dict, Str $w)? May skip a type check.
arnsholt The important stuff is the stuff inside the loop 19:55
FROGGS cygx: if you want to do that, sure, go ahead :o)
japhb arnsholt: I assume you mean the innermost one with the AT-POS usage.
Hotkeys and/or a wonderful list of idioms
FROGGS cygx: I want to spend the little time I have fixing RT tickets
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?
arnsholt Yeah, AT-POS and a couple of metaops I flattened out
nine crucialrhyme: a common misconception
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
FROGGS crucialrhyme: this might be the case in future
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
Juerd Oh, uh, how does one generate a regex with code? 19:59
cygx
.oO( EVAL! )
Juerd I got started by generating a string, but... I'd need quotemeta :)
gfldex Juerd: that might be a good use for macros. 20:00
Juerd Really?
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 :-)
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}++`
Juerd I'm reading S05 but I can't find it
jnthn Juerd: <$str>
cygx is there a p6-equivalent of nqp::eqat?
Juerd Ah, the spec said "to interpolate a Regex object" :)
Juerd tries 20:05
jnthn cygx: yes, but I can't remember what it's called :P
PerlJam isn't that index? 20:06
or perhaps substr() plus the eq op
20:07 vendethiel- joined
cygx PerlJam: cf crucialrhyme's comment a few lines up of substr being a problem 20:07
PerlJam ah
20:08 vendethiel left
dalek ast: a8fe0ec | usev6++ | S06-operator-overloading/sub.t:
Fudge test for JVM: TTIAR
20:09
dha I think I wondered about this before, but got no input....
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)..."
What is an "item" variable?
I don't believe the term is used or defined anywhere else. 20:11
gfldex crucialrhyme: have a look at github.com/rakudo/rakudo/blob/nom/...r.pm#L2068
crucialrhyme: you may be able to inline that by hand 20:12
cygx is a BagHash optimized compared to an ordinary Hash? 20:14
dalek ast: 6c2e1b4 | jnthn++ | S09-multidim/decl.t:
Fix a test thinko.
ast: e3df384 | jnthn++ | S02-types/is-type.t:
Some tests for `my $foo is SomeType`.
20:15
grondilu the macro seems not happy with «⊕=» construct
m: macro infix:<m+>($a, $b) { quasi { ({{{$a}}} + {{{$b}}}) % 7 } }; my @a = 1, 2; @a «[m+]=» (1, 1);
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␤␤»
dalek ast: ce6b79c | usev6++ | S06-signature/sigilless.t:
Fudge test for JVM, only failing with harness
20:16
grondilu or simpler: 20:17
m: macro infix:<m+>($a, $b) { quasi { ({{{$a}}} + {{{$b}}}) % 7 } }; my $x = 5; $x [m+]= 4;
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␤␤»
grondilu though I suspect that's just NYI
crucialrhyme gfldex: nope, i just made it slower, although admittedly maybe i did a bad job of using the nqp stuff 20:19
20:19 zhmylove joined
flussence ran that trigrams script and the profiler said 96% JITted... seems awfully slow given that number. 20:20
20:20 darutoko left 20:23 diana_olhovik_ joined
crucialrhyme cygx: switching to a BagHash just shaved another 3s off 20:24
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:25
20:26 kaare_ left
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 3d9fb25 | (Zoffix Znet)++ | web/lib-db-builder/P6Project (2 files):
Toss SpriteMaker

We can now use AssetPack Mojolicious plugin right in the app
20:26
kudo/nom: 019bf1b | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
Fix p6typecheckrv for r-j.

Failure does not violate declared return types, so we can't throw a TypeCheck::Return when we get it. Fixes RT #126673.
psch xmas tickets are too hard :l 20:27
jnthn Tell me about it... :P
psch although all those phasery bugs probably will have lots of fallout for r-j too 20:28
or well, change behavior at least... 20:29
bartolin psch++ (and of course jnthn++)
20:30 domidumont left
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 34e103e | (Zoffix Znet)++ | web/morbo:
Tell Morbo to watch the db and conf
20:30
kudo/nom: 0b228c9 | jnthn++ | src/Perl6/ (2 files):
Support shapes on my decls; improve `is ContType`.

Things like `my %h is BagHash` now properly gets a fresh BagHash each time.
20:33
kudo/nom: d410e34 | jnthn++ | t/spectest.data:
Run S02-types/is-type.t and S09-multidim/decl.t.
20:34 abaugher left
jnthn $ perl6-m -e "my @a[2]; @a[3] = 42" 20:34
Index 3 for dimension 1 out of range (must be 0..1) in block <unit> at -e:1
\o/
20:34 abaugher joined
jnthn heh, that error has an off-by-one... 20:35
Oh no it doesn't
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"
jnthn My brane has an off-by-one
Juerd: You have to declare it "our sub bar ..." to make it available that way
Juerd Hmmm... Oh. 20:36
Thanks. Useful in this case, but I foresee issues with many kinds of quick hacks that I do :(
grondilu does this fixed-size arrays come with a performance gain?
*do these ... come*
jnthn grondilu: "It depends" 20:38
grondilu: And given I'm mostly caring about making them work at all right now, unlikely. 20:39
grondilu: In the longer run, yes, accessing a multi-dim array will work out faster than accessing nested ones.
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 :)
grondilu m: my $str = "^foo"; say rx/$str/.perl; 20:41
camelia rakudo-moar 019bf1: OUTPUT«rx/$str/␤»
grondilu hum
m: my $str = "^foo"; say rx/<$str>/.perl;
camelia rakudo-moar 019bf1: OUTPUT«rx/<$str>/␤»
20:41 diana_olhovik_ left
cygx crucialrhyme: gist.github.com/cygx/84b6245ac28213a8667f 20:41
Juerd I guess I could EVAL it... :)
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;
camelia rakudo-moar 019bf1: OUTPUT«"^foo"␤»
20:42 eliasr joined
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 . gist.github.com/gfldex/e8469ad25ee559e7c8ca
Juerd dha: What do you mean?
dha: I have a function that returns a generated regex
20:43 zengargoylew left
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.
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␤␤»
gfldex why does it got Str?
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
We should probably whine about them until we can do them properly
psch (i'm guessing str might be missing a few things a hash key needs to be able to do, too)
gfldex cries bitter tears
20:47 Peter_R joined
crucialrhyme gfldex cygx thanks! that is an improvement 20:47
gfldex is that LTA then and needs rakudobugging?
20:49 geraud joined
[Coke] hub.docker.com - rakudo-star has 48.8K pulls. 20:50
hoelzro \o/ 20:51
ugexe rakudo has 665 stars...
20:53 crucialrhyme left 20:54 johan joined
Skarsnik Is there some way track what the GC does? I try to find why this grow in memory for each loop : gist.github.com/Skarsnik/9d66920ad3f04362388e 20:55
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 1dc95aa | (Zoffix Znet)++ | web/ (2 files):
Make building in an output dir actually work
20:56
Hotkeys Is there an easy way to unload modules or is that a messy thing to do 20:58
Looking for a good way to do a plugin system 20:59
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: b172de2 | (Zoffix Znet)++ | web/templates/layouts/default.html.ep:
Fix link to the build log
Skarsnik Hotkeys, hm tricky if the module export stuff I believe, or maybe when you reload them with requiere it get erased 21:04
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
dalek kudo/curli: 7bbe2ef | (Stefan Seifert)++ | src/core/CompUnit/ (2 files):
Record the transitive dependencies of modules precompiled by FileSystem

Write the list of transitive dependencies to a "dependencies" file during precompilation in Repository::FileSystem. This can later be used to check the modification times of all transitive dependencies.
PerlJam S11 somewhere
21:07 CIAvash left
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:08
dha Looks like C<need> could use some more extensive documentation. 21:10
jnthn use = need + import 21:12
(roughly :))
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
jdv79 is london more expensive than nyc? sure seems it but i've only been here a few hours. 21:14
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. :)
Juerd (In case anyone cares, github.com/Juerd/p6-mqtt/blob/master/regex.pm and github.com/Juerd/p6-mqtt/blob/master/t/regex.t)
21:16 colomon left
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
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:19
Juerd The Perl 6 version is only 60x slower 21:20
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
*after
diakopter___ Juerd: that's within expectoration distance
Juerd diakopter___: Yes, I'm positively surprised. Expected much worse.
Especially since this is very, very heavy on regexes, and Perl 5 is known for its incredibly fast regexes. 21:22
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:24
dalek ast: 34d8a07 | usev6++ | S (2 files):
Fudge tests for JVM, RT #126679
21:25
ast: 24283a2 | usev6++ | S32-str/split.t:
Fudge more tests for JVM, RT #126679

Fudging is imprecise in this case due to the use of subtests
gfldex .oO( Perl 6 is faster then c)
Juerd gfldex: Huh?
TimToady but is it faster than c²?
gfldex well it will be some time after 6.c 21:26
grondilu is not sure what 6.c means, guesses 6.christmas 21:27
21:28 telex left
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;
camelia rakudo-moar d410e3: OUTPUT«42␤Partially dimensioned views of arrays not yet implemented. Sorry. ␤ in block <unit> at /tmp/2HVsx0MMvA:1␤␤»
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
jnthn m: my @a[3;3]; @a[1;2] = 42; say @a[1;2]; @a[2;4] = 100;
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␤␤»
jnthn Yays :)
TimToady: Still got more to wire up and incorporate, but you can at least now declare and index multi-dim arrays :) 21:29
TimToady \ö/
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
camelia rakudo-moar d410e3: OUTPUT«(BagHash)␤»
21:30 telex joined
jnthn This too, finally :) 21:30
Juerd Is there a way to force three values into a sub that expects 2 arguments? :P 21:31
Never mind that. It's a silly question.
dalek ast: b8191b7 | usev6++ | S15-literals/identifiers.t:
Fudge tests for JVM: Unicode literals
21:32
Juerd I should probably rethink the way I'm passing things to this supply anyway.
Currently passing arrays, and unpacking them in the signature. But there's this third value that you're typically not interested in. :(
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…»
jnthn Juerd: Use *@ at the end of the unpacking subsignature to discard other things? 21:34
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
21:35 colomon joined
Juerd I'm exposing a Supply, they can tap. 21:35
There's no signature unpacking for hashes, is there? 21:36
diakopter___ m: my %h is Hash[Hash]; say %h.WHAT
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…»
diakopter___ m: my %h is Hash of Hash; say %h.WHAT
camelia rakudo-moar d410e3: OUTPUT«(Hash[Hash])␤»
diakopter___ jnthn: is my %h is Hash[Hash] supposed to work
dalek ast: dbbab0e | usev6++ | S04-phasers/pre-post.t:
Change fudging for JVM to 'skip', RT #124961
diakopter___ m: my Hash[Hash] %h; say %h.WHAT 21:37
camelia rakudo-moar d410e3: OUTPUT«(Hash[Hash[Hash]])␤»
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?
diakopter___ m: my ::Unicccc %h; say %h.WHAT
camelia rakudo-moar d410e3: OUTPUT«Method 'instantiate_generic' not found for invocant of class 'Hash[Unicccc]'␤ in block <unit> at /tmp/Qprvr7GDDV:1␤␤»
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␤»
diakopter___ masak: I need your [WEIRD] (or at least [ANNOYING]) submitter
jnthn diakopter___: I don't think Hash[Hash] is parsing like you think. 21:40
It won't work, anyways.
is Hash of Hash is the right way
diakopter___ okie
21:40 luis joined
jnthn *sigh* Why is people's first instinct to feed random shit to the compiler... 21:40
diakopter___ only some people's 21:41
jnthn Indeed.
diakopter___ first instinct, and fourth instinct, and fifth...
jnthn Juerd: You can unpack hashes. 21:42
Juerd: As named params
Juerd: You could wrap the thing up before passing it to tap, if that helps. Maybe by subclassing Supply even :)
Juerd I can't find documentation on unpacking hashes. 21:43
What do you mean by wrapping up?
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: bf252f1 | (Zoffix Znet)++ | Build.PL:
Add IO::Socket::IP 0.37 to prereqs

Versions earlier than 0.31 cause cryptic error messages down the food chain
21:44
jnthn m: sub foo((:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2 }
camelia rakudo-moar d410e3: OUTPUT«1␤2␤»
Juerd Thanks :)
jnthn Juerd: Are you exposing things for the user of your module to .tap?
Juerd m: sub foo((:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 }
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␤␤»
Juerd Aw :)
dalek ast: ddbbc84 | usev6++ | S06-advanced/return.t:
Fudge for JVM, RT #126673
21:45
jnthn Nah, that'd need a *% there
psch m: sub foo( %h (:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 }
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␤␤»
psch m: sub foo( *%h (:$bar, :$baz)) { say $bar; say $baz; }; foo { bar => 1, baz => 2, hoping-this-will-be-ignored => 3 }
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␤␤»
psch vOv
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.
psch &
Juerd jnthn: Having ", *%" in code by users would be ugly. 21:46
I've now moved the ugliness to the hash, so -> $topic, $message { say "$topic: $message" } became -> { say "{ .<topic> }: { .<message> }" } 21:47
That's doable :)
21:47 rurban joined, rurban left
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.
For APIs with callbacks, it would be nice to have a way to force-feed more arguments :) 21:48
dalek ast: 35504df | usev6++ | S06-signature/type-capture.t:
Fudge for JVM, RT #126383
Juerd Especially if you want to introduce more arguments, but keep backwards compatibility with the previous version. 21:49
Perl 5 handles this nicely by not caring about almost anything.
zengargoyle TimToady: can i pick you brain about some POD questions?
dalek ast: 26e82b7 | usev6++ | S06-advanced/callframe.t:
Fudge for JVM, NPE for RT #77752
21:52
21:53 ZoffixW joined
dalek ast: e922c94 | usev6++ | S06-currying/misc.t:
Fudge for JVM: NPE in sub 'is-primed-call'
21:55
href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 4d0dc28 | (Zoffix Znet)++ | web/build-project-list.pl:
We are already cleaning old logotypes before the build
grondilu m: say 1_00; # I was expecting a "malformed integer literal" here 21:58
camelia rakudo-moar d410e3: OUTPUT«100␤»
grondilu (as a warning at least)
ZoffixW grondilu, not sure about P6, but in P5, you can use _ in digits.. Makes stuff like 1_000_000_000 more readable.
21:58 luis left
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 skids left
PerlJam grondilu: neither P5 nor P6 care how you group them 21:59
grondilu ok 22:00
PerlJam though ...
m: say 1__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␤␤»
PerlJam yep. both P5 and P6 complain when you place them next to each other 22:01
m: say 1._00
camelia rakudo-moar d410e3: OUTPUT«Method '_00' not found for invocant of class 'Int'␤ in block <unit> at /tmp/W4YjDat02f:1␤␤»
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␤»
PerlJam (also sane :)
zengargoyle not everybody groups by 3 digits
PerlJam especially if you're using octal or hex
jnthn 'night, #perl6 22:03
ZoffixW night
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 xfix left, luis joined 22:06 cygx left
bartolin [Coke]: that would make about 120 failing test left. but I'm heading to bed now ... o/ 22:06
22:11 RabidGravy left, colomon left
dalek href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 8c915a7 | (Zoffix Znet)++ | web/lib/ModulesPerl6/Model/ (2 files):
Adjust path to db file relative to bin
22:12
kudo/curli: 11efa61 | (Stefan Seifert)++ | src/core/CompUnit/ (3 files):
Check transitive dependencies when loading a precomp file

With this automatic precompilation in CompUnit::Repository::FileSystem should be safe for general usage.
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.
ZoffixW nine++ 22:14
PerlJam nine: when does that get merged back into nom? :)
Skarsnik Juerd, when did you get thise? 22:15
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.
diakopter___ nine: how much faster? [morbidly curious]
ZoffixW From the P5 grapevine, if anyone wants to kick up an idea: www.learning-perl.com/2015/11/shoul...ng-perl-5/ 22:17
Skarsnik ZoffixW, damn that a legit concern 22:18
ZoffixW *phew* modules.perl6.org/mojo-app finally builds correctly on my demo box \o/ 22:19
22:20 fjk joined
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
dalek kudo/curli: 45fd6a6 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm:
Need to unlock the store if modification time check failed
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
_sri_ it's not too late to change the name from Perl 6 to something else
22:22 fjk left
_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
PerlJam ZoffixW: this is might be a good strategy for P6 ;>
22:24 vendethiel- left
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
Renaming P6 won't solve much at this point.
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
PerlJam Perl 6 might be de facto called Rakudo if enough people just start doing that (no matter what anyone else says/thinks/wants)
dha ZoffixW - I'm not sure I agree, but it appears to be a moot point.
diakopter___ ZoffixW: I'd challenge that claim; how do you know there are all these pissed-off P5 devs?
pink_mist and I agree with _sri_ here
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?
ZoffixW Juerd, unpacking args? dunno
dha diakopter___ - oh, you just have to talk to them. They'll make it quite clear that they're pissed off. :-)
ZoffixW I saw that a few times, but forget what was causing it
PerlJam Juerd: boxing is putting a raw thingy into an object. unboxing is taking the raw thingy out.
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
PerlJam (like the way I use those technical terms)
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
Juerd I'm doing $foo.bar, it doesn't feel like getting thingies out of objects.
zengargoyle a type object. like an unset thing.
diakopter___ ZoffixW: okay, "the P5 community" is hardly representative of P5 devs. online fankids and convention circuit groupies aren't representative of anybody :-o
zengargoyle is $foo defined?
22:28 cygx joined
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.
cygx Juerd: 'cannot unbox a type object' is perl6 speak for NullPointerException :p 22:29
Skarsnik FROGGS, github.com/Skarsnik/nativecall-typediag (the doc sux for now)
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
Juerd Ah, apparently an argument I was passing wasn't initialized. 22:31
zengargoyle m: my Str $s; say $s.substr(0,1);
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␤␤»
FROGGS Skarsnik: wow, nice :o)
zengargoyle m: my Str $s; $s.substr(0,1);
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␤␤»
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 :)
FROGGS gnight
22:32 FROGGS left 22:33 stmuk_ left
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
ZoffixW pink_mist, yup, higher even than perl itself :P
pink_mist cool :D
Juerd Are default values in "has" ignored if you have your own BUILD?
pink_mist Mojolicious++
Skarsnik hm, good question 22:34
PerlJam well, sri++ too :)
_sri_ \o/ 22:35
hoelzro Juerd: only if there's a kwarg for that attribute, iirc
22:35 colomon joined
Juerd What's a kwarg? 22:35
hoelzro er, sorry
named parameter
PerlJam
.oO( beware the kwarg, it is mean and vicious )
22:36
pink_mist why 'kw'arg? 0_o
hoelzro m: class Person { has $.name = 'John'; has $.age = 21; }; say Person.new(:name<Rob>)
camelia rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => 21)␤»
pink_mist the 'k' stands for key I guess?
Juerd All of my default values are ignored :(
hoelzro Key Word ARGument
pink_mist ahh
hoelzro it's python slang
22:37 rurban joined
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
Where does initialization for the object go?
hoelzro hehe
BUILD, usually
Juerd It looks like you can't have custom initialization without doing *everything* yourself :|
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)␤»
hoelzro m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD(:$!name, :$!age) {} }; say Person.new(:name<Rob>)
camelia rakudo-moar d410e3: OUTPUT«Person.new(name => "Rob", age => Any)␤»
hoelzro Juerd: I'm guessing you're seeing something like ↑ ?
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?
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?
Juerd Regardless of BUILD's signature.
gist.github.com/Juerd/61eebb42659886927eb1 22:40
Basically, $!server must be set by the user, $!port has a default.
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.
hoelzro I'm not sure if has defaults happen before or after BUILD
well, the named parameters passed to new are passed to BUILD
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: twitter.com/zoffix/status/666263831572647936 twitter.com/zoffix/status/665282194827583492
diakopter___, but Perl 5 is still actively developed.
hoelzro if the default logic happens after BUILD, then $!server is Str because BUILD doesn't set it up via its signature
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)␤»
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.
hoelzro m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD() { say $!age } }; say Person.new(:name<Rob>)
camelia rakudo-moar d410e3: OUTPUT«(Any)␤Person.new(name => "John", age => Any)␤»
diakopter___ ZoffixW: I was trying to emphasize "language design" in that comment
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...
hoelzro hmm...that's interesting
m: class Person { has $.name = 'John'; has $.age = 21; submethod BUILD() { } }; say Person.new(:name<Rob>)
camelia rakudo-moar d410e3: OUTPUT«Person.new(name => "John", age => 21)␤»
Juerd I can only imagine that this is an extremely common use case.
Skarsnik lol ZoffixW your operator xD
ZoffixW :) 22:44
hoelzro it looks like referring to any attributes in BUILD circumvents their defaulting logic, which seems...odd.
ZoffixW And aannnyyyywaaaaay... looks like I'm finally done with the mojo-app branch
Juerd hoelzro: Agreed
grondilu arnsholt: seems to me that the sha256 code on RC is faster than the code on the Digest module.
ZoffixW moritz, I submitted the PR to merge the mojo-app branch for modules.perl6.org: github.com/perl6/modules.perl6.org/pull/26
Juerd I could just add the defaults to BUILD's signature, but it's so nice to have them all in one place :(
hoelzro Juerd: I think that's a rakudobug
ZoffixW hm 22:45
.tell moritz, I submitted the PR to merge the mojo-app branch for modules.perl6.org: github.com/perl6/modules.perl6.org/pull/26
yoleaux ZoffixW: What kind of a name is "moritz,"?!
ZoffixW .tell moritz I submitted the PR to merge the mojo-app branch for modules.perl6.org: github.com/perl6/modules.perl6.org/pull/26
yoleaux ZoffixW: I'll pass your message to moritz.
ZoffixW .botsnack # smart bot
yoleaux :D
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: perl6.xtatik.org/
yoleaux ZoffixW: I'll pass your message to timotimo.
Skarsnik ZoffixW, do you have some screenshot?
ZoffixW Skarsnik, of what?
Skarsnik Oh, you just linked a demo of mojo-app x) 22:46
ZoffixW :D
Time for beer an' commute home &
22:46 ZoffixW left
Juerd I'm resorting to having those defaults in BUILD's signature, for now. 22:46
arnsholt grondilu: Oh. In that case, maybe we'll just replace it with that =) 22:47
hoelzro filed as RT #126680 22:49
Juerd: ↑
Juerd hoelzro: Nice, thanks! 22:50
22:50 pmurias joined
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
grondilu arnsholt: sorry, I was wrong. There's something weird though. I need to clarify. 22:51
22:52 spider-mario left 22:53 Actualeyes left
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.
grondilu I don't understand. When I run $ time perl6 -e 'use Digest::SHA; say sha256 "foo";', it tells me it took 27s 22:54
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
Skarsnik compile time
22:56 raiph joined
Skarsnik grondilu, time will give you time run + time to compile 22:56
grondilu but I thought using BEGIN would include compile time. 22:57
cygx in particular, it'll include the time to compile Digest::SHA
grondilu as in BEGIN happens at the beginning of compilation.
cygx you need to precompile the module to make it useable
grondilu oh I see
I had installed it with panda and I thought it precompiled it.
22:57 Peter_R left
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
diakopter___ pmurias: I agree exactly, and that's very compatible with my point 22:59
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: perl6.xtatik.org/
grondilu I'm pretty sure panda used to precompile modules. Was there a regression or something?
Juerd Turning working code into a module was *hard*. 23:01
It'll get easier as I get used to the perl6isms :)
diakopter___ .tell ZoffixW that's neat (demo modules site); really well done
yoleaux diakopter___: I'll pass your message to ZoffixW.
Juerd github.com/Juerd/p6-mqtt/ # But... I can now haz module! 23:02
Next time I'll try to get all p5/Net::MQTT::Simple functionality in there, and write some documentation.
cygx grondilu: I believe it was a deliberate decision to remove precomp from panda as rakudo is supposed to handle it automatically
Juerd (Forgot to git push. Done now.)
pmurias diakopter___: OTOH calling authors of popular frameworks "convention groupies" seem really silly
diakopter___ but I wasn't doing that /o\ 23:03
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 :)
Preferrably before Christmas :P 23:07
23:09 Sqirrel left
TEttinger pmurias: call it perlin, then any search for perlin noise finds not only 2 very different algos but also a language! 23:10
23:11 ab6tract left
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
epitome of a version change, *not* a new name. ( to me xD )
TEttinger yeah, it still seems to be very much "a" perl, just a different newer version
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
TEttinger like you have scheme and common lisp both describable as "a" lisp, even though they don't interoperate and are very different
Juerd TEttinger: Scheme and Common Lisp don't share a same version numbering. 23:13
TEttinger true
rename perl 5 then :P
Juerd Renaming something that's already released is kind of hard
TEttinger I was joking
Juerd Renaming Perl 6 now is also hard, but still possible. 23:14
Juerd votes for Rakudo :)
TEttinger yeah, makes sense
MadcapJake TEttinger: haha!
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
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"
I don't think there's any of that though, haha
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
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:17
cygx personally, I'd rather just improve p5/p6 interoperability and provide a single interpreter frontend 23:18
TEttinger pmurias: that's a good example. popular games even, like grand theft auto 2 and 3 were totally different genres 23:19
Juerd TEttinger: Those numbers aren't taken for version numbers, though 23:20
The problem may not be that Perl 6 is not Perl 5, but that 1..5 were the same thing.
TEttinger they were less than 10 years apart too :)
Ulti maybe change P6 to be called Lerp the drooling sister language to Perl
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
diakopter___ not from a language design perspective
TEttinger Juerd: hm, when did perl 5 first come out?
Juerd TEttinger: Is that at all relevant?
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".
TEttinger no really, I don't know
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
TEttinger thank you, Ulti
Juerd diakopter___: I understand that it's a second design. Or perhaps a first ;). But Perl 1..5 weren't 5 different language designs.
Ulti well TimToady started dreaming of it then?
lichtkind masak: jejki
Juerd TEttinger: perldoc perlhist
dha I blame Jon Orwant. 23:23
TEttinger you could call it perl 28 and assume that much version shift
Juerd TEttinger: I'd prefer 28 to 6.
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.
Juerd pink_mist: It's not going to, though.
TEttinger (maybe 27)
23:24 kid51 joined
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
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
yoleaux diakopter___: I'll pass your message to ZoffixMobile.
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.
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.
dha Juerd - exactly.
Juerd dha: And in terms of language adoption, I think that this will severely hinder Perl 6's chances.
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
Ulti Perl is the problem in the name not the number
dha Juerd - I imagine that is a possibility. But it's the situation we're in.
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
yoleaux 23:24Z <diakopter___> ZoffixMobile: that's neat (demo modules site); really well done
23:26 hankache joined
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
And that you should avoid Perl 5 becauee it got superseeded
dha ZoffixMobile - That guy you were arguing with on twitter has a *new* complaint. :-/
Juerd dha: Yep. I accept the situation as it's happening. But still I do hope that at some point, it'll get better.
lichtkind i actuall will steal this ProductivityScript line
its fabulous
MadcapJake But it is an upgrade, isn't it? Perl 6 is *intended* to be a better designed Perl 5, right?
lichtkind i mean for my perl 6 article
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
Juerd I wouldn't mind Perl6 v1.0.0 either ;)
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
dha MadcapJake - kind of. but it has gone so far that it's very different in many ways. And the idioms are quite different.
diakopter___ ZoffixMobile: .. and to make something that should be preferred over his previous language designs
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.
diakopter___ of course not, it's not what I said.
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.
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
Ulti postfix deref is also quite nice, I wish they would stop things being "experimental" a lot faster
MadcapJake Well I guess that does complicate things xD I thought they were just maintaining Perl 5.
Ulti so you feel like you could actually use *anything* post 5.10
23:32 pecastro joined
Skarsnik I think when porting a P5 -> P5 you should only keep the tests xD 23:32
*p
Ulti I still explicitly put use feature 'say' in half my scripts
Skarsnik *whatever keyboard
Juerd Ulti: Quite nice? Adding "->$#*" to the language isn't "nice".
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
Ulti Juerd: thats a bad example though
Juerd Ulti: All of them are incredibly ugly, this one just happens to be the ugliest.
ZoffixMobile Juerd, but the alternative is the same thing but with braces :p
23:33 tokuhiro_ joined
Ulti ->@ rather than @{} around the whole chain of -> is a lot micer 23:33
Juerd Ulti: It's ->@* though.
Ulti because it makes it a lot more obvious what is deref'ing
Juerd (iirc)
Ulti especially for a slice!
diakopter___ ZoffixMobile: "making X better" is very different from "making something better than X"
Skarsnik I hate deferencing in p5 xD
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
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.
Ulti a deeply nested hash slice is basically the most dreaded part of P5 syntax for me 23:34
23:34 inokenty left
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 rindolf left
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
Ulti Juerd: I thought the @* was something else :/
23:35 ZoffixMobile left
psch timotimo: 'fail X::$whatever' seems to return a Failure, not Nil 23:35
m: sub f { fail X::AdHoc.new }; say f().WHAT # as here
camelia rakudo-moar d410e3: OUTPUT«(Failure)␤»
Ulti Juerd: thats not a hash slice.. now I want all the quux entries for every value where baz is
psch m: say Nil ~~ Failure
camelia rakudo-moar d410e3: OUTPUT«False␤»
Ulti or a subset I define of keys
psch m: use nqp; say nqp::istype(Nil, Failure)
camelia rakudo-moar d410e3: OUTPUT«0␤»
Juerd Ulti: Oh, slices. I don't use them much. When I do, I usually assign to an intermediary variable to make it readable.
psch m: use nqp; say nqp::istype(Failure, Nil) 23:36
camelia rakudo-moar d410e3: OUTPUT«1␤»
psch there...
diakopter___ m: say Failure ~~ Nil # curious
camelia rakudo-moar d410e3: OUTPUT«True␤»
Ulti Juerd could do but if that intermediate has no good name its kind of lame having %temp
just have nice syntax for it
pmurias Ulti: having some random idiots who haven't ever seen Perl code retell some ultra lame joke it is annoying
Juerd Everything has a good name. In this case, whatever key the hash had, is the name for the identifier. 23:37
23:37 tokuhiro_ left
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!
dha url? I have some popcorn ready 23:38
diakopter___ Ulti: the links ZoffixW posted 23:39
57 min ago
psch j: sub f() returns Int { return Nil } # Nil already doesn't mess with p6typecheckrv, apparently
camelia ( no output )
psch errr
ENOINVOCATION
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.
psch r: sub f() returns Int { return Nil }; f
camelia ( no output )
..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␤␤»
psch timotimo: so, yeah, apparently it should check for type Nil instead of Failure :) 23:40
timotimo++
dha I responded to his tweet about brian d foy's post about renaming Learning Perl.
Ulti oh yeah that Jeff Anderson guy was a bit angry on some other tweets too but ones to his mates 23:41
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"
Ulti I find it hard to be angry at a programming language, or an organised group of individuals creating something they love
23:42 dha left, frobisher joined 23:43 frobisher is now known as dha
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
people act like Perl 6 is David Bowie from Labyrinth come to take their children away 23:44
23:44 skids joined
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
I merely asked how that indicated competition, rather than an attempt at clarity. Then he blocked me.
Ulti Perl 6 is competing with Java too, we should bump the version like they did Perl 60.0? 23:46
diakopter___ my point was that it is absolutely competing, on language design (usability, learnability, memorability, someday maintainability & someday interoperability) 23:47
23:48 rurban left, hankache left
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
Skarsnik yay Zoffix is not dead in the weird dark alley 23:52
ZoffixMobile \o/
I missed my bus tho :p
Skarsnik good night here x) 23:53
ZoffixMobile night
23:53 Skarsnik left 23:54 cygx left
Ulti also Swift 2 is the Perl 6 mind killer 23:55
since it has nice unicode and rational numbers
and supported by one of the largest manufacturers of smartphones and pushers of pay for software 23:56
23:57 diakopter___ left
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
Swift was basically the only thing with a similar profile to Perl 6
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