»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
BenGoldberg Or that ;) 00:00
gfldex m: enum Twostraws (name => "twostraws", password => "fr0st1es"); say Twostraws ~~ Enumeration;
camelia rakudo-moar f7613f: OUTPUT«False␤»
gfldex m: enum Twostraws (name => "twostraws", password => "fr0st1es"); say Twostraws ~~ StringyEnumeration;
camelia rakudo-moar f7613f: OUTPUT«False␤»
BenGoldberg m: enum Twostraws (name => "twostraws", password => "fr0st1es"); say Twostraws.WHAT
camelia rakudo-moar f7613f: OUTPUT«(Twostraws)␤»
grondilu maybe use "need"? (it does not import anything) 00:01
zwu yes, something is not convenient, the name should not be conflicted internally if the compunit is used too.
BenGoldberg m: enum Twostraws (name => "twostraws", password => "fr0st1es"); say Twostraws.^parents
camelia rakudo-moar f7613f: OUTPUT«((Str))␤»
BenGoldberg m: enum Twostraws (name => "twostraws", password => "fr0st1es"); say Twostraws ~~ Str
camelia rakudo-moar f7613f: OUTPUT«True␤»
gfldex m: enum Twostraws (name => "twostraws", password => "fr0st1es"); say dd Twostraws; 00:02
camelia rakudo-moar f7613f: OUTPUT«Twostraws␤Nil␤»
gfldex m: enum Twostraws (name => "twostraws", password => "fr0st1es"); dd Twostraws;
camelia rakudo-moar f7613f: OUTPUT«Twostraws␤»
gfldex m: enum Twostraws (name => "twostraws", password => "fr0st1es"); dd name;
camelia rakudo-moar f7613f: OUTPUT«Twostraws::name␤»
00:04 AlexDaniel left
gfldex I was under the impression that any enum implements the role Enumeration. That current behaviour makes introspection on enums tricky. 00:04
00:05 zwu left
gfldex But then, S12 doesn't say anything about introspection on enums so Enumeration might just be an implementation details. 00:06
m: enum Nothing «To(1) See Here Move Along»; 00:07
camelia ( no output )
sortiz zwu, All package scoped symbols are visible without the need off 'is export' 00:09
gfldex m: class Foo {}; enum Twostraws (name => Foo.new, password => "fr0st1es"); dd name; 00:12
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/adei9MgTP0␤Cannot auto-generate a proto method for 'Int' in the setting␤at /tmp/adei9MgTP0:1␤»
gfldex m: class Foo {}; enum Twostraws (name => Foo.new, password => "fr0st1es");
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3PXB4QLwKC␤Cannot auto-generate a proto method for 'Int' in the setting␤at /tmp/3PXB4QLwKC:1␤»
gfldex that's a wee bit LTA
grondilu why do you even make enums like that? Aren't the values supposed to be integers? 00:19
I mean seems to me it shouldn't even be allowed.
gfldex Str and Int are specced, what doesn't change the fact that this error message is LTA. 00:20
m: enum Same ( name1 => 1, name2 => 2 ); dd Same.enums; 00:26
camelia rakudo-moar f7613f: OUTPUT«{:name1(1), :name2(2)}␤»
ZoffixLappy You know what the docs need? The FULL type map.
Like, say, I want to look up all types that inherit Cool... boom, I'd look at the full map. 00:27
gfldex The docs need enums, that's for sure. I shall doc tomorrow. 00:28
The lack of docing for enum leads to much confusion. see stackoverflow.com/questions/3689075...amed-tuple 00:29
sleep&
ZoffixLappy I'm pretty impressed there are Perl 6 SO questions.... 00:30
night
hotel that's gotta be a rule of the internet right? "if it exists, there is an SE question about it" 00:33
00:34 pierre_ joined 00:35 leont_ left
grondilu gfldex: I've never quite understood enums and last time I tried to read the synopses about it I did not find it very clear. So yeah, more and hopefully better doc would be welcome. 00:39
hotel the word 'enum' comes from the phrase 'enumerated type' 00:41
which essentially boils to the idea that there is a type that has numbered entries in it 00:42
oh, I'm getting the bad file descriptor thing again :\ 00:45
grondilu can you have infinite enums? (I was wondering this few days ago) 00:49
hotel infinite?
grondilu m: enum basis ( 'e' X~ 1 .. 5 ) 00:50
camelia ( no output )
grondilu m: enum basis ( 'e' X~ 1 .. 5 ); say e5
camelia rakudo-moar f7613f: OUTPUT«e5␤»
grondilu m: enum basis ( 'e' X~ 1 .. * ); say e5
hotel you broke it 00:51
camelia rakudo-moar f7613f: OUTPUT«(timeout)»
grondilu it would make some sense though
hotel not sure why you'd want an infinite enum though? they're generally used to provide a static list of constants that are associated with numerical values
s/numerical/integer 00:52
ZoffixLappy New blog post: "Extra-Typical Perl 6": blogs.perl.org/users/zoffix_znet/20...erl-6.html
grondilu I wanted something like that for my Clifford module where e0, e1, e2... are supposed to form an infinite orthonormal basis for an euclidean space. 00:53
instead I had to settle to 'constant @e = map {...}, ^Inf;' 00:54
so that instead of say 'e5' I have to type @e[5] which is quite more verbose.
ideally I guess I would have to use a parsed macro or something. 00:55
m: sub term:<> is parsed /e(\d)/ { $0 }; 00:59
camelia rakudo-moar f7613f: OUTPUT«5===SORRY!5===␤Null operator is not allowed␤at /tmp/6DqkJ85YHX:1␤------> 3sub term:<>7⏏5 is parsed /e(\d)/ { $0 };␤Other potential difficulties:␤ Pair with <> really means an empty list, not null string; use :('') to represent the nu…»
01:02 BenGoldberg left 01:03 BenGoldberg joined
ZoffixLappy What's 'is parsed'? 01:03
geekosaur intended for use with macros, iirc
grondilu NYI 01:04
ZoffixLappy Ah
grondilu according to S06 it can also be used for a sub.
but again, NYI
(apparently anyway, I'm no expert whatsoever) 01:05
01:05 zwu joined
grondilu if it ever is implemented, it'd be quite a powerful tool. 01:05
ZoffixLappy synopsebot6, S06:00 01:06
synopsebot6 Link: design.perl6.org/S06.html#line_00
grondilu and it'll make syntax highlighters cry
01:06 adu left, tbrowder left
hotel lol 01:11
so what's going on with tools/build/install-core-dist.pl:13?
it's breaking my rakudo install 01:12
01:12 cdg left 01:15 molaf left
sortiz hotel, know problem. Try setting the env var PERL to you perl5 binary. 01:15
01:16 astj joined 01:18 ZoffixLappy left
hotel the path including the binary? 01:19
or just where it is?
grondilu try PERL=$(which perl)
(that's what I'm trying right now)
sortiz And don't forget the 'export'. 01:20
grondilu or $ PERL=$(which perl) nice make
hotel running echo "export PERL=$(perl)" >> ~/.bashrc makes my terminal hang lol 01:21
grondilu normal you're executing a perl process 01:22
you forgot which
hotel I tried it with perl5 and ubuntu complained it didn't know what that was
01:22 wamba left
geekosaur hit control-c 01:22
hotel I did 01:23
I'm putting it in the bashrc manually now
geekosaur then note that it's $(which perl) not $(perl)
hotel oh
geekosaur so it ran perl and perl was waiting for input
hotel I was thinking "which perl" was a placeholder
grondilu lol 01:24
hotel that's why I'm running ubuntu on windows
geekosaur no, it's a way to get the full pathname for the command
grondilu hotel: are you? that's cool. Is it easy to setup?
hotel yeah, until you try to install perl6
geekosaur (not an ideal one but works well enough for here. "$(type -p perl)" is better usually for this usage) 01:25
01:25 yqt left
sortiz The problem is a bad interaction between commits c066434 that removes 'PERL' from Makefile-common-macros.in and today 66883a4 that use it. 01:26
01:27 molaf joined
hotel oh interesting 01:28
thanks
grondilu not sure about enabling developer mode on my PC. I guess I'll stick to cygwin for now. 01:29
hotel hasn't made anything of mine explode yet, but that's understandable :) 01:30
geekosaur oh, so trying to fix one problem caused another?
siiigh
hotel lol 01:31
hm, I'm getting the same error as before with PERL in my environment variable
and this time a bunch more tests were dubious 01:32
01:32 ZoffixWin joined
grondilu did you just edit .bashrc without executing it? 01:33
hotel no
01:34 zwu left
hotel also closing nano closed the entire terminal so it's for sure been sourced 01:34
PERL also shows up when I run export too
grondilu just check $ echo $PERL
hotel ^^
although that works as well
01:39 sufrostico left
hotel 'm' 01:40
grondilu failed for me as well 01:41
hotel bad file descriptor and everything? 01:42
on the bright side, I've determined that all it takes to get Moar built on WSL is to add some LDFLAGS to the makefile 01:44
grondilu sh: 1: tools/build/create-moar-runner.pl: Permission denied 01:46
Makefile:545: recipe for target 'm-install' failed
make: *** [m-install] Error 126
hotel oh I'm getting something different
gist.github.com/HotelCalifornia/5a...d21bf24420 01:47
geekosaur that will be the same commit 01:49
grondilu oh it works. Turns out I ran PERL=$(which perl) make && make install 01:50
which means $PERL was only defined for make not for make install
hotel :<
geekosaur whoops :) 01:51
hotel so what's wrong with my thing then? 01:53
geekosaur "bad file descriptor" shouldn't happen. could be you've hit a bug in the emulation environment (stuff unexpectedly closing on you also suggests this, actually) 01:55
hotel bleep bloop 01:57
that's irritating
hoelzro is that PERL vs PERL5 thing in the Makefile a bug from the revert? 01:59
sortiz yep
hoelzro I'll push a fix 02:00
sortiz I made a PR.
hoelzro oh, I'll just merge that then
geekosaur I am wondering if you ran the emulator out of file table entries or something, but don't know how you'd check it :/ 02:01
hoelzro sortiz++
sortiz Just finished the travis testing. :-)
02:02 pierre_ left
hotel wondering if I did what now? 02:02
geekosaur I strongly suspect the usual way won't work, but: cat /proc/sys/fs/file-nr
hotel cat: /proc/sys/fs/file-nr: No such file or directory
geekosaur well, not so much "you" as "there's a bug in the emulation that leaks entries in the kernel file table, andyou start getting weoird file errors when the tbale fills
was afraid of that :/ 02:03
hotel hm
geekosaur no idea how you check this in the windows subsystem
hotel lshw tells me I have 1006MiB of memory when it should be around 16x that; possibly a clue as to how much memory is allocated
geekosaur right, this is different though. the kernel file table is normally fixed size (you can adjust it by hand on a real linux by changing /proc/sys/fs/file-max) 02:04
so actual memory available is not relevant because it's allocated once and stays put 02:05
02:05 pierre_ joined
hotel I see 02:05
the only thing is /proc/sys/ is a kernel/
geekosaur but, this is an emulation and I have no idea what it's really up to. windows kerrnel is quite possibly providing a limited pool to the emulation, and something might be leaking so that limited pool eventually runs out. or something 02:06
02:06 pierrot left, pierrot joined
geekosaur that is, it's not a real linux kernel, it's a thing that acts like one to programs but is actually just translating requests into windows kernel requests 02:06
hotel right
reverse-WINE 02:07
geekosaur worse. wine is userspace
you need windows microkernel debugging tools to diagnose this, I suspect. likely they only exist inside microsoft
hotel oh, that's how I've seen people describe it anyway
guess I'll open an issue then
geekosaur well, it's a way to think about it. but windows is fundamentally very different in its organization
the only other OS that comes close to it is OS X, which runs a Unix kernel under control of a microkernel. and it's not very close because as much as possible is done inside the guested kernel, instead of having multiple system services running independently under the microkkernel like windows does 02:08
hotel eek
sortiz hoelzro, thank you! 02:09
hoelzro thank *you* for the fix, sortiz!
hotel for clarification, how do we know the error isn't being caused by core-install-dist? 02:10
geekosaur well, we don;'t for certain, but if it;s working (with correct PERL / PERL5) for others then either yours is set to something extremely weird or you are running up against an emulator issue 02:11
because "bad file descriptor" is not generally a user error 02:12
hotel got it
I'm also seeing people on the internet with this problem when using sockets
geekosaur (you *can* trigger it, though: something like "cat <&17" in the shell, since it almost certainly isn;t using fd 17)
it's just npot in the usual class of things you'd do with typoes or etc. 02:13
the most common cause is something opened a file and didn;t check if it succeeded. beyond that, it's likely to be a ketrnel error --- especially in a brand new emulation subsystem with known bugs
hotel thanks
geekosaur especially whenc ombined with things like you reported that you closed namno and your terminal went away 02:14
which makes me think its stdin fd went missing --- which would in fact be a "bad file descriptor" situation
and absolutely *not* a "normal" one
(you could trigger that failure mode in a different way by setting stdin non-blocking, though. that would be a bug in nano, though, and a rather unlikely one given how widely it's used) 02:15
(and I think sufficiently recent bash checks for it and fixes it itself...) 02:16
hotel yeah sometimes (maybe once out of ten uses) nano will close the entire bash when I exit it
geekosaur hm. yes. i think you've found a bug in the emulator, then 02:17
and the bad file descriptor is a symptom
live on the bleeding edge, expect to bleed :) 02:18
hotel :^)
alright, guess it's time to wait github.com/Microsoft/BashOnWindows/issues/283 02:21
geekosaur considers trawling that tracker to see if someone already reported it in a different guise... 02:22
or even if that's the right place to put it, since strictly speaking not a bash bug
02:23 BenGoldberg left
geekosaur mm, just scanning subject lines there's a couple of things that might be related 02:24
02:24 BenGoldberg joined, noganex_ joined 02:25 Herby_ joined
hotel biggest issue so far is that java doesn't work 02:25
Herby_ o/
geekosaur also just the list of bugs as a gestalt suggests you are indeed testing new technology and finding the bugs the hard way 02:26
Xliff Here's a weird one for you guys.
gist.github.com/Xliff/b4c6675c7f3b...db05e8269c
It's been nagging at me, all night.
02:27 noganex left
Xliff Is this some FP weirdness or am I not doing something corretly? 02:27
hotel well that's why it's been publicised as a developer tool only
Xliff s/corretly/correctly/
geekosaur isn't 32768.f (float)?
because Num will be (double) 02:28
Xliff geekosaur, yes.
Well ain't that just ducky. How do I get num32?
geekosaur so you could indeed be seeing problems... because you are only filling 4 byutes of an 8 byte value, the rest are likely tras
h
hotel p6: $homework.do 02:30
camelia rakudo-moar 1c1e06: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Variable '$homework' is not declared␤at /tmp/tmpfile:1␤------> 3<BOL>7⏏5$homework.do␤»
Xliff @buffer0 and @buffer1 are CArray[num32] though.
geekosaur hm. that's getting deeper into internals than I know, then. could well be that smnething is mishandling num32 somewhere (e.g. assuming it's the same as num or num64)
file a bug, Iguess, at worst it gets rejected and you get told what magic is needed to do the right thing 02:31
Xliff I'll let it percolate, tonight. I've set a reminder to do it tomorrow. 02:32
I don't want to file a bug if PEBCAK. T'would be embarassingb. 02:33
hotel lol
02:37 rurban joined
Xliff Even if I limit calculation to Int and num32, I am still getting the same numbers. 02:38
So somewhere it's getting converted to Num by the time it gets back to num32, the damage has been done.
02:43 tardisx left 02:44 BenGoldberg left
geekosaur right, I'd say you are in the file a bug zone 02:44
Xliff kk 02:45
Like I said. I will let it percolate tonight and bug it fresh, tomorrow.
02:45 BenGoldberg joined
hotel one day I'll start learning perl6 for real 02:45
02:45 kid51 left
Xliff Only thing I can think of is that in the c code, the input buffer is signed char. P6 input defaults to Blobs which is unsigned, right? 02:53
sortiz Xliff, you can use signed Blob/Buf: try with Buf[int8] 02:55
Xliff sortiz: How do I get IO::Handle::read() to return that? 02:56
Or should I just ==? "my Blob[int8] $readdata = $fh.read($bytes)"
Xliff tries.
02:58 dwarring joined
Xliff HOLY SHIZZLE! 02:58
my Blob[int8] $readbuff = Blob[int8].new($fh.read(READ * 4));
Still getting numeric artifacts, but the C-lib doesn't care now. 02:59
It's happy with the bloody values and my conversion worked.
sortiz++!
sortiz Xliff, Certainly there are some known bugs with native types. :-)
Xliff YAY! Now bed.
Yes. I will still come at this fresh, tomorrow. I may bug it as a warning, JIC. 03:00
This translit code looks WAY too much like its original.
Will need to optimize now that it's operation has been verified.
committed and pushed. 03:04
Xliff dies.
03:04 Xliff is now known as Xliff_ZZzzzz 03:05 Khisanth left
geekosaur that's a common issue with code that crosses language boundaries... even Haskell FFI code manages to look a lot like C >.> 03:05
03:07 Khisanth joined
sortiz perl6/doc build is now clean. 03:09
03:11 pierre_ left, rurban left
hotel what's the nick++ thing? 03:12
Herby_ nick + 1 03:14
:)
hotel well yeah
significance?
geekosaur "karma" 03:15
hm. which is the karma bot currently?
.karma sortiz 03:16
hotel I've been away from IRC for too long
03:16 hotel is now known as hotel|netteiru
geekosaur not yoleaux I guess 03:16
hotel|netteiru night
Herby_ \o
03:17 Herby_ left, pecastro_ joined 03:19 winger__ joined 03:20 hotel|netteiru left
MadcapJake geekosaur: no karma bot anymore, i've been told 03:22
TEttinger karma--
03:22 pierre_ joined, winger_ left 03:23 winger__ left 03:24 winger__ joined 03:26 pecastro_ left
Xliff_ZZzzzz Yeah. These gists are getting to be fun... especially when I can solve them! =) 03:30
gist.github.com/Xliff/b4c6675c7f3b...db05e8269c
There was a karma bot, but now it's gone. But the idiom still remains. 03:31
Basically (nick++) translates to "Good job (nick)"
03:33 winger__ left, winger__ joined
ugexe MadcapJake: zef does have `nuke`, on its own config directories and on CUR short names. so to delete all modules would typically be `zef nuke site home` 03:37
MadcapJake oh nice! someone was having troubles with merge_globals and mismatched versions of JSON::Fast 03:39
03:39 winger_ joined
MadcapJake ugexe: I've started chipping away at full custom CUR support in Rakudo, did you read through my discussion with nine_ the other day? 03:40
03:40 adu joined
ugexe yeah, but ive been driving across the country so i havent got to dig in to it yet 03:41
i may be working in wisconsin soon though
ugexe thought he recalls you are located in wisconsin 03:42
MadcapJake haha! yes I am!
03:42 winger__ left
MadcapJake where will you be in Wisconsin? 03:43
ugexe the milwaukee area 03:44
MadcapJake nice! milwaukee is cool, I live 5 hours from milwaukee though :\ 03:45
but my family lives an hour west of the area and my sister lives there 03:46
ugexe i didnt know there was anything even on the west side of the state heh 03:48
oh duh, ive heard of eau claire 03:50
MadcapJake yep that's where I live :) 03:51
it's really close to Minneapolis/St. Paul and is a nice mix of decent-sized city and small-town feel that I think is good for my son to grow up in. 03:52
ugexe i prefer those too 03:54
but for parking purposes 03:55
03:55 hotel|netteiru joined 03:57 BenGoldberg left, adu left 03:59 BenGoldberg joined
MadcapJake xD parking is rarely a concern here that's for sure! 04:01
04:08 xinming_ is now known as xinming 04:21 tardisx joined 04:23 snarkyboojum joined, snarkyboojum left 04:26 Cabanossi left 04:30 Cabanossi joined 04:41 Xliff_ZZzzzz left, Xliff_ZZzzzz joined, khw left 04:42 pierre_ left 04:49 tardisx left 04:51 tardisx joined 04:55 BenGoldberg left 04:56 BenGoldberg joined 05:00 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 05:11 skids left, sno left 05:12 BenGoldberg left 05:13 BenGoldberg joined 05:27 _mg_ joined 05:31 BenGoldberg left 05:45 domidumont joined 05:46 tardisx left 05:48 tardisx joined 05:49 domidumont left 05:50 domidumont joined 05:51 grassass joined 06:02 domidumont left 06:06 CIAvash joined 06:09 dolmen joined 06:12 pierre_ joined 06:15 jjido joined 06:16 domidumont joined 06:17 sno joined 06:19 hotel joined 06:20 hotel|netteiru left 06:30 Actualeyes left, Actualeyes joined, vendethiel- left 06:35 rindolf joined 06:36 tomboy64 left, firstdayonthejob joined 06:38 tomboy64 joined 06:43 rurban joined 06:47 TimToady left 06:49 TimToady joined 06:54 TimToady left 06:57 jjido left, ufobat joined
ufobat good morning! 06:58
07:00 TimToady joined
sortiz \o ufobat 07:01
07:03 atroxaper joined
masak morning, #perl6! 07:09
Perl 6 day! \o/
moritz \o masak, ufobat, sortiz, ugexe, MadcapJake, *
07:09 rurban left
moritz masak: I guess you'll like this one: www.smbc-comics.com/index.php?id=4092 07:09
masak moritz: awww :/ 07:13
07:16 zakharyas joined, RabidGravy joined
ufobat I am wondering why the HTTP::Server::Tiny has this name, it's not that tiny 07:27
well okay, 500 lines of code, but cool! 07:28
moritz I guess it started out tiny
fwiw I've recently discovered the Talk Nerdy podcast: carasantamaria.com/podcast/ 07:29
07:29 tardisx left
moritz many of the guests are science communicators and scientists, some atheists and sceptics interspersed 07:29
07:30 leont joined
moritz likes it 07:31
07:32 RabidGravy left
masak :) 07:32
07:32 RabidGravy joined
RabidGravy moo 07:35
sortiz Today I made a bitter discovery: Inside a method body, a sub declaration is recompiled every time the method is called even if it doesn't attempt to "capture" anything, is that expected or a bug?
masak sortiz: not recompiled, surely. 07:36
sortiz: rebound, yes.
ufobat masak, any news about your SSE in nex? :) i am curious about your experiences with HTTP::Server::Tiny?
masak sortiz: and while I don't know the answer to your question (now how to find out), I can easily imagine that's so.
RabidGravy I have quite a few places where I put subs inside methods just to make the code neater 07:37
masak sortiz: maybe that's an optimization the good folks who optimize haven't gotten to.
ufobat yesterday night i realized that HTTP::Server::easy is not handling binary data in http requests :(
masak sortiz: maybe it's hard for some reason ;)
ufobat: so far very positive experiences.
07:37 domidumont left
masak ufobat: I've gotten a few segfaults on the way, but hey, I can haz SSE now :D 07:37
ufobat i am happy to hear that :) 07:38
segfaults?! what happend?
RabidGravy fwiw I'm certain HTTP::Server::Tiny does support binary content
07:38 tardisx joined 07:39 tardisx left
sortiz masak, I DBIish have many native subs declared inside methods, to be neater, but a profile shows me that every time the method is called the 'is native' trait of the sub is reinvoked, so all the setup dance is re-executed. 07:39
In* 07:40
RabidGravy I actually implemented a streaming server using it, but found another problem so made my own spectial server software
masak sortiz: huh.
07:40 dolmen left
masak sortiz: that does sound odd. 07:40
07:40 darutoko joined, tardisx joined
ufobat RabidGravy, yeah i think so too. I read the code and i think it should work 07:40
sortiz Yep, I have the profiler results to prove it. 07:41
ufobat my next step on bailador is to return a $app so it can easily run on different servers or with Crust
RabidGravy cool 07:42
ufobat and theeeeeen, i can upload pictures ;D woho
masak m: multi sub trait_mod:<is>(Routine $r, Str :$yeshello!) { say "triggered" }; sub foo() is yeshello<OHHAI> {} 07:43
camelia rakudo-moar 1c1e06: OUTPUT«triggered␤»
07:43 domm is now known as domm_
RabidGravy I'm very much in favour of a mix and match approach to this space rather than there being a single monolithic framework that everyone has to use or risk being uncool 07:43
masak m: multi sub trait_mod:<is>(Routine $r, Str :$yeshello!) { say "triggered" }; class C { method meh { sub foo() is yeshello<OHHAI> {} } }; C.new.meh
camelia rakudo-moar 1c1e06: OUTPUT«triggered␤»
masak m: multi sub trait_mod:<is>(Routine $r, Str :$yeshello!) { say "triggered" }; class C { method meh { sub foo() is yeshello<OHHAI> {} } }; C.new.meh; C.new.meh
camelia rakudo-moar 1c1e06: OUTPUT«triggered␤»
masak sortiz: look at the above. discuss :) 07:44
ufobat RabidGravy, the only thing i am not liking right now is how the PSGI for perl6 has evolved and not being implemented throughout the http servers or 07:46
for example %env variables names had changed twice
sortiz Hum... will golf my problem...
masak ufobat: I can sort of sense that when I'm working with Bailador and HTTP::Server::Tiny :) 07:47
RabidGravy yeah, really someone needs to pick something that is the "reference" module and everything else follows that 07:48
ufobat psgi draft 0.7 is stable or not being touched since 7 months i think... 07:49
07:49 domm joined
ufobat some modules follow 0.4 some try to implement all/some versions.. and that results in quite a lot code that's useless 07:50
07:52 Amnez777 left
ufobat well, how would life be when nothing is left to do :) 07:52
masak relaxing? :P 07:53
ufobat mhm, we are both parents... 07:55
07:57 jack_rabbit joined
sortiz m: role Foo[Routine $r] { has int $!setup; method CALL-ME { say "applied to ",$r.^name unless $!setup; $!setup = 1 }}; multi sub trait_mod:<is>(Routine $r, :$foo!) { $r does Foo[$r] }; class Bar { method baz { sub meh is foo {}; meh(); }}; my $b = Bar.new; $b.baz; $b.baz; # See $!setup 08:02
camelia rakudo-moar 1c1e06: OUTPUT«applied to Sub+{Foo[Sub]}␤applied to Sub+{Foo[Sub]}␤»
sortiz That mimic the 'is native' path. So, or the role is applied more than one time or $!setup miss its value. 08:05
08:05 dakkar joined
sortiz The bright side is that now DBDish::Pg is 35x faster. :-) 08:09
08:09 tomboy65 joined 08:10 tomboy64 left 08:17 tomboy65 left, wamba joined
masak sortiz: "of course" that one has to run twice -- you're concretizing the role twice at runtime 08:18
RabidGravy sortiz, that's right though - the CALL-ME *is* the sub 08:19
oh wait I see now
masak it's the Foo[$r] that gets "instantiated" twice
to essentially two distinct concrete roles
masak should perhaps say "concretized" instead of the overused "instantiated" 08:20
DrForr laminated :) 08:21
RabidGravy ufobat, maybe the thing to do is to add a set of tests to the psgi module (or some module that implements tests) that check compliance with the latest version and then add that as dependency to all the offending containers 08:24
sortiz I was expecting that as soon as the Routine meh was composed with Foo, its $!setup attr was unique, so after the first CALL-ME, that set $!setup = 1, all the following calls see $!setup True and bypass the setup, Well that what 'is native' expects now. 08:25
RabidGravy ye olde lexical scope 08:26
08:28 tomboy65 joined
dalek Iish: 8b6ebd7 | (Salvador Ortiz)++ | lib/DBDish/ (4 files):
Pg: Move native subs outside it methods

That avoids needless !setup passes inside Native role
  bazzaar++ for the report that trigger that hunt.
08:29
masak sortiz: 08:30
m: role R[Routine $r] { has $!setup; method CALL-ME { say "applied" unless $!setup++ } }; { sub foo { say "foo" }; &foo does R[&foo]; foo() }
camelia rakudo-moar 1c1e06: OUTPUT«applied␤»
masak m: role R[Routine $r] { has $!setup; method CALL-ME { say "applied" unless $!setup++ } }; for ^2 { sub foo { say "foo" }; &foo does R[&foo]; foo() }
camelia rakudo-moar 1c1e06: OUTPUT«applied␤applied␤»
masak sortiz: nothing to do with methods.
sortiz Yes. Seems scope related. 08:31
masak m: role R[Routine $r] { say "role" }; for ^2 { sub foo { say "foo" }; &foo does R[&foo]; foo() } 08:32
camelia rakudo-moar 1c1e06: OUTPUT«role␤foo␤role␤foo␤»
masak an even simpler example.
does the above behavior make sense to you? 08:33
08:33 domidumont joined
sortiz If foo was a closure yes. For that foo nop, sorry. 08:33
masak nothing much to do with routines, either 08:35
m: role R[$z] { has $!setup = "newly concretized role"; method x { say $!setup; $!setup = "seen this old role before" } }; for ^2 { my $z = 1; $z does R[$z]; $z.x }
camelia rakudo-moar 1c1e06: OUTPUT«newly concretized role␤newly concretized role␤»
masak it's just the fact that `does` runs every time. it's a runtime thing
don't even need that role parameter, apparently
m: role R { has $!setup = "newly concretized role"; method x { say $!setup; $!setup = "seen this old role before" } }; for ^2 { my $z = 1; $z does R; $z.x }
camelia rakudo-moar 1c1e06: OUTPUT«newly concretized role␤newly concretized role␤»
sortiz But a does inside a trait, that is applied at compile time, don't make much sense. 08:36
08:36 shmibs is now known as Hansel_Moe
masak it's one of those "runtime inside of compile time" things 08:37
RabidGravy but it's bound into the lexical scope at runtime
08:37 Hansel_Moe is now known as shmibs
masak sortiz: maybe you just don't want $!setup to be scoped the way it is? 08:37
sortiz: would it work for you if you made it a global outside of the role?
08:39 leont left
sortiz Well, that the logic inside the 'is native' machinery that seems affected, that code made me expect otherwise. Now I be fully aware. :-) 08:39
masak basically, *each* time `does R` happens, the role gets concretized. and you get fresh attributes, etc 08:40
sortiz Yep, now i know, but see: github.com/rakudo/rakudo/blob/nom/...#L266-L290 08:42
08:43 cdg joined
sortiz That !setup is heavy weight. 08:43
08:43 [TuxCM] joined, pecastro left
masak sortiz: maybe you can keep a global hash with seen Routines? 08:44
08:44 Actualeyes left 08:45 tomboy65 left
sortiz I'm working in a Native libs/calls revamp. DBIish has taught me a lot :-) 08:46
masak :) 08:47
08:48 tomboy65 joined
RabidGravy make all the things faster 08:48
masak .oO( and soon! )
08:50 atroxaper left 08:53 atroxaper joined
RabidGravy for reference with NC doing portaudio -> mp3 encode -> libshout is "only fast enough under controlled circumstances" 08:56
that is there aren't enough free cycles to deal with e.g. garbage collection and recover from that 08:57
08:57 tomboy65 left
RabidGravy and it only works with very high latency settings in the audio sub-system 08:57
08:58 tomboy65 joined
RabidGravy though to be fair it has improved over the last say nine months that doing similar but reading from a WAV file using sndfile can now do 320kbps rather than 128k when I first made the modules 09:00
ufobat RabidGravy, i think its to hard to build something generic. middlewars vs servers vs webframeworks. they are all working so differently 09:01
09:02 Actualeyes joined
RabidGravy right but the psgi specification only defines servers and middleware so it's just make tests for those 09:02
a web framework abstracts away those underlying things 09:03
09:05 tardisx left
RabidGravy so the test for the server would be an "app" callable (or more probably more than one) and a thingy that makes requests with the app on the server and check it gets what is expected 09:06
I'd make an example but I don't have a pony in this race so I'll leave it to others 09:08
:)
(dog in the fight/skin in the game)
sortiz Has been a long day, I'm going to bed o/
RabidGravy gosh after only two hours, harsh ;-) 09:09
09:11 TeamBlast joined 09:13 [particle] left 09:16 [particle] joined, domidumont1 joined 09:17 TEttinger left 09:18 domidumont left
ufobat RabidGravy, ack! and the same applies to middlewars! 09:20
masak "middleware", surely? 09:21
masak .oO( unless the Man in the Middle has turned belligerent of late )
ufobat ;) who knows!
RabidGravy very possibly 09:22
ufobat
.oO( omg my english is so bad )
RabidGravy so is mine and I took a degree in the subject ;-)
09:23 pierre_ left
RabidGravy right let's hack together this modules snapshot thingy 09:24
09:24 Amnez777 joined 09:25 pierre_ joined
RabidGravy BTW sortiz++ rakudo build works again :) 09:29
09:31 domidumont joined 09:34 domidumont1 left
jdv79 RabidGravy: you majored in eng? 09:34
RabidGravy english literature yep
jdv79 nice 09:35
sortiz RabidGravy++ # Spot the problem in first place.
09:36 pierre_ left 09:37 pierre_ joined 09:39 pierre_ left
RabidGravy Oooh when did JSON::Fast do "pretty" ? 09:39
Hmm, how come CORE gets a Distribution? and is there any way of distinguish it (and possible other similar things) from "normal" modules? 09:42
09:44 pierre_ joined
dalek Iish: c08c08d | (Salvador Ortiz)++ | / (2 files):
Pg: Fix Arrays handling vs optimized NULL
09:46
09:48 domidumont1 joined 09:49 domidumont left 09:57 atroxaper left 10:04 ufobat left 10:09 [particle] left, [particle] joined
RabidGravy Ah. got it 10:17
CORE contains Test and the NativeCall stuff
psch m: use NativeCall; say CORE::NativeCall 10:18
camelia rakudo-moar 1c1e06: OUTPUT«Nil␤»
10:18 pierre_ left
psch RabidGravy: i think we're calling Test and NativeCall standard modules, not core modules 10:18
10:19 domidumont1 left
psch but then i don't know if that applies to the CUR stuff in a technical sense 10:19
m: say CORE::Test
camelia rakudo-moar 1c1e06: OUTPUT«Nil␤»
psch in any case, they're not actually in CORE it seems
RabidGravy Well that's as may be but that's what the Distribution that contains them is called ;-p 10:20
Distribution.new(name => "CORE", auth => "perl", author => Any, authority => Any, api => Any, ver => "6.c", version => Any, description => Any, depends => [[],], provides => {:NativeCall(${:pm(${:cver("2016.04-36-gce5dc00")
psch hrm
that's a bit unfortunate
i assume renaming that now makes upgrading somewhat painful 10:21
RabidGravy presumably it's in a "special" repo 10:22
RabidGravy looks
10:24 kid51 joined
psch this doc PR had the discussion github.com/perl6/doc/pull/452 10:24
RabidGravy yeah I remember it 10:25
but for the time being I'm going to sweep that one under the carpet as I have enough to ignore it for the time being (assuming the auth doesn't get changed) 10:28
the name is only seeable if you actually explicitly traverse the distributions (which is what I am doing) 10:29
psch yeah, i don't think it's a pressing issue
it could be misleading is all
RabidGravy yeah, though as a distribution name it's probably better than most alternatives for the reason that someone is less likely to actually create a module called that 10:30
(though the name doesn't matter as far as I can see, only the names in the "provides") 10:31
psch that's what i'd assume, i mostly don't want people exploring, finding a CORE distribution and talking about it with that name only to be corrected that that's not really what it should be called... 10:34
but i have no idea how the name plays into upgrading or not, so i'm not gonna touch it either... :)
especially 'cause i don't really *do* upgrading, i mostly just have $rakudo-repo/install anyway 10:35
RabidGravy well, I guess the worst that would happen is that it wouldn't go away when upgrading 10:37
psch hm, that could potentially break on Test or NC imports with a version..?
RabidGravy well the ver is just '6.c' anyway 10:38
10:39 sortiz left
RabidGravy so it's would always get the one with the matching compiler version 10:39
psch m: use Test:ver(v6.c)
camelia ( no output )
psch but that would keep working on a v6.d+ compiler that replaced the CORE name with Standard, no? 10:40
and in the case of NC i could see that introducing hard-to-understand bugs
well, assuming CORE sticks around during upgrade that introduces Standard instead
RabidGravy I think the safest thing would be to twat that repo prior to installation (assuming nothing else uses it) 10:41
ZoffixWin muffles at laugh at that verb choice 10:42
RabidGravy like a hard "rm -rf $PREFIX/share/perl
ZoffixWin, it's overloaded in en_GB ;-) 10:43
anyway supermarket, then snapshot thing 10:44
toodles
ZoffixWin \o
10:47 pmurias joined, ilbot3 left
timotimo grondilu: SDL is famous for running on anything anywhere. it's got a windows port and i'm pretty sure it'll also run on a raspberry pi. 10:48
10:56 kaare_ joined
grondilu I don't have a screen for my Pi and I've never used Perl 6 on windows. But someday I'll give it a try. 10:58
grondilu actually tries *now* 11:00
grondilu clones rakudo on cygwin 11:01
anybody knows what packages I need for a Cygwin install? I will find out by trial and error, but if someone can make it simpler... 11:02
timotimo isn't cygwin the one that won't work for sure?
i mean: we're sure it won't work 11:03
grondilu oh is it?
timotimo i forget
i don't has windows
bbiab
_nadim grondilu: fire a vm image with linux, so much easier then 11:05
dalek c: aace8d3 | (Tom Browder)++ | doc/Language/terms.pod:
correct spelling; add closing comma for use of 'i.e.' which is a parenthetical phrase
c: 03fdaf2 | (Tom Browder)++ | doc/Language/terms.pod:
Merge pull request #472 from tbrowder/master

correct spelling; add closing comma for use of 'i.e.' which is a pare…
11:06 pierre_ joined, cdg left
jnthn grondilu: It works out fine on native windows. libuv doesn't support cygwin, so you can't do a Rakudo/Moar build there. 11:07
timotimo mhhh, fresh kernel 11:08
11:09 cdg_ joined
grondilu _nadim: tell me more. Which vm do you recommend? QEmu? 11:09
timotimo qemu runs on windows? o_O 11:10
11:12 rurban joined
grondilu I don't know. But a quick search suggests me of VirtualBox. I'll give this a try. 11:12
jnthn: I'm not sure how to use Perl 6 on windows without a proper shell. 11:13
moritz kvm!
jnthn grondilu: Turns out cmd.exe is more than proper enough to build a Rakudo :) 11:14
11:14 cdg_ left
jnthn grondilu: I'm pretty sure once it's in your path you can use it from cygwin. 11:14
grondilu :/
11:14 tbrowder joined
grondilu I know so little about Windows I don't know where to set up my PATH 11:14
timotimo i know where, but i can't describe it 11:15
i think you right click on "my computer" and then "properties"?
jnthn Yeah, then it's in "Advanced System Settings" :)
grondilu well that's dumb.
I knew I would have to click on stuff :rolleyes: 11:16
_nadim well, you wanted to run in cygwin! 11:17
jnthn That's probably to avoid having to click on stuff :P
grondilu I once tried to install rakudo* and use cmd, but it did not find it so I thought I would have to setup PATH and I did not know how to so I shrug and gave up.
grondilu installed VirtualBox and now downloads a debian liveCD 11:29
abraxxa KVM > VirtualBox 11:30
grondilu KVM does not run on windows, does it?
11:34 pierre_ left
El_Che grondilu: I think it does 11:35
(I used to run RHEV, built on ovm with a kvm backend and it ran windows as well) 11:36
11:38 domidumont joined 11:39 wamba left
awwaiid run on vs can run 11:39
El_Che it was officialy support (paid support contract) 11:40
awwaiid kvm can run windows (windows vm guest), but cannot run on windows (windows host)
El_Che ah ok
11:44 kid51 left 11:46 [ptc] joined
grondilu m: role A[$n] {}; say A[13].new; 11:52
camelia rakudo-moar 552bf5: OUTPUT«A[Int].new␤»
grondilu I kind of have wanted this to show "A[13].new" instead.
m: role A[$n] {}; dd A[13].new; 11:53
camelia rakudo-moar 552bf5: OUTPUT«A[Int].new␤»
grondilu m: role A[$n] {}; say A[13].new ~~ A[14];
camelia rakudo-moar 552bf5: OUTPUT«False␤»
grondilu m: role A[$n] {}; say A[13].new ~~ A[13];
camelia rakudo-moar 552bf5: OUTPUT«True␤»
12:00 richi235 joined 12:02 ilbot3 joined, pierre_ joined 12:04 CIAvash left 12:08 pierre_ left 12:13 hankache joined
hankache m: say IO.^methods; 12:13
camelia rakudo-moar e81342: OUTPUT«(umask)␤»
hankache is it normal that I can't use .^methods on a role? 12:14
psch m: role R { method foo { } }; say R.^methods
camelia rakudo-moar e81342: OUTPUT«(foo)␤»
psch hankache: well, you can, but it gets punned
hankache psch how do you pun a builtin role? 12:16
psch hankache: punning is just treating a role as a class
hankache: what are you trying to do?
hankache say IO.^methods 12:17
m: say IO.^methods;
camelia rakudo-moar e81342: OUTPUT«(umask)␤»
psch github.com/rakudo/rakudo/blob/nom/...core/IO.pm
IO has exactly that one method
12:20 jameslenz left
hankache where are these coming from: 12:20
doc.perl6.org/type/IO
timotimo i suppose those subs are subs that are defined to take arguments that do IO 12:21
no, actually
raw.githubusercontent.com/perl6/do...ype/IO.pod
psch hm, that doc page does seem somewhat confusing 12:22
timotimo ugh, the pirate treasure example has mixed spaces and tabs
that causes the renderer to turn every line into its own code block
hankache psch this is what got me confused 12:23
timotimo i've got to run errands, someone fix that page pls? :D
psch would probably fit better as a language/IO instead of type/IO document...
ah, we have that too 12:24
dalek c: 824d9e4 | moritz++ | doc/Type/IO.pod:
Tabs are evil, let's go space!
12:25
hankache timotimo :)
psch moritz++
moritz easy karma :-)
hankache moritz++ 12:26
12:34 dalek left, dalek joined, ChanServ sets mode: +v dalek 12:35 hankache left 12:38 rurban left 12:41 crime joined 12:49 pierre_ joined
grondilu is now typing from a tmux session attached from a ssh session to his raspberry Pi from a debian VM running on his Windows 10 PC. What a mindf*ck. 12:50
12:52 dolmen joined, sufrostico joined 12:53 [TuxCM] left
moritz grondilu: you should add a level of Docker in there, just for the sake of completeness 12:53
sjn grondilu: mosh ftw 12:57
12:57 maybekoo2 left
sjn and ssh ProxyCommand tunnels 12:57
13:00 ufobat joined, Sgeo left 13:04 sufrostico left
grondilu jeez go figure. Compiling rakudo is almost ten times faster on the VM than on the Pi! 13:07
moritz I'm not surprised 13:08
the Pi doesn't have a fast CPU
grondilu but not a ten times slower CPU!
moritz well, memory caches, memory size, memory bus speed etc all play a role 13:10
13:11 maybekoo2 joined 13:14 sufrostico joined 13:15 Amnez777 left
RabidGravy yeah, the memory constraint on the RPi is a big factor 13:15
timotimo .o( what a minfduck ) 13:16
13:16 Amnez777 joined 13:17 ufobat left 13:20 skids joined
ugexe try compiling rj on rpi 13:22
pack a lunch first
jnthn Also, no JIT yet on ARM
But yeah, lower memory bandwidth and smaller cache will be a killer 13:23
timotimo yeah, we've tuned moar's nursery to be a cache size big
if your cache is only half that, or even smaller ... nursery collections will be much more expensive 13:24
ugexe grondilu: if by chance you have windows 10 pro then you already have Hyper-V 13:25
13:25 |Tux| left
gfldex m: enum Bits ( ('Bit-' xx * Z~ 1..8) Z=> (1, 2, 4 ... 256) ); dd Bits.enums; 13:26
camelia rakudo-moar 3cab7c: OUTPUT«{"Bit-1\t1" => 0, "Bit-2\t2" => 1, "Bit-3\t4" => 2, "Bit-4\t8" => 3, "Bit-5\t16" => 4, "Bit-6\t32" => 5, "Bit-7\t64" => 6, "Bit-8\t128" => 7}␤»
gfldex where does '\t1' come from?
timotimo instead of xx * Z, why not try X
13:26 |Tux| joined
timotimo it's stringifying the Pair object 13:26
gfldex m: enum Bits ( ('Bit-' X 1..8) Z=> (1, 2, 4 ... 256) ); dd Bits.enums;
camelia rakudo-moar 3cab7c: OUTPUT«{"Bit- 1\t1" => 0, "Bit- 2\t2" => 1, "Bit- 3\t4" => 2, "Bit- 4\t8" => 3, "Bit- 5\t16" => 4, "Bit- 6\t32" => 5, "Bit- 7\t64" => 6, "Bit- 8\t128" => 7}␤»
gfldex X makes it worse :) 13:27
timotimo well, of course
you forgot to add the ~ back after the X
gfldex m: enum Bits ( ('Bit-' X~ 1..8) Z=> (1, 2, 4 ... 256) ); dd Bits.enums;
camelia rakudo-moar 3cab7c: OUTPUT«{"Bit-1\t1" => 0, "Bit-2\t2" => 1, "Bit-3\t4" => 2, "Bit-4\t8" => 3, "Bit-5\t16" => 4, "Bit-6\t32" => 5, "Bit-7\t64" => 6, "Bit-8\t128" => 7}␤»
timotimo m: enum Bits ( ('Bit-' X~ 1..8) Z (1, 2, 4 ... 256) ); dd Bits.enums
camelia rakudo-moar 3cab7c: OUTPUT«WARNINGS for /tmp/kBQqasF29y:␤Useless use of "Z" in expression "('Bit-' X~ 1..8) Z (1, 2, 4 ... 256)" in sink context (line 1)␤{"Bit-1 1" => 0, "Bit-2 2" => 1, "Bit-3 4" => 2, "Bit-4 8" => 3, "Bit-5 16" => 4, "Bit-6 32" => 5, "Bit-7 64" => 6, "Bit-8 12…»
timotimo m: enum Bits ( ('Bit-' X~ 1..8) Z=> (1, 2, 4 ... 256) ); dd Bits.enums 13:28
camelia rakudo-moar 3cab7c: OUTPUT«{"Bit-1\t1" => 0, "Bit-2\t2" => 1, "Bit-3\t4" => 2, "Bit-4\t8" => 3, "Bit-5\t16" => 4, "Bit-6\t32" => 5, "Bit-7\t64" => 6, "Bit-8\t128" => 7}␤»
timotimo that's interesting
m: enum Bits %( ('Bit-' X~ 1..8) Z=> (1, 2, 4 ... 256) ); dd Bits.enums
camelia rakudo-moar 3cab7c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kOeZ4_ULIR␤Undeclared name:␤ Bits used at line 1␤Undeclared routine:␤ enum used at line 1␤␤»
gfldex m: enum Bits ( %(('Bit-' X~ 1..8) Z=> (1, 2, 4 ... 256)) ); dd Bits.enums;
camelia rakudo-moar 3cab7c: OUTPUT«{"Bit-1\t1" => 4, "Bit-2\t2" => 0, "Bit-3\t4" => 6, "Bit-4\t8" => 7, "Bit-5\t16" => 2, "Bit-6\t32" => 1, "Bit-7\t64" => 5, "Bit-8\t128" => 3}␤»
timotimo it's clearly not taking the numbers into the enum at all
dalek osystem: 90ab26b | yowcow++ | META.list:
Add Algorithm::BloomFilter to ecosystem

See github.com/yowcow/p6-Algorithm-BloomFilter
13:29
osystem: ff8c68d | RabidGravy++ | META.list:
Merge pull request #199 from yowcow/add-algorithm-bloomfilter

Add Algorithm::BloomFilter to ecosystem
gfldex should the declarator enum take complex expressions as a parameter? (read: is this a bug?) 13:30
m: my $thing = ( ('Bit-' X~ 1..8) Z=> (1, 2, 4 ... 256) ); dd $thing;
camelia rakudo-moar 3cab7c: OUTPUT«Seq $thing = ("Bit-1" => 1, "Bit-2" => 2, "Bit-3" => 4, "Bit-4" => 8, "Bit-5" => 16, "Bit-6" => 32, "Bit-7" => 64, "Bit-8" => 128).Seq␤»
timotimo i think it'd be very nice if it did 13:31
maybe you can get it via a constant?
github.com/timo/SDL2_raw-p6/blob/m...aw.pm#L505 - i don't think i was able to turn this into an enum, so i kept it a hash 13:32
13:32 cdg joined
gfldex m: constant thing = ('Bit-' X~ 1..8) Z=> (1, 2, 4 ... 256); my enum Bits ( thing ); dd Bits.enums; 13:32
camelia rakudo-moar 3cab7c: OUTPUT«{"Bit-1\t1 Bit-2\t2 Bit-3\t4 Bit-4\t8 Bit-5\t16 Bit-6\t32 Bit-7\t64 Bit-8\t128" => 0}␤»
gfldex if that's what you ment 13:33
timotimo that's what i meant, yeah
hmm.
that's super bad
gfldex enums as syntaxy things. It may be a usecase of macros. 13:34
timotimo don't think so, to be honest
i think it should work as-is 13:35
and just behave like evaluating a constant does
gfldex S12 doesn't say anything about expressions to form the enum. It only asked for list of pairs to work.
design.perl6.org/S12.html#Composition_from_Pairs
timotimo OK. i think TimToady will agree that it ought to be powerful :) 13:36
ugexe you can also change the path from cmd.exe with `setx C:\path\xxx;%PATH%`
timotimo and if and when he does, we'll find someone to implement that
13:38 dolmen left
gfldex Maybe tricky to decide as the whole expression has to be evaluated at compile time. We don't really have a way to state that intend besides `constant`. 13:38
takadonet morning all 13:39
13:44 crime left
timotimo morning takadonet 13:46
gfldex: i'm pretty sure the rhs of enum is already evaluated at compile time
takadonet timotimo: how are you good sir?
13:48 crime joined
timotimo i'm okay 13:49
how about you?
literal so, after an "apt-get install perl6-panda" on Debian, Panda complains about Shell::Command being missing. What's the solution there? 13:51
RabidGravy moan at the person who made the package?
timotimo it should be packaging its own copy of Shell::Command, actually
ilmari bugs.debian.org/cgi-bin/bugreport....bug=818926 13:52
gfldex m: my %thing = ('Bit-' X~ 1..8) Z=> (1, 2, 4 ... 256); my enum Bits ( %thing ); dd Bits.enums;
camelia rakudo-moar 3cab7c: OUTPUT«WARNINGS for /tmp/UcIChTdjhG:␤Useless use of %thing in sink context (line 1)␤{}␤»
timotimo so if it claims it's missing, it's somehow not finding its own Shell::Command properly
13:52 hotel_california joined
literal timotimo: yeah, I see it did actually install it, not sure why it doesn't find it 13:52
13:53 ZoffixW joined
RabidGravy to get a working panda however you could download the source from github and run the the bootstrap thingy 13:53
timotimo does it say it's looking in the right folders?
ugexe does `perl6 -MShell::Command -e ''` error?
ilmari the package ships a /usr/share/perl6/lib/Shell/Command.pm
literal ugexe: yes 13:54
ZoffixW perl6.party
timotimo oh lord, that is fantastic 13:55
ilmari but $*REPO.repo-chain only includes inst#/usr/share/perl6, not lib/
literal timotimo: it mentions /usr/share/perl6{,site,vendor}, but the modules are in /lib
ZoffixW :)
timotimo a-ha!
13:56 hotel left
timotimo .u 🙇 13:56
yoleaux U+1F647 PERSON BOWING DEEPLY [So] (🙇)
13:56 wamba joined
ugexe sounds like a cur::panda problem 13:57
RabidGravy ZoffixW, it needs music too :)
ZoffixW lol
literal ugexe: more like a lacking PERL6LIB (or whatever it's called), since "use Shell::Command;" happens at the top of /usr/bin/panda 13:58
@INC I mean
timotimo @INC doesn't exist any more 13:59
and it used to be @*INC, iirc. or maybe @?INC.
ugexe cur::panda puts installed modules into a /lib folder
RabidGravy would anyone else find this snapshot thingy useful enough for me to stick it in the ecosystem? 14:00
14:00 pierre_ left
ugexe its meant so when you upgrade rakudo that your modules are still installed. however im not sure the way it does it is exactly koscher 14:00
14:01 crime left
ugexe (re: distro packages) 14:01
literal is panda not able to install modules into a user-specific directory? gist.github.com/hinrik/a97d34db7bb...7736aabc2c 14:02
timotimo is that with an up-to-date rakudo?
we really ought to have that error not be fatal 14:03
literal 2016.04 from Debian unstable
timotimo and i thought we had code to deal with not-writable precomp stores
RabidGravy I thought if you set PERL6LIB to something panda would try there first
or did that change?
ugexe the first lib will be where it precomps at
literal RabidGravy: it does, otherwise it would be complaining about a missing Shell::Command 14:04
ugexe so give some writable path for the first lib path, and the real one for the 2nd
literal RabidGravy: oh sorry, misunderstood you
14:04 crime joined
literal but from checking the source I see it has a --prefix option 14:04
14:05 rurban joined, rurban left
literal so it works if I do: PERL6LIB="/home/hinrik/p6lib,/usr/share/perl6/lib" panda --prefix=/home/hinrik/p6lib install Linenoise 14:06
ugexe if only there was a package manager without 5+ dependencies...
literal but of course Linenoise has a test failure so it doesn't get installed :) 14:07
well, File::Which had the failure
timotimo ugexe: hah, i wonder why zef isn't being marketed more agressively 14:08
14:08 crime left
timotimo BBL 14:08
14:09 ufobat joined 14:12 grondilu left 14:14 grondilu joined
RabidGravy ugexe, does zef support versioned depencies BTW 14:14
14:14 zhmylove_ left
RabidGravy every once in a while I get real grief with changing dependencies which require a specific version 14:15
14:15 tharkun left 14:16 rjbs left, tharkun joined
ugexe yeah, in the form of `My::Module:ver<xxx>`. all depends get turned into that form, so a typical depends has an implied :ver<*> 14:18
RabidGravy cool 14:19
14:20 domidumont1 joined
RabidGravy does DependencySpecification have a constructor that takes that kind of string or do you pull the parts apart yourself? 14:21
14:22 domidumont left, zakharyas left 14:23 ZoffixW left
ugexe you have to feed it each part. zef has its own Zef::Distribution::DependencySpecification which can break down a single string (My--Module:github:ugexe:1.0 or My::Module:auth<github:ugexe>:ver<1.0>) into those parts 14:24
14:26 grondilu left
RabidGravy groovy 14:27
ugexe the only problem is that versions are kinda useless right now. the p6 ecosystem only gives access to the latest version in its meta data, and metacpan doesnt have up-to-date versions 14:30
mst bargle 14:31
ugexe i have github.com/ugexe/Perl6-ecosystems/...its/master which could conceivable match version changes to their commit id though
mst I owe the world a blog post, followed by several emails, followed by waiting 48hr, followed by letting the spice flow again
moritz mst: then stop procrastinating here and get to work! :-) 14:32
14:32 rjbs joined
mst moritz: www.trout.me.uk/poem.jpg 14:33
14:35 ptolemarch joined
RabidGravy ugexe, well the version is useful if a module requires a newer version than one that may be installed 14:37
which is part of the problem I've been having
14:37 grondilu joined
RabidGravy ugexe, I've been doing some experiment with doing similar to that storing the META stuff in CouchDB 14:39
other JSONish document databases are available 14:40
but that was more of a test/example for Sofa than anything for real use 14:43
14:45 yqt joined 14:46 lostinfog joined 14:48 nd3i joined
ugexe yeah that would work better. the purpose of that repo is really just to be a more stable mirror of the normal api.p6c.org/packages.json or whatever (since sometimes the json posted there is not complete for some reason) 14:51
14:51 cyberviking joined
ugexe and to allow fetching the package list via `git`, so a proxy wont get in the way of the initial run 14:51
14:52 cyberviking left, kerframil joined
nd3i I'm looking for a better/idiomatic way to do str ~~ s/x/y/ and get str' as the result. (ok, i'm golfing) 14:52
So far I have a sub that copies the input, s///, and returns the copy 14:53
Something like: sub d-only ($in) { my $out = ~$in; $out ~~ s:g/\D+//; $out }
ugexe substr-mutate?
moritz nd3i: sub d-only($_) { S:g/\D+// } 14:54
ugexe oh a copy
grondilu jeez perl6 is so much faster even on a VM it's crazy
nd3i Right. I don't want to change the input 14:55
perlpilot grondilu: I don't think Rakudo is "crazy fast" just yet ;-)
moritz S/// returns a modified copy 14:56
s/// mdoifies in-place
nd3i Cool! That's what I missed. I'll play with S///.
14:57 Xliff_ZZzzzz is now known as Xliff
Xliff \o #perl6 14:57
RabidGravy, you mentioned a snapshot thingy. Sounds interesting. What is it taking snapshots of?
RabidGravy it just does what "cpan autobundle" does, but writes out a META file with all the installed modules as dependencies 14:58
so that if you, say, want to twat your rakudo install completely you can recreate the same modules 14:59
or if you wanted to deploy something to a different machine or something
nd3i Also, I want to use the REPL to test subs loaded from a file (the debugger seems to crash a lot)
Xliff RabidGravy, Ooh! Yes, please!
Considering I will have to do just that soon, it would be most helpful.
nd3i Someone suggested require /path/to/source.p6 but that doesn't seem to define the subs in the REPL 15:00
RabidGravy give me an hour or so :)
Xliff RabidGravy++
Also, I will probably be releasing the draft version of Audio::OggVorbis. Are there any writeups on how to get it into the ecosystem? 15:01
perlpilot nd3i: subs are lexical
RabidGravy in short clone perl6/ecosystem add the location of your repo and make a PR 15:02
add your repo to META.list that is
but looking forward to seeing that 15:03
nd3i perlpilot: right. I get that. 15:04
I know require pulls definitions into the current file; I guess it doesn't with the REPL
Even cut/paste isn't working; it seems to be limited to one-liners. 15:05
I guess I'll have to stick with the debugger.
Ack! NM. Cut/paste is working for me now. Not sure what I was doing before. 15:08
ttfn tyvm 15:09
15:09 nd3i left
masak blogged! strangelyconsistent.org/blog/trinity 15:09
RabidGravy oh, I was just about to explain that the subs would be lexical to the compilation unit anyway
masak++ cool 15:11
15:13 zhmylove joined
dalek c: 36f4e8d | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod:
doc enum
15:17
15:21 zhmylove left 15:23 prammer left 15:25 domidumont1 left 15:34 prammer joined 15:35 pierre_ joined 15:36 pierre_ left 15:42 domidumont joined 15:45 ufobat left 15:52 domidumont1 joined
jnthn masak: Shiny diagrams in that post :) 15:54
15:55 domidumont left 15:57 abraxxa left
RabidGravy catches up on a month's worth of new music 16:00
you lot are cool but the musicians and DJs I know are quite awesome 16:01
dalek c: 7db3744 | (Jan-Olof Hendig)++ | doc/Type/IO/Handle.pod:
Remove documentation for method ins since it no longer exists
16:04
stmuk_ www.openhub.net/p/rakudo 16:05
dogbert2 good afternoon #perl6 16:06
what is the perl6 replacement for $. now that the IO::Handle ins method no longer exists? 16:07
16:10 cognominal left, cognominal joined, khw joined
masak jnthn: they came out nice :) 16:12
perlpilot dogbert2: .ins 16:14
oh, me can't read
16:15 sno left 16:16 sufrostico left, leont joined
perlpilot Why does IO::Handle no longer have .ins? 16:16
16:16 sufrostico joined
dogbert2 perlpilot: it seems to have been removed in 77fc44d9c0f 16:18
by none other than lizamt
*lizmat
16:20 dwarring left 16:21 wamba left, wamba1 joined
felher likes reading masak's posts :) 16:21
they are always fun :)
Xliff m: my @b = [None xx 2] xx 2; say @b 16:22
camelia rakudo-moar 3cab7c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HYbZWpYk6p␤Undeclared name:␤ None used at line 1␤Undeclared routine:␤ xx used at line 1␤␤»
16:22 ZoffixW joined
Xliff m: my @b = [Nil xx 2] xx 2; say @b 16:22
camelia rakudo-moar 3cab7c: OUTPUT«[[(Any) (Any)] [(Any) (Any)]]␤»
ZoffixW What is S///? An operator? Sub? Special syntax? 16:23
I wanna look up it's definition of ACCEPTS
ilmari m: None.WHAT.say
camelia rakudo-moar 3cab7c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9pKo9hFiOK␤Undeclared name:␤ None used at line 1␤␤»
dalek osystem: 4cc08f3 | Altai-man++ | META.list:
Add Devel::Trace to ecosystem
16:24
osystem: eff33e9 | (Zoffix Znet)++ | META.list:
Merge pull request #200 from Altai-man/master

Add Devel::Trace to ecosystem
16:24 leont left
dogbert2 ah, looking at the code it seems we should now use .lines.kv instead 16:24
dalek rl6-most-wanted: 14c577d | Altai-man++ | most-wanted/modules.md:
Remove Devel::Trace since we already have one.
16:25
rl6-most-wanted: 45e382e | (Zoffix Znet)++ | most-wanted/modules.md:
Merge pull request #28 from Altai-man/master

Remove Devel::Trace since we already have one
16:29 avenj left
Xliff Ahhh masak. I've been waiting for this blog post since you mentioned it..... 16:31
ZoffixW I think I found it: github.com/rakudo/rakudo/blob/nom/....nqp#L7659 16:35
No idea what it's calling though :P
16:38 zhmylove joined
masak Xliff: cool. hope it makes sense. I'm sure there's tens of bits of relevant prior art that I've failed to mention or am not aware of. 16:40
but that's part of the charm of blogging ;)
Universal/Isomorphic JS comes to mind, for example 16:41
16:42 dakkar left
ZoffixW m: say 'foo' ~~ S/^// 16:43
camelia rakudo-moar 3cab7c: OUTPUT«Potential difficulties:␤ Smartmatch with S/// can never succeed because the string it returns will fail to match. You can use given instead of ~~.␤ at /tmp/wYKB77ZbKI:1␤ ------> 3say 'foo' ~~ 7⏏5S/^//␤True␤»
ZoffixW ehehe :) It lies!
16:43 zhmylove left
timotimo masak: the link to the msdn developer center is b0rked, as it forgot to have the .aspx in its url 16:44
Xliff masak: What trips me out is that with webapps, the controller is emitting code to the browser to implement the UI. 16:45
Even more trippy - output templates containing UI code might be stored in the database. 16:46
ZoffixW All that suggests to me is the MVC pattern is a poor choice for web apps :)
Xliff ZoffixW, your replacement suggestion, then? 16:47
I mean MVC isn't perfect, but its the most sensible one I've seen, so far.
[Coke] apologizes for breaking the build trying to unbreak the build. 16:49
[Coke] waves from the highway
ZoffixW Xliff, well, I use MVC with fat models, but they just don't feel right. I saw a few months ago a post by someone proposing a new pattern, but the post was very long, dense, and I was hungover.
ZoffixW tries to find it
No idea... It was featured on HackerNews is all I know :P 16:52
ugexe MVVM :P 16:53
16:54 prammer left 16:55 prammer joined 16:56 _mg_ left 17:01 prammer left 17:02 prammer joined 17:04 prammer left 17:05 prammer joined 17:08 prammer left 17:09 prammer joined, ZoffixW left
pmurias Xliff: re controller emitting code, isn't that sort of "solved" by single page webapps 17:10
17:15 tharkun left, tharkun joined 17:17 baest joined
dalek c: ac18efb | (Jan-Olof Hendig)++ | doc/Type/Dateish.pod:
Added documentation for method week-year
17:18
masak timotimo: thank you. fixed now.
Xliff pmurias, controller still has to emit that single page.
and SPAs, by definition, include JS.
17:21 Actualeyes left
RabidGravy stmuk_, I blame you for this entirely, I just lost an hour dicking round with Open Hub 17:23
Xliff Open Hub? 17:26
[Coke] mst++ # my wife and I approve of your poem. 17:27
Xliff s/Coffee/Spiced Chai Latte/ -- and it would be perfect! 17:28
RabidGravy Xliff, www.openhub.net/ 17:30
Xliff \o/ 17:33
ugexe you are pretty much asking for a ViewModel 17:34
Xliff perl6-Sudoku!
ugexe so MVVM, or even MVCVM
Xliff MV->c<-VM
mst MVC gets confusing with the web 17:36
ZoffixWin: I guess you should avoid Catalyst and Mojolicious then if you think that
ZoffixWin: maybe try Web::Simple and Dancer instead :P
17:38 zhmylove joined 17:41 leont joined
_nadim There's no page for MAIN on the docs site. but if you happen to type MAN instead (when your fingers are all messed up) you get to the performance page that no one says nothing about :) 17:43
17:47 uruwi joined 17:50 yqt left
timotimo will someone try to explain the central message of The Big Lebowsky to me? and why "the dude abides" is (seems to be) such a catchphrase 17:55
perlpilot timotimo: www.quora.com/The-Big-Lebowski-199...bides-mean 17:57
ugexe i believe its that smoking weed is cool and white russians are not a girl drink
perlpilot (I'm lazy)
timotimo thanks :P 18:00
i personally don't have a problem drinking "girl drinks"; maybe one of my role models is J.D. from Scrubs, who likes "Appletinis"
_nadim Am I conpletely mistake to think that MAIN does not need Getopt::Type to handle switches? I though I saw an example of that but I am not sure anymore. 18:01
timotimo interestingly, before i looked it up, "abide" meant something like "comply" or "obey" to me 18:02
perlpilot _nadim: design.perl6.org/S06.html#Declaring...subroutine 18:03
18:06 prammer left 18:07 zhmylove left
_nadim I was just reading that, it looks like it and I didn't understand why I got an error! 18:09
hmm, dumb ass me! maybe the name of the script on the command line would do some good
18:12 sufrostico left 18:15 sno joined 18:18 firstdayonthejob left 18:20 firstdayonthejob joined
Xliff A test in Audio::OggVorbis requires the creation of a file. Does the automatic testing on modules.perl6.org allow that? 18:21
And also, how do I configure my module to work with that system?
tony-o the big lebowsky is about fighting the system, man
timotimo system be damned 18:23
tony-o most of the stuff he says is also repeated
Xliff So is Fight Club
tony-o when he's writing a check at the beginning he first hears 'this aggression will not stand' 18:24
Xliff Oops! I mentioned Fight Club. Hope Tyler didn't hear that.
timotimo ZoffixWin: you claim in your "extra typical perl6" that you can't have method chains across multiple lines
tony-o then he says that throughout the movie
timotimo ZoffixWin: i don't think that's correct
gtodd do many folks here use perl6 on the jvm?
timotimo at the moment perl6 on jvm isn't very usable, but it's being worked on, and people have used it in the past 18:25
18:25 avenj joined
gtodd I haven't done so for a long time because .... slow and not up to date ... 18:25
18:26 cdg left
gtodd when all that's available is a jvm I sometimes fiddle around with scala and/or groovy just wondered if perl6 was available 18:27
timotimo right 18:30
bartolin speaking of that, there is PR 748 for rakudo which should make about 5500 tests pass on the JVM (again). 18:34
gtodd whoa
bartolin I know that psch++ worked on implementing something like VMNull for JVM -- which would be a better alternative to that PR
18:35 firstdayonthejob left
bartolin but maybe the relevant part of that PR should be included until that work is finished? 18:36
timotimo reverts are cheap. if it helps others move more quickly, maybe it's a good idea? i'd ask psch how hard it'd be to work on vmnull when that PR is applied on master in the mean time
_nadim can one die without a stack trace? 18:37
timotimo you can note + exit
_nadim oki
gtodd things with versions that "also run on the jvm" periodically get out of sync
_nadim I tried to exit a string that didn't go well :) 18:38
timotimo hah
yeah, exit is only for the process' return code
_nadim exit is horrible anyway 18:39
timotimo well, at least you can catch exit nowadays :)
_nadim Ha! Can I?
timotimo yup 18:40
_nadim is exit an exception
timotimo not quite
that stuff is new and i hadn't looked at it yet
it involves a dynamic variable if i'm not mistaken
_nadim a link maybe?
timotimo a ... link? 18:41
_nadim Bleah, a dynamic variable. what is wrong with throwing an exception that the run time catches?
a link to where that is explained.
gtodd of course some things that start out on the jvm and hope to branch out end up staying :) ... e.g. scala
timotimo exceptions are too easily caught too broadly without thinking about it.
_nadim lol! isn't it exactly what it should be? 18:42
18:42 astj left
timotimo &*EXIT is what gets called when sme code runs "exit" 18:43
_nadim ah! and that can be redefined I guess.
timotimo yeah, like any dynamic variable 18:44
_nadim weird, I find Getopt::Type in the ecosystem but panda fails the installation with "resolve stage failed for Getopt::Type: Project Getopt::Type not found in the ecosystem" 18:45
moritz _nadim: did you run "panda update"? 18:46
18:46 sufrostico joined
_nadim no, never have before, let's try 18:47
dalek c: b1e8212 | (Jan-Olof Hendig)++ | doc/Type/Complex.pod:
Added documentation for the reals method plus some examples for re and im
_nadim moritz: that's what it needed, thanks 18:48
18:48 rindolf left
timotimo maybe when we give the "not found in the ecosystem" error we should also point out when the last update was 18:49
_nadim I think that sould be a nice hint 18:51
I am still not wrapping my head around design.perl6.org/S06.html#Declarin...ubroutine. I understand that I can use --options on the command line but if i I do i get a usage message! 18:52
18:53 rindolf joined
timotimo the --options have to go before the positional arguments 18:53
that easily confuses people
_nadim Ah! like the panda command line 18:54
timotimo yes, it uses MAIN, too
masak m: my &*EXIT = { say "OH HAI"; exit }; exit 18:55
DIHWIDT, I guess. 18:56
camelia rakudo-moar 3cab7c: OUTPUT«(timeout)OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH HAI␤OH H…»
gtodd hehe
18:56 ZoffixW joined
ZoffixW m: say quietly 'foo' ~~ S/f/m/; 18:56
camelia rakudo-moar 3cab7c: OUTPUT«Potential difficulties:␤ Smartmatch with S/// can never succeed because the string it returns will fail to match. You can use given instead of ~~.␤ at /tmp/R7Bw8kNp0f:1␤ ------> 3say quietly 'foo' ~~ 7⏏5S/f/m/;␤False␤»
ZoffixW Is it a bug that quietly doesn't quiet that warning or am I using it wrong? 18:57
_nadim timotimo: then I guess I have to go look at the example because it won't take switched at the begining of the command line or otherwise.
timotimo yeah, time for examples i suppose 18:58
ZoffixW: that's a compile-time warning; you'd suppress those with "no warnings"
geekosaur ZoffixW, I think that;s a compile warning... that
ZoffixW timotimo, RE article: that wasn't my claim. The claim was you can't have method chains with .&sub calls in them on multiple lines.
I tried it on the weekend. Was I doing something wrong? 18:59
Same applies to chains started on WhateverStar
timotimo oh, really? you can't?
ZoffixW m: sub even { $^a %% 2 }; say 42␤.&even␤.uc; 19:00
camelia rakudo-moar 3cab7c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1NYXbpXv67␤Malformed postfix call (only alphabetic methods may be detached)␤at /tmp/1NYXbpXv67:2␤------> 3.7⏏5&even␤»
timotimo oh!
19:00 sufrostico left
timotimo interesting 19:00
ZoffixW Hm. Seems like the trully correct answer is: you can't break the chain *before* the &sub calls, but you can afterwards
m: sub even { $^a %% 2 }; say 42.&even␤␤␤␤.uc;
camelia rakudo-moar 3cab7c: OUTPUT«TRUE␤»
dalek c: c4e1d89 | (John Gabriele)++ | doc/Language/5to6-perlfunc.pod:
fix Pod typo, and minor reword
19:01
ZoffixW timotimo++ # Article updated 19:03
timotimo thx :) 19:04
ZoffixW m: no warnings; say 'foo' ~~ S/f/m/;
camelia rakudo-moar 3cab7c: OUTPUT«===SORRY!===␤Don't know how to 'no warnings' just yet␤»
ZoffixW heh
timotimo m: no worries; say 'foo' ~~ S/f/m;
camelia rakudo-moar 3cab7c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UiJJNjUaPG␤Malformed replacement part; couldn't find final /␤at /tmp/UiJJNjUaPG:1␤------> 3no worries; say 'foo' ~~ S/f/m;7⏏5<EOL>␤ expecting any of:␤ infix stopper␤»
timotimo m: no worries; say 'foo' ~~ S/f/m/;
camelia rakudo-moar 3cab7c: OUTPUT«Potential difficulties:␤ Smartmatch with S/// can never succeed because the string it returns will fail to match. You can use given instead of ~~.␤ at /tmp/yxJEtrN5BB:1␤ ------> 3no worries; say 'foo' ~~ 7⏏5S/f/m/;␤False␤»
timotimo hm.
geekosaur isn;t worries just perl5 stuff?
19:05 sufrostico joined
timotimo no clue :P 19:05
ZoffixW That warning lies and I can think of some cases where the smartmatch S/// is kinda useful.
Well... not to imply there isn't a better way to do those useful things :) 19:06
19:13 domidumont1 left 19:15 jjido joined
geekosaur the precise situation in which "it lies" is when the result of the S/// is identical to its input. 19:16
19:16 yqt joined
geekosaur I can't think of a case where *an operation whose purpose is to produce a changed string on success* makes any real sense. it looks more like a thinko 19:17
(that is, as part of a smartmatch) 19:18
but yes, if you are sufficiently "it doesn;t have to make any sense at all, just do *something*", it "lies"
if I wanted that, I'd use Intercal\
ZoffixW My critique of the S/// error and proposed change: rt.perl.org/Ticket/Display.html?id=128019 19:19
geekosaur sigh
ZoffixW What? 19:20
geekosaur you win, the very few not even sensible but they work! outweigh that it;s almost always an error, please remove the warning
ZoffixW Have you even read the ticket?
grondilu I have a class that works fine but inefficiently. I'm considering making it a base and create a "Optimized" role that would improve on stuff. I annoyed by the choice on names, because is "is Optimized" sounds good but "does Optimized" sounds silly. 19:21
(it's crazy how much time I can waste thinking about names during programming) 19:23
ZoffixW There are only two hard problems in programming: cache invalidation, naming stuff, and off-by-one errors.
lucs grondilu++ It's not wasted time
skids "does Optimizing"? 19:24
ZoffixW does Optimizations? :)
grondilu but then "is Optimizing" is not quite right. 19:25
ZoffixW heh
lucs is Better, does Better ;)
grondilu lol
ZoffixW lucs++ # read my mind lol :)
grondilu or maybe "role Optimized {...}; role Optimization is Optimized {}" 19:26
making two roles, one being an alias of the other.
skids
.oO(what does role A is B do?)
19:27
I always used does.
grondilu inheritance
lucs One thing I've come to realize and have started to accept is that those names we try to make just right (as we should) are above all symbols, and not necessarily real words.
19:27 sufrostico left
grondilu m: role A {}; role B is A {} 19:28
camelia ( no output )
19:28 tomboy65 left
skids Yeah it "works". Also, "my role X::Temporal is Exception" is in an example in S32. Just... never saw that before. 19:29
lucs For example, I've got a project for handling code snippets, where I've got names like Snip (snippet), Snal (snipper alias), Snalex (snippet exception), Snalob (snippet object) 19:31
ZoffixW geekosaur, my main concern is the suggested fix in the warning. The "lies" part, while less relevant, obscures what's actually happening with the code and is too wordy. I didn't mean to sound confrontational to your response, but I feel my suggestion is reasonable enough. 19:32
lucs (er, snalex et al are "snippet alias foo")
19:33 tomboy64 joined 19:36 colomon left, colomon joined
Xliff Does someone have docs as to how you add something to the ecosystem. I have the basic gist of what to do, but there are questions... 19:37
For example, once added, can I force panda/zef to only extract a certain version?
How do you set up automated testing? Can your tests access the filesystem? 19:38
19:39 Relsak joined 19:40 sufrostico joined
ZoffixW Xliff, there's this docs.perl6.org/language/modules and the README: github.com/perl6/ecosystem/ 19:40
moritz panda defaults to the master branch, so you can develop in a different branch and only merge releases into master
(or it defaults to whatever the default branch on github is, rather)
Xliff Hrm. 19:41
OK. Was hoping I could specify a branch and develop on master.
ugexe zef can fetch a specific version, but the ecosystem only provides 1 version. if you use cpan with it you can get a specific version, but its contents are outdated
Xliff The opposite way makes just as much sense.
ZoffixW Doesn't panda fetch from whatever branch the META6.json is located at? 19:42
I recall RabidGravy saying they use a specific URL for releases or something
RabidGravy yeah, you can point at a tag 19:43
but that means you'd have to have some release branch or whatever
skids Yeah looks like there is explicit code for calling add_parent when a role has a parent class. Yet specs say "A role may not inherit from a class" and seems to go out of the way to use the "role A { also is Class; }" syntax rather than "role A is Class" when talking about forcing inheritance by the composing class. Mysterious. 19:44
moritz ugexe: in the end we won't get around creating releases
and uploading them
skids: the two are exactly the same
skids: and role A is Parent { } doesn't make A inherit from Parent; rather it makes a class that A is composed into inherit from Parent 19:45
19:45 tomboy64 left
skids moritz: right, that I already knew. 19:45
moritz skids: basically, roles copy their whole body into a class they are composed into. If you think of it that way, using the "also is ..." syntax inside the body is kinda more intuitive 19:46
jnthn Since composition is flattening, then you can also view the "does" as "giving roles" to the target class too. 19:47
19:49 tomboy64 joined 19:50 ZoffixW left 19:52 Ven joined 19:55 jjido left 19:56 kaare_ left 20:02 tomboy64 left 20:03 tomboy64 joined 20:08 zakharyas joined, Ven left 20:10 cdg joined 20:11 wilcov joined
tony-o MadcapJake: search should work a little bit better now 20:12
20:13 firstdayonthejob joined 20:15 vendethiel joined 20:18 ptolemarch left 20:19 dolmen joined 20:23 darutoko left 20:24 grondilu left 20:31 sortiz joined
dalek c: 7fa4c56 | skids++ | doc/Language/objects.pod:
Document role-assisted inheritence and method definition pecking order
20:35
20:43 zakharyas left
sortiz \o #perl6 20:45
RabidGravy harr!
20:49 dwarring joined 20:51 ZoffixLappy joined 20:57 spider-mario joined
masak d'arr! 21:00
21:00 skids left
RabidGravy :) 21:10
21:10 wilcov left, cognominal left
timotimo r'arr 21:11
21:12 telex left
dalek Iish: 27d7de3 | (Salvador Ortiz)++ | lib/DBDish/Oracle (2 files):
Oracle: Reorder native subs
21:12
Iish: f745116 | (Salvador Ortiz)++ | lib/DBDish/mysql (2 files):
mysql: Reorder native subs
Iish: 9b1131c | (Salvador Ortiz)++ | / (2 files):
For panda's users, now v0.5.7

Native call scope issues fixed, 40x ~ 60x faster
21:12 TEttinger joined, telex joined 21:13 cognominal joined
timotimo wow! 40x ~ 60x? !?! 21:14
is that the "reorder native subs" commits?
sortiz yep: From 167s to 2.5s 21:15
timotimo that diff is hard to read
sortiz Fetching 8000 records.
timotimo you moved native subs outside of the methods that call them??
21:15 wamba1 left 21:16 captain-adequate joined
ZoffixLappy sortiz++ 21:16
sortiz timotimo, Yes, only that.
21:16 jjido joined
timotimo interesting. so that prevents a closure from being taken i suppose? but what else? 21:16
sortiz If the sub is declared inside the method, the Native Role attached by 'is native' trait is recomposed at every call, causing all the !setup dance to repeat. 21:18
Including the library searching, loading, symbol search, etc.
21:19 _28_ria left
jnthn m: multi trait_mod:<is>(Routine $r, :$foo!) { $r does role { has $.x is rw } }; sub bar() is foo { }; &bar.x = 42; say &bar.x; say &bar.clone.x 21:20
camelia rakudo-moar 3cab7c: OUTPUT«42␤42␤»
jnthn Hmmm
21:20 _28_ria joined
sortiz As all are native calls, no closures involved. 21:20
21:21 atweiden joined
jnthn sortiz: A nested sub is a closure 21:21
sortiz: And so will be cloned on entry to the surrounding
And that'll happen prior to the setup, which will then happen in a throw-away copy
So yeah, not surprised this improves things :) 21:22
sortiz Yes and No, I was expecting that without "captures", no closure was formed.
jnthn No, it always will be at present.
That'll probably be otpimized at some point 21:23
sortiz Yep, yesterday I discuss the details with masak.
Originally the MoarVM profiler shows me the problem. 21:24
And yes, I found that is cloned, so the role attributes reset. 21:25
21:26 cognominal left
jnthn :) 21:26
profiler++
sortiz The callsite setup is very expensive, so the gains :-) 21:28
21:28 cognominal joined
jnthn Yeah 21:30
NativeCall's internals are decidedly in the queue for a good performance-oriented overhaul 21:31
The current factoring is opaque to the JIT, unfortunately.
21:32 wamba joined 21:34 colomon left
sortiz I'm working, on an external module, in a Native Libs/calls revamp. One important thing is that, in Windows, LoadLibrary search all over the place at every call, no matter if the DLL is already loaded. 21:35
21:35 colomon joined
sortiz jnthn, BTW, MoarVM repo accepts PRs for dyncall? ;-) 21:36
21:37 uruwi left
jnthn sortiz: In theory, though it's nice to send the upstream too, and MoarVM targets both dyncall and libffi to get sufficient platform coverage. 21:38
sortiz: Also the trouble with our own derived versions of things is it can make life awkward for packagers on distributions that hate you bundling stuff. :)
21:39 jjido left
sortiz Yes, I understand that. I'll try upstream first. 21:39
21:40 cognominal left 21:41 colomon left, cognominal joined
sortiz Was asking 'cus github.com/MoarVM/MoarVM/blob/mast.../README.md ;-) 21:42
ZoffixLappy What is :mm($samemark) arg in .subst/.subst-mutate? It doesn't seem to be documented 21:43
masak 'night, #perl6 21:44
ZoffixLappy night
sortiz night masak
jnthn o/ masak 21:45
21:45 dolmen left
jnthn m: say 'püt'.subst(/p\w/, 'po', :mm) 21:46
camelia rakudo-moar 3cab7c: OUTPUT«pöt␤»
ZoffixLappy Ah, thanks. jnthn++
geekosaur pretty sure that's documented in the synopses
ZoffixLappy Right, S05 I forgot to check there 21:47
timotimo these days it's hard to figure out when looking at the synopses is a good idea and when it's not :) 21:48
jnthn sleep &
sortiz o/ jnthn 21:49
geekosaur I'm just in the habit of checking both these days, because from my POV stuff is scattered all over the place and far too often I have to already know the answer to my question to figure out where the answer is :
:/
ZoffixLappy I'm going to document S/// in language/operators under.. um... "Miscellaneous Operators" unless someone can suggest a better place
sortiz timotimo, indeed, that is the hardest part for learning Perl6 :-) 21:50
21:50 grassass left 21:56 wamba left
ZoffixLappy m: sub foo ($x) { '42' }; my $m = 'foo' ~~ /f(o)(o)/; say foo($m) 21:58
camelia rakudo-moar 3cab7c: OUTPUT«42␤»
ZoffixLappy m: say 'meowmix'.subst: /me (.) (.+)/, -> ($x) {}; 21:59
camelia rakudo-moar 3cab7c: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in sub-signature␤ in block <unit> at /tmp/fjxOybStJY line 1␤␤»
ZoffixLappy m: say 'meowmix'.subst: /me (.) (.+)/, -> ($x, $y) {};
camelia rakudo-moar 3cab7c: OUTPUT«Unexpected named argument '' passed in sub-signature␤ in block <unit> at /tmp/iJFsMQMud1 line 1␤␤»
ZoffixLappy Weird, no? In the sauce, the Callable is called as $replacement($m), where $m is an element from the result of self.match in Str class 22:00
m: sub foo ($x) { '42' }; say 'meowmix'.subst: /me (.) (.+)/, &foo; 22:02
camelia rakudo-moar 3cab7c: OUTPUT«42␤»
ZoffixLappy Doesn't happen with subs... Am I declaring point block's sig wrong?
22:02 rurban joined, rurban left 22:07 [ptc] left, avar left
ZoffixLappy m: my $callable = -> ($x) { 42 }; my $m = 'foo' ~~ /f(o)(o)/; say $callable($m) 22:07
camelia rakudo-moar 3cab7c: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in sub-signature␤ in block <unit> at /tmp/xrZO2dcoGJ line 1␤␤»
ZoffixLappy reports
22:07 wtw_ joined
geekosaur m: say 'meowmix'.subst: /me (.) (.+)/, (-> $x, $y {}); 22:07
camelia rakudo-moar 3cab7c: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at /tmp/vbj3H6VyoX line 1␤␤»
geekosaur huh
22:08 ilogger2 joined, ChanServ sets mode: +v ilogger2
ZoffixLappy m: my $callable = -> $x { 42 }; my $m = 'foo' ~~ /f(o)(o)/; say $callable($m) 22:08
camelia rakudo-moar 3cab7c: OUTPUT«42␤»
ZoffixLappy m: my $callable = -> ($x, $y) { say "$x $y" }; say $callable([1, 2]) 22:09
camelia rakudo-moar 3cab7c: OUTPUT«1 2␤True␤»
ZoffixLappy K, I see what my mistake was. geekosaur++
22:11 [ptc] joined 22:13 vendethiel joined
MadcapJake tony-o: search works great now! 22:13
22:14 avar joined
dalek c: 0712be4 | (Dabrien 'Dabe' Murphy)++ | doc/ (2 files):
Document "Hash vs. Block" Gotcha

   my %fruits = apple => 'McIntosh', pear => 'Bartlett';
   given (%fruits) {
   my $fails = { red => $_<apple>, green => $_<pear> };
   say $fails.WHAT; # Block
   say $fails<red>; # ERROR: Type Block does not support associative indexing
   }
22:16
c: 496ec07 | (Dabrien 'Dabe' Murphy)++ | doc/ (2 files):
Incorporate feedback re: idiomaticity

zoffixznet++
  ab5tract++
c: 1cd7ebe | (Zoffix Znet)++ | doc/ (2 files):
Merge pull request #463 from perl6/hash-block

Document "Hash vs. Block" Gotcha
RabidGravy boom 22:18
dalek c: 942fada | (Zoffix Znet)++ | doc/Type/Str.pod:
Update Str.pod
22:20
22:26 wamba joined 22:28 kid51 joined 22:30 Sgeo joined 22:35 vendethiel left
sortiz m: say "meowmix".subst: /me (.) (.+)/, -> { $1 ~ $0 }; # ZoffixLappy, I dunno how to destructure a Match, but this works. 22:39
camelia rakudo-moar 3cab7c: OUTPUT«wmixo␤»
22:39 colomon joined 22:40 grondilu joined
ZoffixLappy :) 22:41
RabidGravy right that's enough, I'll finish the documentation for this thing in the morning 22:43
toodles 22:45
ZoffixLappy \o 22:46
22:46 infina joined, infina left, infina joined 22:49 colomon left 22:50 colomon joined 22:54 colomon left
sortiz In general I found more idiomatic to initialize a Hash with a list of pairs. 22:54
atweiden i'm trying to make a parser that recursively parses `include` directives, as per here gist.github.com/atweiden/3a904d455...bd1f7e0c33 23:04
however i keep getting this error message `Cannot assign to a readonly variable or a value`, which is being triggered at `make Inclusive.parsefile($filename, :$actions).made;` 23:05
am i going about this incorrectly, or is this a compiler bug?
23:16 BenGoldberg joined
ZoffixLappy New blog post: "Perl 6: The S/// Operator": blogs.perl.org/users/zoffix_znet/20...rator.html 23:17
captain-adequate Nice one ZoffixLappy 23:18
23:24 BenGoldberg left 23:25 jameslenz joined, BenGoldberg joined 23:27 geekosaur joined 23:29 uruwi joined
BenGoldberg wonders how much difference there is between a pointy block and an anonymous sub. 23:32
23:33 cognominal joined
TimToady they smell different 23:37
sortiz BenGoldberg, imo the most important are its return semantics.
TimToady secondarily the parameters default differently, and block don't declare implicit $/ or $! 23:38
dalek c: 43e79a2 | (Zoffix Znet)++ | doc/Language/operators.pod:
Document s/// and S///

Closes #437
TimToady pointies don't get their own $_ by default either unless you -> $_
ZoffixLappy heh... I notice someone deliberately downvotes all Perl 6 posts posted on /r/perl/ reddit :P 23:45
gtodd ZoffixLappy: So glad you documented overcoming the difficulty of S/// ++ 23:49
ZoffixLappy \o/ 23:50
It makes perfect sense once you know what it's actually doing :) 23:51
23:51 tardisx joined