IRCloggy #perl6 2016-01-26

Logs Search ←Prev date Next date→ Channels Documentation

Provider of IRC logs since 2005.
WARNING: As Freenode became unjoinable and lost all warnings in topics, we cannot log channels on Freenode anymore.

2016-01-26

ZoffixWin left00:00
SCHAAP137 left00:03
autarch AlexDaniel: I think I missed that00:03
AlexDaniel autarch: http://irclog.perlgeek.de/perl6/2016-01-25#i_1193948600:04
autarch: no loop required, no nothing! As simple as that00:04
vendethiel left00:05
leont joined00:05
autarch AlexDaniel: yeah, that seems better00:07
vendethiel joined00:11
cdg left00:12
drrho left00:15
drrho joined00:15
ajr_ left00:18
firstdayonthejob left00:19
mohae_ joined00:26
mohae left00:27
kid51 joined00:33
telex left00:37
telex joined00:38
laz78 joined00:39
spider-mario left00:52
gtodd Bags are fascinating :)00:53
yqt left00:55
vendethiel left00:55
yurivish_ left00:58
adu left00:58
vendethiel joined00:59
yeahnoob joined01:02
gtodd I wish Set::Bag (p5) could automagically count like that01:03
adu joined01:06
adu left01:07
Herby_ joined01:09
Herby_ Evening, everyone!01:09
o/01:09
lucs How do I get the started process's PID after doing 「Proc::Async.new(⋯).start」?01:09
leont .pid on the Proc::Async?01:10
lucs Hmm...01:10
(trying)01:10
No such method.01:11
I also got nowhere trying to work with the promise returned by 「start」.01:12
leont Ah!01:14
The result of the promise is a Proc, which has a .pid method01:14
No idea how to get it before the process has finished though01:14
konobi $$ in either?01:15
lucs That's kind of the problem :/01:15
(And even when it has finished, all I seem to get is a PID of 0.)01:15
konobi: Not sure what you mean..01:16
leont konobi: $$ is $*PID01:16
konobi sure01:16
that's why you have a conditional after a fork... one should continue on... the other should just be in the background01:17
leont That's not how Proc::Async works01:17
And I agree with lucs that it not giving the pid is an issue01:17
konobi ugh... not sure how perl6 async works yet01:18
i'm pretty sure i have a few holes to jab at there... =0/01:18
vendethiel left01:22
vendethiel joined01:24
lizmat joined01:25
lokien_ left01:29
BenGoldberg joined01:32
pochi_ joined01:42
pochi left01:43
vendethiel left01:45
vendethiel joined01:49
maslan left01:52
timotimo hey Herby_02:04
was that talk i showed to you of interest?02:04
Herby_ \o02:04
adu joined02:04
Herby_ Absolutely! Pretty cool stuff for sure02:05
timotimo cool & scary02:05
Herby_ been meaning to talk to my hospital's biomed department to see if they have any old hardware I can poke around with02:05
timotimo the whole "internet of things" movement is very, very scary from a security & failure perspective02:05
adu timotimo: there are already people who have died from Pacemaker/Wifi accidents02:06
Herby_ yeah, very exciting and scary times02:06
adu Herby_: how's it going?02:07
Herby_ It's coming along. Have you thawed out yet?02:07
timotimo adu: even without biotech in the equation, IoT is very scary02:08
remember very recently when "nest" thermometers/thermostats/thingies failed for some reason?02:08
in america, at a time when it was very, very cold outside?02:08
people were unable to log in for some stupid reason02:08
Herby_ did they get to play in artic warfare conditions? :)02:09
aka the heat dont work02:09
timotimo translates to a different place02:09
vendethiel left02:10
Herby_ timotimo, its kind of like the cars that are getting smarter02:11
you see that article about the jeep cherokee getting hacked while driving down the road?02:11
vendethiel joined02:14
aigan left02:15
aigan_ joined02:15
xpen joined02:16
leont left02:19
timotimo yeah02:22
that was about engineers going at developing a system connected to a network without them knowing about security02:22
maximize profits as much as you can get away with02:23
Herby_ yep02:23
ZoffixWin joined02:23
ZoffixWin left02:23
ZoffixWin joined02:23
timotimo that's why we're lucky to have independent security researchers find those things and smack the greedy up-highs on the fingers every now and again02:23
geekosaur also why the greedy up-highs keep trying to get independent security research like that declared illegal02:24
ZoffixWin m: sub term:<🕋> { say "42" }; 🕋02:24
camelia rakudo-moar cf7706: OUTPUT«42␤»02:24
ZoffixWin Emoji subs :)02:24
timotimo geekosaur: i'm pretty sure they won't be trying that for long02:24
Herby_ Zoffix!02:24
o/02:24
geekosaur they've been trying it for years. thankfully that means there is now considerable precedent in favor of the researchers02:24
ZoffixWin \o02:24
geekosaur at least in the US. but as corporations get more and more powerful in the US, I wonder how long that will last02:25
timotimo hmm02:25
these trans-* pacts are pretty scary02:25
trans-atlantic and trans-pacific, right?02:26
vendethiel left02:37
Herby_ ok. rookie question time: using json::fast, how do I pretty print something?02:38
timotimo to-json([1, 2, 3], :pretty)02:38
MadcapJake i thought the default was pretty?02:40
Herby_ I don't I'm asking it right... RottenTomatoes has an API which returns JSON content02:40
I want to print it out pretty02:40
instead of this blob02:40
vendethiel joined02:43
addison_ left02:43
timotimo oh02:43
in that case you have to parse it with from-json and then print it with to-json02:43
if it's a blob, you may have to decode it with some encoding first. most probably utf-802:44
Herby_ you're the man :)02:46
that seems to work02:46
llfourn when you have "Ambiguous call to infix<blah>", where blah is your own custom infix, is there a way to specify who should win in a tiebreaker?02:46
skids llfourn: "is default" can designate a preferred candidate. Or you can play tricks like $ where { True }.02:51
llfourn skids: excellent thanks!02:53
kalkin-__ joined02:53
Herby_ so, if I'm using HTTP::UserAgent to retrieve a web page, how would I decode/encode that? Right now, I'm getting the content but when I try to spurt it to a text file, I get a "malformed utf-8" file02:53
well, i'm getting the content and converting it to-json, then trying to spurt it02:54
Herby_ left02:55
kalkin-_ left02:57
skids Herby_: the defacto www standard encoding, if the headers do not specify otherwise, is windows-1252 (even if iso8859-1 is specified in the headers, as a special case)03:00
ZoffixWin m: print "I'm a Perl ", 5 + !!"0", " program."03:00
camelia rakudo-moar cf7706: OUTPUT«I'm a Perl 6 program.»03:00
ZoffixWin Run that in Perl 5 and it'll say "Perl 5" :) https://twitter.com/zoffix/status/69181787144651161703:00
ZoffixWin suspects they're the only one who's excited with it and decides to move on ^_^03:01
Herby_ joined03:02
skids ZoffixWin: that is cute03:02
ZoffixWin :)03:02
vendethiel left03:03
ZoffixWin I'm curious of the length you could take this to: (a) one program that runs with both P5 and P6 and does the same thing in both; or (b) one program that runs with both, but does a completely different thing :)03:04
Juerd considers beginning a Rosetta-like thing, maybe in book form, for a very limited number of languages, and only language features, not full programs or "problems"03:04
ZoffixWin Sounds neat, but maybe not in a book form03:06
llfourn Jured, I like that idea03:06
Juerd When I say "book", feel free to read "PDF"03:06
But what I'm thinking of, is a fixed size layout03:06
ZoffixWin I sorta envision this could become some sort of a "lookup ifelse" and it gives you a nice side-by-side comparison of each feature.03:06
Interactive thing basically03:06
Juerd ZoffixWin: That's nice but not what I'm thinking of03:06
ZoffixWin Ah :)03:06
Juerd I'm thinking of a landscape layout, 5 languages03:07
llfourn when I read book I read chapters with topic areas which I think is good03:07
Juerd In a full-page 3x2 matrix, where Perl 6 gets a double-width box, because it doesn't just get code, it also gets explanation in how it differs.03:07
llfourn: Yes! That too!03:07
I find myself constantly explaining Perl 6 to people in terms of their favourite language03:09
And rosettacode is entirely useless for this, because it's so bloated and hard to navigate03:09
AlexDaniel Juerd: consider “Wiki” instead of a “PDF” :)03:10
Juerd No, no, no...03:10
AlexDaniel why not?03:10
Juerd Because I want a fixed width layout03:10
sevvie left03:10
Juerd If it doesn't fit in the box, it's too complicated for a single example03:11
width + height03:11
AlexDaniel sure, feel free to do that with css ?03:11
ZoffixWin No, no, no, that's when you switch to smaller font, design 101 :D03:11
Juerd Flipping the pages should feel like browsing through a photo book03:11
skids maybe a "practical only" subset of rosettacode could be presented through an alternative portal/search engine.03:11
AlexDaniel sure, feel free to do that with js ?03:11
Juerd I already feel entirely free to do it whichever way I want :)03:12
ZoffixWin :D03:12
AlexDaniel :)03:12
Herby_ :)03:13
Juerd I'm thinking of top 3 boxes: Python, C#, PHP03:13
Bottom 3 boxes: Perl 5, Perl 6, text03:13
kid51 left03:14
ZoffixWin I'd use Ruby instead of Perl 503:14
llfourn Javascript instead of PHP :)03:14
Juerd I haven't set my mind on the languages yet03:14
But when suggesting them, please let me know why :)03:15
ZoffixWin And this is where a webapp solution shines better than a PDF: you can add any number of languages and mix-and-match them for your audience03:15
Herby_ use assembly for speed03:15
Juerd I considered Javascript but it's a hard one because it doesn't really have that many language features.03:15
ZoffixWin: And that's exactly what I don't want, this one time.03:15
ZoffixWin Juerd, Ruby instead of Perl 5 because there are more Ruby programmers AND many of the Ruby programmers are ex-Perl-5 programmers03:15
Juerd Not interactive, not free form. Very old-fashioned.03:16
ZoffixWin .oO( old fart :P )03:16
But it's not webscale!!! :D03:16
Juerd Perl 5 is not negotiable by the way. I'll switch any of the other 3 :)03:16
ZoffixWin heh03:16
Juerd (Note that I haven't decided to do this project yet)03:16
(It's going to be a lot of work because I want to edit everything myself; I'll accept contributions but only if I like them :P)03:17
ZoffixWin Ruby instead of PHP then :) Mostly because some of the PHP coders I've seen online scare me with their incompetence so much, I don't want them anywhere near me :)03:17
Juerd Fair point03:17
http://juerd.nl/site.plp/perl_php03:17
ZoffixWin Juerd++03:18
Juerd I had to store that quote somewhere03:18
ZoffixWin: scrottie++, it's his text03:18
adu left03:18
adu joined03:19
Juerd Also, it's not going te be a showcase of TIMTOWTDI03:19
I don't care that you can write ... *, because I think it's utterly unreadable, so I will use ... Inf instead :)03:19
The hardest part will probably selecting the 3 non-perl languages :)03:20
And then figuring out what's idiomatic in those03:21
Python is the only obvious one, given its popularity.03:21
Java/C++/C# are all so similar, when it comes to basic syntax, that if you pick one, those who prefer the other language from that syntax family, will probably understand the code anyway.03:22
Ruby is interesting because it too has a unique syntax03:22
But PHP is interesting because it's such a great showcase of ugliness03:23
Herby_ skids, I'm not still sure how to solve that "malformed utf-8" problem03:23
even with your tip of the webpage encoding03:23
Juerd Even Perl 5 often looks nice next to PHP, and Perl 6 would be even better.03:23
adu left03:24
llfourn I suggest JS over PHP because it's a more formidable language. It has promises built in with ECMA6, and arrays and hashes are very natural. If you want uglyness then go with PHP :P03:24
but I think the point is p6 will look great next to even JS03:24
everyone gets that PHP sucks03:24
Juerd I'm torn between excluding PHP because it sucks, and including PHP because it sucks.03:25
llfourn heh yep :P03:25
skids PHP is too easy a target. It's just not sporting.03:25
Juerd skids: It is, however, a lot of people's favourite language, and the go-to language for many programmers, even if they primarily write code in another language for their dayjob.03:26
llfourn isn't it the other way around?03:26
Juerd There are many Java programmers who would pick PHP for their personal projects.03:26
Herby_ could someone take a peek at my crap code and tell me how to fix my "malformed UTF-8" error when I try to spurt to text file?03:27
http://pastebin.com/HJPqHx5S03:27
Juerd llfourn: Not from what I've seen at hackerspaces03:27
Herby_ ignore the poorly named variables03:27
Juerd Herby_: Instead of asking us to ignore that, why don't you just come up with better names? :)03:27
llfourn I would expect that people are forced to do awful wordpress plugins for work and then go home and detox with some nice perl,python or ruby03:27
Herby_ good point, Juerd.03:27
llfourn though I hate Java so much I guess even PHP could be some minor imporvement03:28
or at least bad in different ways03:28
Juerd Herby_: You have the arguments for spurt the wrong way around, it seems.03:28
Herby_ wow, I'm a big dummy03:29
thought I read that doc right :(03:29
thanks, Juerd.03:30
Juerd Herby_: Most functions that take a short string and a long string, will have the short string as the first argument.03:30
This is not universal, but it seems to be the more common thing.03:30
Herby_ I'll remember that tip03:31
nightfrog That's more logical03:31
Juerd Also, number and string: string is probably longer, comes last.03:31
string and list: list is probably longer, comes last03:31
(And not just because of its variable length)03:31
Herby_ so at this point I have a variable containing JSON data. Are there any tutorials on how to extract info from JSON in Perl 6?03:32
Juerd I'd be surprised if I saw xyzzy(@quux, $foo), because I'd expect xyzzy($foo, @quux)03:32
skids The former probably because a concatination expression is likely for the long string and the latter due to not wanting a fight over ","03:32
Juerd Herby_: Decoding JSON can be done with a module03:33
There are several JSON modules03:33
cognominal left03:39
cognominal joined03:39
noganex joined03:41
noganex_ left03:44
mohae_mohae03:44
Herby_ ok, making progress. trying to figure out how to loop through an array of dictionaries, and pull data out03:52
sufrostico left03:54
Herby_ getting "Type Array does not support associative indexing"03:56
hmm03:56
AlexDaniel left03:57
sufrostico joined03:58
Herby_ solved it, tad ugly though :)(04:03
Juerd https://github.com/Juerd/philae/blob/master/braindump04:04
Off to bed04:04
Good night!04:04
llfourn o/04:04
Herby_ night!04:04
anthk_ joined04:05
Actualeyes left04:09
Herby_ left04:09
cognominal Juerd, It would be nice to build it also as grammar show cases. Grammar being the formal counterpart to the informal descriptions.04:12
anthk_ m: say (my uint $n3 = (0xA2000 +< 8)).fmt("%0b");04:19
04:19
camelia rakudo-moar cf7706: OUTPUT«1010001000000000000000000000␤»04:19
anthk_ m: say (my uint16 $n3 = (0xA2000 +< 8)).fmt("%0b");04:19
camelia rakudo-moar cf7706: OUTPUT«0␤»04:19
anthk_ 04:19
say (my uint16 $n3 = (0xA2F0 +< 8)).fmt("%0b");04:21
04:21
m: say (my uint16 $n3 = (0xA2F0 +< 8)).fmt("%0b");04:21
04:21
camelia rakudo-moar cf7706: OUTPUT«1111000000000000␤»04:21
raiph left04:26
mprelude left04:26
Actualeyes joined04:27
alpha123` joined04:28
adu joined04:28
molaf joined04:34
sufrosti1o joined04:39
sufrostico left04:39
vendethiel joined04:42
mohae left04:43
sufrosti1o left04:44
sufrostico joined04:45
regreg left04:45
mohae joined04:46
jack_rabbit left04:47
alpha123` left04:49
sufrostico left04:50
revhippie left05:00
orbus .tell jnthn when you have a moment, do you think you could describe how the Supply method on Channel is supposed to work? It's not documented and I wanted to fix that - but it doesn't seem to work like I would expect.05:03
yoleaux orbus: I'll pass your message to jnthn.05:03
vendethiel left05:04
orbus m: my $c=Channel.new; my $s=$c.Supply; my $t1=$s.tap(-> $x {put "1 $x"}); my $c2=$s.Channel; for (1,2,3,4,5) {$c.send($_)}; await Promise.in(3)05:05
camelia rakudo-moar cf7706: OUTPUT«1 1␤Memory allocation failed; could not allocate 15960 bytes␤»05:05
orbus :/05:05
m: my $c=Channel.new; my $s=$c.Supply; my $t1=$s.tap(-> $x {put "1 $x"}); my $t2=$s.tap(-> $x {put "2 $x"}); for (1,2,3,4,5) {$c.send($_)}; await Promise.in(3);05:06
camelia rakudo-moar cf7706: OUTPUT«2 2␤1 1␤2 3␤1 4␤2 5␤Memory allocation failed; could not allocate 15944 bytes␤»05:06
orbus well that is actually what I would expect05:06
other than the memory allocation thing05:06
my $c=Channel.new; my $s=$c.Supply; my $t1=$s.tap(-> $x {put "1 $x"}); my $t2=$s.tap(-> $x {put "2 $x"}); for (1,2,3,4,5) {$c.send($_)}; await Promise.in(1)05:07
m: my $c=Channel.new; my $s=$c.Supply; my $t1=$s.tap(-> $x {put "1 $x"}); my $t2=$s.tap(-> $x {put "2 $x"}); for (1,2,3,4,5) {$c.send($_)}; await Promise.in(1)05:07
camelia rakudo-moar cf7706: OUTPUT«1 1␤2 2␤2 3␤2 4␤2 5␤Memory allocation failed; could not allocate 15944 bytes␤»05:07
BenGoldberg left05:08
molaf left05:10
vendethiel joined05:10
orbus well05:10
actually not really05:10
I thought all the taps were supposed to get the same values05:12
but here it seems like they're each getting a random allotment of the values05:12
anthk_ m: my uint8 $a = 240; say $a +< 2;05:13
05:13
camelia rakudo-moar cf7706: OUTPUT«960␤»05:13
anthk_ what's the problem with the unsigned integers :\ ?05:13
orbus they don't work?05:13
what the specific problem is, I'm not entirely sure, but I don't think they're really implemented at this time05:14
I think somebody said it had something to do with all integer types falling back to Int, but not really sure05:15
Calibellus left05:17
jantore left05:18
jack_rabbit joined05:18
llfourn orbus: have you checked out roast? there might be clues re .Supply on channel05:24
orbus I haven't really looked through there no05:25
might take a look if I have time05:25
the way it acts is weird05:25
I'm wondering if it's not documented because the implementation is buggy05:25
llfourn This is the Channel method on supply but you are after the other way around: https://github.com/perl6/roast/blob/master/S17-supply/Channel.t05:26
orbus right05:26
llfourn orbus: it is very buggy05:26
in general05:26
orbus supply is?05:26
or channel?05:26
channels seem to work pretty well05:26
haven't messed with supplies a lot yet05:26
llfourn In my experience all async is fairly buggy but TBH I haven't delved into Channels and Supplied just Promises with start {}05:27
Supplies*05:27
orbus well my understanding is a supply should supply the same stream of values to all the taps on it05:28
if you create a supplier05:28
and create a supply off it05:28
and then put a couple taps05:28
that's what happens05:28
the taps get the same values05:28
but the supply that comes off Channel doesn't act like that05:28
llfourn well I'm glad that bit works at least05:28
orbus so I'm not sure if that's intentional or a bug05:28
yeahnoob left05:29
orbus I looked at the source05:29
but I'm not entirely sure I understand what it's doing :p05:29
llfourn good luck with that!05:29
orbus it looks like it's trying to emit every value added to the channel onto the supply05:30
which is more or less what I would expect05:30
but the taps are acting weird05:30
and I don't know why05:30
skids orbus: "on-demand" supplies behave as you expect.05:30
If you want to make an "on-demand" supply from one that is not, use .share.05:31
orbus hmmm05:31
looking at the docs I still don't entirely understand the distinction05:32
skids Or maybe I disn't understand that exactly05:32
orbus but it seems like for both types, all open taps should see the same stream of values05:32
vendethiel left05:32
skids yes all active taps should.05:32
orbus with the supply I get off a channel05:32
what I'm seeing is05:32
well I had an example05:32
hang on05:32
m: my $c=Channel.new; my $s=$c.Supply; my $t1=$s.tap(-> $x {put "1 $x"}); my $t2=$s.tap(-> $x {put "2 $x"}); for (1,2,3,4,5) {$c.send($_)}; await Promise.in(1)05:33
camelia rakudo-moar cf7706: OUTPUT«2 2␤1 1␤2 3␤1 4␤1 5␤Memory allocation failed; could not allocate 15944 bytes␤»05:33
orbus this crashes on camelia05:33
but on my box it doesn't crash and that's still the full output05:33
it's like one tap is seeing some of the values05:33
and the other tap is getting the others05:33
and the distribution seems to be random - you get different results on different runs05:33
jantore joined05:34
orbus m: my $sr=Supplier.new; my $s=$sr.Supply; my $t1=$s.tap(-> $x {put "1 $x"}); my $t2=$s.tap(-> $x {put "2 $x"}); for (1,2,3,4,5) {$sr.emit($_)}; await Promise.in(1)05:35
camelia rakudo-moar cf7706: OUTPUT«1 1␤2 1␤1 2␤2 2␤1 3␤2 3␤1 4␤2 4␤1 5␤2 5␤»05:35
orbus a similar exercise with a supplier does what I would expect05:35
xinming left05:38
xinming joined05:38
orbus that might be by design but I'm not sure05:40
and I can't submit a documentation patch if I don't know how it's actually intended to behave05:41
llfourn orbus: I'd say the first patch that's needed is tests if there aren't any :)05:43
skids I think it's a bug.05:43
aigan_ left05:44
aigan_ joined05:44
orbus llfourn: can't write tests if we don't know how it's supposed to behave either05:45
llfourn precisely :)05:45
orbus I'm leaning towards bug as well, but not sure05:45
we'll see what jnthn says05:45
it came up in a conversation with him the other day05:45
Cabanossi left05:45
darutoko joined05:45
orbus which is why I started looking in the first place05:45
vendethiel joined05:47
orbus it could be by design, because creating a Supply off a Channel and creating a Supply off a Supplier otherwise work out to basically the same thing05:48
you send on the channel, you emit on the supplier05:48
practical result is the same05:49
maybe that's not what's intended05:49
Cabanossi joined05:49
orbus but maybe that's a stretch too - that's why I'm uncertain05:50
anyway, getting late05:50
orbus afks05:50
skids I was actually working on updating the design docs WRT to Supplies but then the "serial supply" changes came in and went too far and made even the supplies that are not supposed to be serial into serial supplies.05:52
https://gist.github.com/skids/fabd0304f40e24db33d0 were some of the areas I could not figure out.05:54
orbus here there be dragons05:55
pierrot left06:01
Actualeyes1 joined06:07
Actualeyes left06:07
laz78 left06:07
vendethiel left06:08
pierrot joined06:13
skids left06:13
yeahnoob joined06:19
jme` left06:24
lokien_ joined06:28
khw left06:29
cuonglm joined06:47
cuonglm Hi guys, is anyone getting trouble with reading procfs file with perl6?06:48
perl6 -ne '.say' /proc/$$/statm06:49
went into an infinitive loop06:49
It doen't with Perl 506:50
perl -pe '' /proc/$$/statm06:50
perl6 -pe '' /proc/$$/statm06:50
llfourn cuonglm: send an example to [email@hidden.address] if you wouldn't mind. Sounds like a bug.06:51
domidumont joined06:54
cuonglm llfourn: Thanks, I have sent an email to [email@hidden.address]06:58
llfourn cuonglm: cheers06:59
geraud left06:59
domidumont left06:59
domidumont joined07:00
cuonglm Here's the ticket for anyone care about it https://rt.perl.org/Public/Bug/Display.html?id=12737007:03
geekosaur wonders if /proc is still hypersensitive to how it's accessed07:08
geekosaur (used to be that you needed to read it buffered with a block size larger than the "file" or you'd get inconsistent data(07:10
cuonglm geekosaur: Yes, there're some ways to work around. But in user perspective, I want the behavior will be the same as in Perl 5.07:11
If that behavior is intentional, then it should be documented else where, so the user won't make mistake07:12
My laptop was freeze after I do "/proc/<pid>/statm".IO.lines.elems07:13
domidumont left07:13
cuonglm the compiler won't guard me from doing elems on lazy list like (1, 1, *+* ...^ *).elems07:15
the compiler even won't guard me from doing elems on lazy list like (1, 1, *+* ...^ *).elems07:16
domidumont joined07:24
CIAvash joined07:25
nakiro joined07:31
cuonglm left07:32
vendethiel joined07:32
moritz \o07:39
adu left07:42
FROGGS joined07:43
firstdayonthejob joined07:46
FROGGS o/07:52
vendethiel left07:54
moritz wonders why cuonglm would use the ...^ form of the series operator to create an infinite list07:57
jast probably doesn't want all of infinity08:00
_mg_ joined08:00
MARTIMM joined08:02
moritz [Coke]++ # diplomatic response to RT #12735508:07
zakharyas joined08:10
RabidGravy joined08:11
abaugher_ left08:15
vendethiel joined08:15
abaugher_ joined08:15
[Tux] csv-ip5xs 17.86708:23
test 22.45408:23
test-t 12.23408:23
csv-parser 50.35108:23
ely-se joined08:31
ely-se left08:32
ely-se joined08:32
virtualsue joined08:34
firstdayonthejob left08:38
lokien_ left08:39
Peter_WR joined08:44
dalek doc: f52538b | RabidGravy++ | doc/Type/ (3 files):08:45
doc: document Channel.Supply, Promise.Supply08:45
doc:08:45
doc: Also add link to concurrency doc08:45
doc:08:45
doc: Closes #36608:45
doc: review: https://github.com/perl6/doc/commit/f52538b5fa08:45
dakkar_ joined08:45
sortiz left08:46
karim joined08:46
karim left08:47
zakharyas left08:48
abraxxa joined08:49
zakharyas joined08:50
RabidGravy Boom!08:52
travis-ci joined08:52
travis-ci Doc build errored. Jonathan Stowe 'document Channel.Supply, Promise.Supply08:52
https://travis-ci.org/perl6/doc/builds/104843377 https://github.com/perl6/doc/compare/d78c5efb024b...f52538b5fae408:52
travis-ci left08:52
Actualeyes1 left08:52
zakharyas left08:53
lizmat clickbaits https://p6weekly.wordpress.com/2016/01/25/2016-123-what-are-we-waiting-4/08:53
zakharyas joined08:54
nine Whenever I read that, I have the Duke's voice in my head... "What are you waiting for? Christmas?"08:56
RabidGravy lizmat++ # did you do anything in the last week but find all those links? ;-)08:57
CIAvash lizmat++08:58
vendethiel left08:59
lizmat nine: I was more thinking about https://www.youtube.com/watch?v=8qPUJhy0Dz4&feature=youtu.be&t=6809:01
stmuk .tell zoffix maybe the xmas advent butterfly on perl6.org should finally fly away?09:07
yoleaux stmuk: I'll pass your message to zoffix.09:07
fireartist joined09:12
Kogurr joined09:12
lizmat .oO( isn't it eternally christmas now? )09:12
rindolf joined09:14
Peter_WR left09:18
fireartist what would be the best way to create/generate multiple methods with almost-identical functionality - basically fancy accessors which I would have used Class::Accessor to make in perl5?09:20
something like perl5: for $name (@names) { *{"$class"} = sub {} }; # where the sub body accesses different variables/methods based on $name09:24
RabidGravy well09:24
lizmat m: class A {}; A.^add_method("foo", method { say self } ); A.foo09:24
camelia rakudo-moar cf7706: OUTPUT«(A)␤»09:24
RabidGravy or at it's simplest just use an "public attribute"09:25
fireartist I was hoping I could use attributes, but augment them with something like traits to gain extra functionality - but can't find anything like that in the docs09:26
vendethiel joined09:26
fireartist the add_method() would work, but was hoping for something more declarative - like attributes09:27
lizmat m: class A { has $.foo }; say A.new(foo => 42).foo09:28
camelia rakudo-moar cf7706: OUTPUT«42␤»09:28
lizmat fireartist: is that what you mean ?09:28
fireartist it I were to use attributes, it wouldn't be just storing/returning a value09:30
here's an example of the kind of perl5 code I'm trying to replicate: https://metacpan.org/source/HALKEYE/Games-Lacuna-Client-0.003/lib/Games/Lacuna/Client/Module.pm#L6909:30
lizmat so you're basically programmatically building a sub and then install that as a method09:32
fireartist yes09:32
lizmat looks like ^add_method would be the thing then09:33
fireartist ok, I'll have a try with that - thanks09:33
lizmat afk for a few hours&09:34
nine fireartist: there are a couple of modules that implement new attribute traits: http://modules.perl6.org/#q=attrib09:39
JimmyZ left09:39
avuserow left09:39
fireartist nine: thanks, I'll check them out!09:41
avuserow joined09:43
JimmyZ joined09:43
DrForr Did I mention I hate encodings with a passion?...09:44
yeahnoob left09:47
User00 joined09:48
nine DrForr: if only I didn't understand that so well...09:51
DrForr I think this data was run through UCS-2, UTF-9 and WTF-8 before arriving at Latin-Pig.09:53
jnthn The trouble with encodings is that there's more than one of them :)09:53
yoleaux 05:03Z <orbus> jnthn: when you have a moment, do you think you could describe how the Supply method on Channel is supposed to work? It's not documented and I wanted to fix that - but it doesn't seem to work like I would expect.09:53
virtualsue left09:55
DrForr And a woodchipper somewhere between UCS-2 and WTF-8, for good measure. It has the dubious distinction of being a new kind of mojibake I have not seen.09:57
jnthn .tell orbus .Supply on a Channel gives a Supply that will emit values that are sent on the Channel. The emit will be scheduled on the thread pool. If there are multiple active supplies on the Channel, or other readers, then they compete over the values.09:57
yoleaux jnthn: I'll pass your message to orbus.09:57
Kogurr left09:58
leont joined09:59
spacebat /buffer 410:02
spacebat left10:03
vendethiel left10:10
MARTIMM left10:17
vendethiel joined10:25
RabidGravy left10:32
lokien_ joined10:37
nige1 joined10:41
nige1 morning *10:42
nakiro left10:42
espadrine joined10:43
nige1 just wanted to pop a meme in the pool ;-)10:43
nginx - has just released v8 with http/2 support - https://www.nginx.com/blog/nginx-plus-r8-released/10:44
I wonder if a Perl 6 adapter could be added10:45
jnthn .oO( I made you a http/2, but I JavaScript'd it? )10:45
fireartist left10:46
fireartist joined10:46
vendethiel left10:46
nige1 jnthn - any thoughts on the feasibility of that?10:47
xvx joined10:48
timotimo what does it mean to be an adapter?10:49
nakiro joined10:49
nige1 there is a Perl 5 module - that can do server side includes10:49
timotimo lol server side includes10:49
nige1 I was thinking of something similar10:49
sec10:49
timotimo that sounds like antique technology, tbh10:49
nige1 http://nginx.org/en/docs/http/ngx_http_perl_module.html10:50
domidumont left10:50
nige1 it does more than SSI10:50
domidumont joined10:51
vendethiel joined10:51
timotimo many things on that documentation page scream "this is only for tiny hacks" to me10:52
nige1 yes - agreed10:52
domidumont left10:52
domidumont joined10:53
timotimo perl6 has the big benefit of having async i/o and true multi-threading, though10:53
so the "if you do long-running operations in perl code, no other perl code will execute" problem wouldn't be a problem with a perl6 adapter10:54
nige1 yes - so it would the stop-the-world during request handling problem10:54
timotimo on the other hand, rakudo itself is rather memory-hungry, sadly10:55
it'll improve a whole lot this year, though10:55
nige1 so there would be a fat process there10:55
timotimo personally, i'd still recommend running a regular server process and make that available via something like mod_proxy10:56
or fcgi, psgi, whatever10:56
nige1 yes10:56
timotimo not sure if those protocols know anything about the fancy new http/2 features10:56
like "i know you'll want this file, so here it is already"10:56
avenj left10:57
nakiro left10:58
timotimo i can imagine a mod_proxy'd thingie would have no problem tunneling multiple requests through the same outbound tcp connection while the underlying application serves one resource per one socket10:58
nige1 hmmm - yes - it's going to be interesting to see how things work with http/2 - it seems to be picking up pace now10:59
jast some proxy mods can even handle websockets these days, so it seems fairly realistic10:59
timotimo just has to be implemented :)10:59
well, websockets are specifically made to be extremely robust to transports not knowing about it11:00
i think a mod_proxy like thingie is very likely to support websockets unless it specifically fucks it up11:00
mattp__ left11:04
araujo left11:06
araujo joined11:06
araujo left11:08
Guest18755 joined11:09
Guest18755 left11:11
Guest18755 joined11:11
Guest18755 left11:13
vendethiel left11:13
Guest18755 joined11:13
leont left11:15
Guest18755 left11:15
Guest18755 joined11:16
nakiro joined11:17
Guest18755 left11:17
fireartist is there a way to get the filepath that was used to load a module? equivalent to perl5: $INC{'Module.pm'}11:18
jdrab joined11:18
Guest18755 joined11:19
Peter_WR joined11:23
Peter_WR left11:23
gfldex fireartist: a module may not be a file and therefor there may not be a path11:26
fireartist makes sense11:26
xvx left11:27
fireartist is this a bug...?11:30
1# run code (lib/.precomp is created)11:30
2# add -I ../other-dir/lib (overriding an already-installed module)11:30
3# run code again (does not load from ../other-dir/lib until I manually delete lib/.precomp)11:30
nchambersnnttcc11:30
timotimo "use lib" definitely disables precomp. i'm not sure if "-I" does, too11:31
Guest18755 left11:31
fireartist ok, I'll test the same with 'use lib'11:32
xpen left11:33
timotimo "use lib" invalidates the precompilation because now things that are used transitively have to consider that folder, too ... or something like that?11:34
nnttccnchambers11:34
fireartist yes, adding "use lib '../other-dir/lib';" after the "use 'lib';" doesn't have the issue11:34
timotimo i regret to say i haven't kept up much since these improvements were made before christmas11:34
fireartist PERL6LIB has the same issue as -I -it's not invalidating .precomp11:36
timotimo seems like a bug, in that case11:36
fireartist would it be the rakudo tracker I should submit this to? (I'm running rakudo/moar 6.c)11:37
timotimo those bugs go into [email@hidden.address] (is it .org?) via mail11:37
fireartist cool - thanks for your help!11:38
moritz yes, it's .org11:38
timotimo no, thank you 11:39
nine Plese note that a "use lib" after using any module will disable all precompilation. That may be the cause of this difference to PERL6LIB or -I11:51
timotimo damn you, jnthn. because of your excellent design of async stuff and our event loop in perl6 i never would have thought of the problems raised in the hammersmith and akka sections of http://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/11:51
vendethiel joined11:51
gensym left11:57
sena_kun joined11:58
Skarsnik joined11:59
llfourn fireartist: you can find the repo the module was loaded from by calling .repo-id on the compunit12:00
Skarsnik HeHello12:00
llfourn (I think)12:00
DrForr o/12:00
llfourn https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit.pm#L1212:00
gensym joined12:02
llfourn m: $*REPO.need(CompUnit::DependencySpecification.new(short-name => "Test")).repo-id.say12:02
camelia rakudo-moar cf7706: OUTPUT«39D1BEBEB786F0DE0B82489F3F02F5C672CBA1F7␤»12:02
llfourn m: $*REPO.need(CompUnit::DependencySpecification.new(short-name => "Test")).repo.say # more useful12:03
camelia rakudo-moar cf7706: OUTPUT«inst#/home/camelia/rakudo-m-inst-1/share/perl6␤»12:03
TEttinger left12:07
fireartist llfourn: thanks! that helps confirm the issue I was seeing12:08
llfourn \o/12:09
iH2O joined12:12
ZoffixWinZoffix12:12
Zoffix .12:12
vendethiel left12:12
yoleaux 09:07Z <stmuk> Zoffix: maybe the xmas advent butterfly on perl6.org should finally fly away?12:12
Zoffix Yeah, probably time12:13
timotimo how about we move the "jump in" button to the right where "recent blog posts" is now and make "recent blog posts" as tall as "jump in" and "advent calendar" used to be together?12:14
RabidGravy joined12:14
timotimo does our layout mechanism support that without trouble?12:14
RabidGravy boom!12:15
timotimo heyo gravy-man12:16
iH2O left12:16
sena_kun We still haven't any way to take c-header and get defined constants from it?12:17
Pretty way, I meant.12:17
timotimo doesn't gptrixie do that, too?12:18
sena_kun timotimo, isn't it generates signatures, etc? I need to rtfm then.12:19
timotimo i think it's supposed to do more than just signatures12:20
i haven't actually used it yet12:20
arnsholt I think it generates both function signatures and constant values12:20
sena_kun timotimo, if so, I'll use it.12:20
timotimo it also does classes, i see12:20
arnsholt If you just want the constants, you can either dump everything and delete what you don't want, or patch it to only dump constants12:20
timotimo well, it already has a --all flag, supposedly it'd also have limiting flags12:21
[--enums] [--functions] [--structs] [--externs] [--list-types]12:21
Skarsnik It's #| to add doc to parameter in MAIn ?12:21
Zoffix timotimo, good idea. Yeah, it should be doable. I'll look into it sometime this week unless anyone else does it before that.12:22
llfourn left12:22
RabidGravy yes12:22
timotimo thank you, Zoffix12:22
it's just because i saw so many posts in there are yours :P12:22
how would you feel about giving the pl6anet a bit of styling, too? :312:23
RabidGravy really the most sensible way of getting #define FOO is by making a C wrapper and compiling it12:26
Skarsnik there is a define-enum to generate enum from #define12:26
timotimo oh, skarsnik is here! :)12:27
Zoffix RabidGravy, compiling it into a lib and using it with NativeCall or compiling it into what?12:27
timotimo well, you could also make it a little CLI binary12:27
RabidGravy er, yes12:27
timotimo either with a flag for every constant or just printing out all constants that are interesting12:27
RabidGravy it's do similar to what the h2xs does and generate a function that allows you to query the values12:28
sena_kun RabidGravy, you meant we can get #define's stuff from lib just using NativeCall? How exactly?12:29
RabidGravy no I don't mean that12:29
Skarsnik the issue with this solution you need the lib header12:29
RabidGravy you exactly can't and will never be able to do this12:29
Skarsnik to compile12:29
RabidGravy the issue with not doing it is that the values may differ from platform to platform12:30
*shrug*12:30
vendethiel joined12:31
gfldex Larry went to Hawaii. A smart move given the weather back home. He may also come to my hometown here in Eastern Germany, where we have 14°C and spotty sunshine.12:32
sena_kun RabidGravy, you're right. Anyway, I'm trying to write a module with fnctl constants/call and the only way to achieve it seems to be just parse header and build the module for a host OS. Am I right?12:33
RabidGravy obviously if the define is just a literal value then you stand a pretty good chance of it staying the same, but some library generate the public .h file based on what it finds at configure time12:33
ely-se left12:34
RabidGravy sena_kun, well fcntl is defined by POSIX so there is a reasonable chance that the values will stay the same, but not guaranteed, which is why it expressed in terms of the defines in the documentation12:35
Skarsnik hm12:36
There are probably some base value always the same12:36
with some extension based on the Os12:36
nine As it is you're going to need a C compiler on the target system in any case. So you may as well compile a small helper library with functions which you can call via NativeCall12:37
RabidGravy an operating system that has a POSIX interface but is not at all Unixy they may be entirely different12:37
nige1 left12:38
Skarsnik and question: I am handling filtering generated stuff based of the file it came from. Should I try to gather everything from the same file (struct/func/..) or keep displaying by stuff and just add from what file it came from?12:38
RabidGravy which is why e.g. Sys::Utmp has a helper library as the struct utmp that is returned by getutent and friends differs from OS to OS12:39
Skarsnik, I'd go with the latter myself12:41
ajr_ joined12:41
RabidGravy gfldex, it's warmish in London but there is a lot of wind right now12:43
User00 left12:44
sammers left12:47
ely-se joined12:50
sena_kun Where does panda install binaries when ran from non-root?12:51
Skarsnik somewhere12:52
gfldex ~/.perl612:52
vendethiel left12:52
Skarsnik .perl6/site/install/panda/stuff/morestuff12:52
Soomething like that12:52
gfldex well, it depedns on the prefix you use12:52
sena_kun Skarsnik, gfldex then something is wrong with my installation, since I have only .perl6/2015.12/(dist|precomp). No way for panda.12:54
avenj joined12:55
avenj left12:55
avenj joined12:55
gfldex sena_kun: try to build rakudo with --prefix=$HOME/local/ . That worked for me.12:55
Skarsnik nothing in dist?12:55
sena_kun gfldex, I'll try then.12:55
Skarsnik, exactly.12:55
fireartist if you used rakudobrew, look in ~/.rakudobrew12:55
Skarsnik how did you install rakudo?12:56
ajr_ Isn't panda for installing modules, not binaries?12:56
vendethiel joined12:56
sena_kun ajr_, gptrixie installs binary file too.12:57
Skarsnik, using rakudobrew. I am searching there now.12:57
Skarsnik oh yeah, it's in .rakudobrew12:58
sena_kun It seems so - .rakudobrew/moar-2015.12/install/share/perl6/site/bin/gptrixie12:59
Thanks for your help, folks.12:59
sammers joined12:59
ajr_ It would be nice if the documentation for installers (of all sorts) stated explicitly what they're installing and where.12:59
moritz ajr_: then please contribute to that documentation13:00
nakiro left13:00
Skarsnik Na panda should say it13:00
ajr_ I'll try, when I know enough to make useful contributions.13:00
moritz panda says "Please add $directory to your $PATH variable" or so13:01
timotimo you can never "know enough"! :)13:01
moritz so you can kinda infer that it installs executables to that path13:01
RabidGravy ajr_, panda will install whatever you ask it to, lots of modules install dynamic libraries they have built themself for example13:01
lizmat .tell [Coke] I have a small patch that makes hash inits (like %h = a => 42) about 10% faster, should I commit now and if so, where ?13:02
yoleaux lizmat: I'll pass your message to [Coke].13:02
lizmat afk&13:03
ajr_ Thanks, RG, that's a good clarification.13:03
lnrdo joined13:05
psy_ left13:08
Zoffix left13:09
Zoffix joined13:11
Skarsnik does putting Array @hello in main make it accept stuff like --hello=1,2,3 ?13:13
Zoffix doubts it13:14
moritz Skarsnik: 'Array @hello' would be an array of arrays13:14
Skarsnik: the @ already implies array13:14
Skarsnik yeah without the Array13:15
moritz it could be that using the @ sigil means you're allowed to pass that option mutliple times13:15
Zoffix Says: "Usage: foo.p6 <hello>"13:15
moritz --hello=a --hello=b13:15
Zoffix doesn't work13:15
moritz pity13:16
Zoffix (still says "usage...")13:16
vendethiel left13:19
skids joined13:22
MARTIMM joined13:24
Skarsnik hm is that a bug? I do MAIN(Str $opt1 #| foo (newline) , $opt2 #| bar and Usage show me foo for opt213:24
lizmat Zoffix: multi sub MAIN(:@hello) { dd @hello } # seems to do the trick for me13:25
Zoffix lizmat, ah, I didn't use the :13:25
lizmat $ perl6 4 --hello=1 --hello=213:25
[IntStr.new(1, "1"), IntStr.new(2, "2")]13:25
moritz ah right, needs to be named13:25
timotimo could be you actually want #= instead of #| ?13:25
moritz lizmat++13:25
El_Che ==> Fetching Text::CSV13:25
Please remove leading 'v' from perl version in Text::CSV's meta info.13:25
Text::CSV requires Perl version 6.0.0. Cannot continue.13:25
Skarsnik Oh it's =13:25
El_Che need to update ly fairly recent rakudo or panda setup?13:26
Zoffix moritz, RE RT#127364, I kinda expected race to split up those 100000 calls to .base into two threads and do 500,000 calls in each. That'd make it be heavy lifting13:26
smash_smash13:26
lizmat El_Che: I see "perl" : "6.c",13:27
xpen joined13:27
lizmat no v in sight13:27
Zoffix Otherwise, there's not much use to it. I'd only use it if I want my program to be faster, but if there's a chance for it to be 5 times SLOWER than raceless version just because some box my program is run on can crunch each iteration very fast13:27
...then I'd be wary of using .race13:27
El_Che lizmat: my command is a simple "panda install Text::CSV"13:27
lizmat hmmmm....13:28
El_Che let nuke rakudo and try again13:28
lizmat no idea, then13:28
Zoffix El_Che, NOOo13:28
wait13:28
El_Che ok13:28
Zoffix El_Che, recently there was a change that requires the perl key in META to NOT have the "v" in front of version. That module does have it13:28
So the META needs to be edited. Clone it, remove "v" and do panda install . and submit a PR to the author13:28
El_Che Zoffix: will do13:29
lokien_ left13:29
Zoffix oh13:29
El_Che, seems like it's updated already. Maybe try running panda update13:30
Skarsnik hm13:30
Usage: bin/gptrixie [--all] [--define-enum=<Str>] [--ooc=<Str>] [--enums] [--functions] [--structs] [--externs] [--list-types] [--list-files] [--files=<Str>] [--hello=<Positional>] <header-file> [<gccoptions> ...] -- The header file to use13:30
Should it show the <gccoptions> at the end ? (it's a *@)13:30
araujo joined13:31
araujo left13:31
araujo joined13:31
El_Che Zoffix: panda update did the trick. I didn't know about that. Maybe that should could automatically?13:32
araujo left13:32
Skarsnik hm panda can be broken sometime, you probably don't want it to upgrade itself x)13:32
Zoffix Yeah, probably.13:32
Skarsnik, the update fetches the fresh ecosystem meta file13:33
Skarsnik Oh that13:33
timotimo "panda update" could be more explanatory about what exactly it does13:33
El_Che timotimo: I wouldn know why the use case is to do that manually13:33
why -> what13:33
lizmat afk&13:34
Zoffix It's more of "fetching it before every module install is a bad idea"13:34
timotimo hum?13:34
Skarsnik why USAGE choose a random order to display option lol13:34
El_Che not for every install, for every run13:34
Skarsnik instead of the order in main? x)13:34
timotimo Skarsnik: probably something's using a Hash in the middle13:34
Zoffix Still, sounds excessive. Our servers will be hammered pretty often (assuming we get a ton of users)13:35
Skarsnik That kind of bad probably13:35
I mean I can always write my own USAGE13:35
Actualeyes joined13:35
Skarsnik but order it quite meaning full13:36
Zoffix I'd do it like "fetch fresh one if the local copy is older than $n days"... and maybe do it like 2-3 days (at the current ecosystem rates)13:36
El_Che JSON::Tiny seem to be popular13:36
lnrdo left13:36
Skarsnik timotimo, should I repport that as LAA?13:36
El_Che (looking at the serialization options in the eco system)13:36
lnrdo joined13:36
kaare_ joined13:37
vendethiel joined13:38
sena_kun left13:38
AlexDaniel joined13:38
Skarsnik JSON::Marshal/Unmarshal more suited for serializatio with json x)13:42
how I do multi line WHY ? I used #= on each line but I kind of want a \n added to it? x)13:45
Zoffix m: sleep 1 for ^8 .hyper; say now - INIT now13:48
camelia rakudo-moar cf7706: OUTPUT«8.007386665␤»13:48
Zoffix m: sleep 1 for ^8 .hyper: :1batch; say now - INIT now13:48
camelia rakudo-moar cf7706: OUTPUT«2.0091985␤»13:48
Zoffix k13:48
maslan joined13:48
ely-se left13:48
lnrdo left13:49
FROGGS left13:54
Zoffix m: sleep 1 for ^8 .hyper: :4degree; say now - INIT now13:55
camelia rakudo-moar cf7706: OUTPUT«8.00768867␤»13:55
Zoffix m: run 'lscpu'13:56
camelia rakudo-moar cf7706: OUTPUT«run is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub run at src/RESTRICTED.setting line 14␤ in block <unit> at /tmp/RqpYWDj0go line 1␤␤»13:56
Zoffix m: use NativeCall; sub system (Str) is native {}; system 'lscpu'13:56
camelia rakudo-moar cf7706: OUTPUT«Architecture: x86_64␤CPU op-mode(s): 32-bit, 64-bit␤Byte Order: Little Endian␤CPU(s): 4␤On-line CPU(s) list: 0-3␤Thread(s) per core: 1␤Core(s) per socket: 1␤Socket(s): 4␤NUMA nod…»13:56
lnrdo joined13:56
vendethiel left13:59
flussence m: #|{ foo␤ bar␤ baz}␤my $foo;␤␤ say $foo.WHY14:00
camelia rakudo-moar cf7706: OUTPUT«(Any)␤»14:00
flussence m: #| foo␤my $foo;␤␤ say $foo.WHY14:00
camelia rakudo-moar cf7706: OUTPUT«(Any)␤»14:00
lnrdo left14:00
flussence .oO( how do I do *single* line .WHY...? )14:01
Zoffix isn't only for subs?14:01
flussence m: #| foo␤sub foo {}␤#= bar␤ say &foo.WHY14:01
camelia rakudo-moar cf7706: OUTPUT«foo␤bar␤»14:01
flussence hum, not how I remember it supposed to work14:02
m: #|{ foo␤foo2␤foo3 }␤sub foo {}␤#= bar␤ say &foo.WHY14:02
camelia rakudo-moar cf7706: OUTPUT«foo foo2 foo3␤bar␤»14:02
sammers left14:05
Skarsnik lol Zoffiw with the system work around14:06
moritz well, I guess I'll have to remove NativeCall from the camelia rakudo build14:06
Skarsnik #| is for the next thing14:06
you can probably removing calling the sub?14:07
*remove14:07
Zoffix moritz, yeah, that's probably a safe way to go14:08
Removing calling a sub sounds iffy... You'd have to regex it out or something and that (a) might leave some bypass (b) might mess with different code that's trying to run14:09
Skarsnik na keep NC, it useful to show how guess_library_name work for people asking about how NC handle libraryname14:09
Zoffix, na you probably can just remove assigning the NC trait to the sub14:09
ajr_ left14:10
Skarsnik and it will act like a 'normal' sub14:10
Zoffix m: use NativeCall; sub not-a-system (Str) is native is symbol('system') {}; not-a-system 'lscpu'14:10
camelia rakudo-moar cf7706: OUTPUT«Architecture: x86_64␤CPU op-mode(s): 32-bit, 64-bit␤Byte Order: Little Endian␤CPU(s): 4␤On-line CPU(s) list: 0-3␤Thread(s) per core: 1␤Core(s) per socket: 1␤Socket(s): 4␤NUMA nod…»14:10
Skarsnik I was just saying preventing native sub to be called at all14:11
not just filter on system14:11
Zoffix Ahh14:11
m: use NativeCall; sub fork is native {}; fork; say 4214:12
camelia rakudo-moar cf7706: OUTPUT«42␤42␤»14:12
Zoffix This can be useful to show too14:12
nige1 joined14:12
Zoffix *shrug* I'm fine with NC being removed completely :)14:12
gtodd I always thought camelia ran inside a VM inside a jail in a zone in a cave under a glacier with someone nearby ready to pull the power-cord ...14:12
Zoffix nah14:12
last week I killed her accidentally.... Then restarted using the nativecall hack using a copy of her running on another server XD14:13
gtodd sheesh14:13
when a butterfly's wing flaps in ... errm14:13
rindolf left14:14
Zoffix :D14:14
gtodd what about a "special" version of NC that says "I'm sorry Dave ..."14:14
araujo joined14:15
araujo left14:15
araujo joined14:15
Zoffix :F14:16
*:D14:16
araujo left14:16
sammers joined14:17
gtodd wow ... use NativeCall; sub fork is native {}; fork; say 42 ???14:17
that is ... pretty cool14:17
for how simple it is :)14:17
lokien_ joined14:18
gtodd maybe an entire chapter in the docs should be dedicated to NC security so people don't become needlessly nervous :)14:19
moritz gtodd: you're welcome to provide that14:19
gtodd :-D14:19
1. Tell your manager that you have turned off NC in your build :)14:20
sena_kun joined14:20
gtodd 2. For a truly secure feeling maybe even really do step 1. ...14:22
DrForr Run it on CP/M :)14:22
Skarsnik Actually that not a bad idea, to have something to cut off NC (or the nqp/vm that make it work)14:23
cdg joined14:23
RabidGravy You could make a build with it turned off in the restricted setting I guess14:24
cdg left14:24
gtodd ... of course a lot of internet facing machines have 3 compilers 14 scripting languages 12 shells and a partridge in a pear tree ... :-)14:24
cdg joined14:25
RabidGravy exactly, if you're concerned about a theoretical local loophole than you're probably stuffed anyway14:25
ChoHag left14:26
gtodd I just thought perl6 w/ NC was no worse than $OTHERTHING14:28
hoelzro o/ #perl614:28
when the earliest/more syntax changed to react/whenever, did anything similar to wait appear? or should one just use another channel to implement a timeout?14:29
araujo joined14:29
sena_kun left14:29
araujo left14:30
araujo joined14:30
lnrdo joined14:32
Skarsnik well you don't need a compiler to make NC work14:33
ChoHag joined14:33
Skarsnik You install rakudo/moar and that it14:33
ely-se joined14:34
jnthn hoelzro: What're you looking to do?14:36
ugexe left14:36
jnthn hoelzro: react already implies non-busy waiting14:36
hoelzro jnthn: looking to see if https://rt.perl.org/Ticket/Display.html?id=125343 is still relevant14:36
jack_rabbit left14:37
rindolf joined14:49
ugexe joined14:49
jack_rabbit joined14:49
perlpilot joined14:50
lnrdo left14:54
nakiro joined14:59
lnrdo joined15:02
RabidGravy And if you want to end the react in some period of time then "react { whenever Promise.in($t) { done } ...... }" is probably the puppy15:06
BTW hoelzro your https://rt.perl.org/Ticket/Display.html?id=123282 is a duplicate of one I did15:09
hoelzro ah, it is? thanks for pointing that out; we should probably merge them15:09
RabidGravy 'ang on I'll find the relevant ticket15:09
https://rt.perl.org/Ticket/Display.html?id=12640115:10
I don't think I'm able to merge the tickets so if someone else could15:11
yeah I don't have permission to merge15:14
hoelzro RabidGravy: I can merge them, but I don't see the similarity15:14
oh, dur15:14
nvm =P15:14
I thought you were talking about my earliest ticket15:14
nine merged15:14
RabidGravy no the IPv6 thing15:15
:)15:15
cheers15:15
hoelzro damn, nine beat me to it!15:15
fireartist left15:15
hoelzro nine++15:15
Skarsnik I need to use index to see if an element is in an array?15:25
timotimo i think so. and if you use index, don't forget that "0" is a valid index, too. so you need "with" instead of "if"15:26
or "without" instead of "unless"15:26
oh, we also have "first"15:26
that may work better for you, depending on your use case15:26
hoelzro also any(@elems) == $target15:26
Skarsnik why Str has a contains but not Array?15:26
timotimo because in Str you can do boyer-moore substring search15:26
:P15:27
nine obviously...15:27
timotimo also, contains on a Str is very different from contains on Array15:27
Zoffix There are set operators15:27
timotimo aye, (elem) would also be good15:27
Zoffix m: my @valid = <foo bar ber>; say 'foo' ⊆ @valid; say 'blarg' ⊆ @valid15:27
camelia rakudo-moar cf7706: OUTPUT«True␤False␤»15:27
timotimo like, 1234 in [1, 2, 3, 4] giving True would probably surprise you on an array, but not on a string.15:27
Skarsnik what is the texas form? x)15:27
timotimo (>=) for example15:28
Zoffix m: my @valid = <foo bar ber>; say 'foo' (<=) @valid; say 'blarg' (<=) @valid15:28
camelia rakudo-moar cf7706: OUTPUT«True␤False␤»15:28
timotimo but i'd really use (elem) instead of (<=)15:28
ely-se left15:28
timotimo that is a simpler check to do. dunno if we optimize that case already or not15:28
Zoffix Yeah15:29
I had my mind set on...15:29
timotimo your mind set on Set? :)15:29
risourisou_awy15:29
Zoffix m: my @given = <foo bar>; my @valid = <foo bar ber>; say @given ⊆ @valid; @given.append: "blarg"; say @gtiven ⊆ @valid15:29
camelia rakudo-moar cf7706: OUTPUT«=== SORRY!=== Error while compiling /tmp/3FerWi__Kj␤Variable '@gtiven' is not declared. Did you mean '@given'?␤at /tmp/3FerWi__Kj:1␤------> n ⊆ @valid; @given.append: "blarg"; say @gtiven ⊆ @valid ␤»15:29
ilmari m: my @valid = <foo bar ber>; say 'foo' ∈ @valid;15:29
camelia rakudo-moar cf7706: OUTPUT«True␤»15:29
Zoffix dammit15:29
risou_awyrisou15:29
Zoffix m: my @given = <foo bar>; my @valid = <foo bar ber>; say @given ⊆ @valid; @given.append: "blarg"; say @given ⊆ @valid15:29
camelia rakudo-moar cf7706: OUTPUT«True␤False␤»15:29
timotimo note that that coerces the whole iterable to a set first15:30
Zoffix Premature optimization :)15:30
timotimo whereas .first or .index will short-circuit15:30
more importantly, perhaps, coercing a lazy sequence to a set will never terminate even if the element can already be found15:31
Zoffix ahh15:31
timotimo .index and .first still work under the assumption that the lazy sequence will at some point really generate that element15:31
if the element isn't in there, both .index/.first and (elem) will infiniloop, though15:31
Zoffix m: my $x = 1..Inf; say so $x.index: "42";15:31
camelia rakudo-moar cf7706: OUTPUT«False␤»15:31
Skarsnik returns Nil when no values match for first15:31
Zoffix m: my $x = 1..Inf; say so $x.first: "42";15:31
camelia rakudo-moar cf7706: OUTPUT«True␤»15:31
Skarsnik hm, should it be just False?15:31
oldskirt_ joined15:32
Skarsnik I am not if it's really a failure15:32
Zoffix HAH15:32
timotimo it doesn't smartmatch?15:32
oldskirt_ left15:32
timotimo m: say 45 ~~ "45"15:32
camelia rakudo-moar cf7706: OUTPUT«True␤»15:32
Zoffix nemo, somehow, magically, my compose started to work.. WITH the extended file ☺15:32
[Coke] *achoo*15:32
yoleaux 13:02Z <lizmat> [Coke]: I have a small patch that makes hash inits (like %h = a => 42) about 10% faster, should I commit now and if so, where ?15:32
timotimo hooray!15:32
Zoffix oh maybe not..15:33
Just the regular compose.. oh well, better than it being totally broken :P15:33
m: my $x = 1..Inf; say so 42 ∈ $x15:34
camelia rakudo-moar cf7706: OUTPUT«(timeout)»15:34
vytas left15:37
gfldex .oO( Never start at the wrong end of an infinite list. )15:38
[Coke] lizmat: nom. if we can cherry pick it to the release prep branch, great.15:38
.tell lizmat nom (I guess?) if we can cherry pick it to the release prep branch, great.15:38
yoleaux [Coke]: I'll pass your message to lizmat.15:38
vytas joined15:38
MadcapJake Any idea why JSON::Fast would be really slow?15:38
[Coke] MadcapJake: compared to?15:39
MadcapJake well anything, it seems to just hang indefinitely when given an array of objects15:39
m: class A {has $!value = 1, has $!string = 'A'}; my A @arr; for 0..15 { @arr.append: A.new }; use JSON::Fast; say to-json(@arr, :pretty);15:40
camelia rakudo-moar cf7706: OUTPUT«===SORRY!===␤Could not find JSON::Fast in:␤ /home/camelia/.perl6/2015.12-220-gcf7706f␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ C…»15:40
Skarsnik star-r: say 'hello'15:41
r-star: say 'hello'15:41
meh whatever xD15:41
Zoffix star: say 'hello'15:42
camelia star-m 2015.09: OUTPUT«hello␤»15:42
Zoffix star: class A {has $!value = 1, has $!string = 'A'}; my A @arr; for 0..15 { @arr.append: A.new }; use JSON::Fast; say to-json(@arr, :pretty);15:42
camelia star-m 2015.09: OUTPUT«Method 'append' not found for invocant of class 'Array[A]'␤ in block <unit> at /tmp/1giYzzUeuY:1␤␤»15:42
Zoffix ... it's *that* old? >_<15:43
MadcapJake Can JSON::Fast not handle class instances?15:43
It seems JSON::Tiny just says "Cannot serialize type A"15:43
Zoffix Dunno.. What's it supposed to do with them?15:43
MadcapJake turn them into hash objects15:43
moritz how?15:44
Zoffix Interesting. That's not what I'd expect it to do.15:44
ilmari objects are not hashes, regardless of what javascript calls them15:44
MadcapJake but this is json we're talking about...15:44
[Coke] I wouldn't expect to-json to work on classes, but I haven't read json-fast's docs yet.15:44
moritz also note that JSON::Tiny aims to be *Tiny*, like, minimal15:44
so it will never implement fancy conversion schemes15:44
[Coke] It should probably die or give up instead of hanging, though.15:45
Zoffix MadcapJake, but you don't get a Perl 6 object out of a JSON hash15:45
moritz there's room for larger/fatter/more feature-complete JSON implementations out there15:45
Zoffix I'd expect it to call TO-JSON method, if one present, and call .Str if not15:45
or .gist I guess15:45
kanishka joined15:45
Zoffix m: say IO::Socket::INET.new.Str15:46
camelia rakudo-moar cf7706: OUTPUT«IO::Socket::INET is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in block <unit> at /tmp/P7nTXH4fwu line 1␤␤»15:46
MadcapJake alright no biggy, i'll just create a class method that turns my objects into hashes15:46
Zoffix ---15:46
perlpilot TO-JSON sounds a little too magical to me.15:46
Skarsnik use json::marshal/unmarshal MadcapJake15:46
Zoffix perlpilot, that's the convention in Perl 5 land15:46
moritz note that you can export your own to-json multis for your types15:46
Zoffix Seems useful (if that convention is widely used that is)15:46
perlpilot IF the class did the Associative role, perhaps to-json would work15:46
MadcapJake Skarsnik: thanks!15:46
Zoffix huggable, Associative15:47
huggable Zoffix, role Associative [Object that supports looking up values by key]: http://doc.perl6.org/type/Associative15:47
jack_rabbit left15:47
Zoffix m: class Bar is Associative { has $!foo = 42; }; Bar.new<foo>.say15:47
camelia rakudo-moar cf7706: OUTPUT«Associative indexing implementation missing from type Bar␤ in block <unit> at /tmp/Sj7jziP7LP line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/Sj7jziP7LP line 1␤␤»15:47
Zoffix huh15:47
moritz perlpilot: what about things like Match and Capture that do both Positional and Associative?15:48
Zoffix: http://doc.perl6.org/language/subscripts15:48
perlpilot moritz: ah, good point.15:48
musiKk joined15:48
Zoffix Ahh15:48
moritz Zoffix: you told it to be associative, but not *how* it's supposed to associate15:49
Zoffix I wanted it magically figure that out :P15:49
perlpilot there is no magic here.15:49
moritz wants a new laptop15:49
Zoffix m: class Bar is Associative { has $!foo = 42; method AT-KEY { self."$key" } }; Bar.new<foo>.say15:49
camelia rakudo-moar cf7706: OUTPUT«=== SORRY!=== Error while compiling /tmp/9WvkPmbMks␤Variable '$key' is not declared␤at /tmp/9WvkPmbMks:1␤------> { has $!foo = 42; method AT-KEY { self." $key" } }; Bar.new<foo>.say ␤»15:49
Zoffix m: class Bar is Associative { has $!foo = 42; method AT-KEY { self."$^key" } }; Bar.new<foo>.say15:49
camelia rakudo-moar cf7706: OUTPUT«=== SORRY!=== Error while compiling /tmp/Ro3kkDUwAL␤Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.␤at /tmp/Ro3kkDUwAL:1␤------> $!foo = 42; method AT-KEY { self."$^key" } }; Bar.ne…» 15:49
Zoffix oh sod off15:49
m: class Bar is Associative { has $!foo = 42; method AT-KEY { self."$^key"() } }; Bar.new<foo>.say15:50
camelia rakudo-moar cf7706: OUTPUT«=== SORRY!=== Error while compiling /tmp/_Zb66kJwRE␤Placeholder variables cannot be used in a method␤at /tmp/_Zb66kJwRE:1␤------> is Associative { has $!foo = 42; method AT-KEY { self."$^key"() } }; Bar.new<fo ␤»15:50
Zoffix (╯°□°)╯︵┻━┻15:50
ilmari Zoffix: that doesn't help with iterating over the keys, though15:50
m: class Bar is Associative { has $!foo = 42; method AT-KEY($key) { self!"$key"() } }; Bar.new<foo>.say15:50
camelia rakudo-moar cf7706: OUTPUT«No such private method '!foo' for invocant of type 'Bar'␤ in method AT-KEY at /tmp/ebzsoO29Ld line 1␤ in block <unit> at /tmp/ebzsoO29Ld line 1␤␤»15:50
Zoffix These error messages are so good, they're annoying. It's like, if you're that smart, fix it for me :D15:50
perlpilot Zoffix: that's where there's room for magic in user-land :)15:51
ilmari m: class Bar is Associative { has $.foo = 42; method AT-KEY($key) { self."$key"() } }; Bar.new<foo>.say15:51
camelia rakudo-moar cf7706: OUTPUT«42␤»15:51
perlpilot use fix-it-for-me;15:51
Zoffix :)15:51
RabidGravy writes a really, really dumb HTTP echo server for testing purposes15:52
Zoffix perlpilot, I think I'll churn out Class::MagicAssociative right here and now :)15:52
To learn the hash methods15:52
Skarsnik RabidGravy, there is not already one? x)15:52
RabidGravy Not dumb enough15:53
Zoffix or Role:: I guess15:53
m: class Bar does Associative { has $.foo = 42; method AT-KEY($key) { self."$key"() } }; Bar.new<foo>.say15:53
camelia rakudo-moar cf7706: OUTPUT«42␤»15:53
nakiro left15:54
lnrdo left15:55
virtualsue joined15:56
Zoffix left15:57
lnrdo joined15:57
nige1 left15:59
sena_kun joined16:01
ZoffixWin joined16:02
ZoffixWin left16:02
ZoffixWin joined16:02
nemo ZoffixWin: wooohoo!16:02
ZoffixWin: maybe last reboot killed off some IME or something that was running ☺16:03
ZoffixWin maybe16:03
RabidGravy Skarsnik, I mean, really, really, really dumb https://gist.github.com/jonathanstowe/e0d76e413751a930272916:03
sena_kun I've built latest nqp/moarwm/rakudo using rakudobrew, then tried to install panda and got "Method 'bindir' not found for invocant of class 'CompUnit::Repository::Installation'". It seems panda is broken for me by last commit.16:04
ZoffixWin tries out fresh install16:05
sena_kun Of course, .perl6 and .rakudobrew was rm-rf-ed before. Twice.16:06
perlpilot sena_kun: see, there's your problem ... you didn't rm-rf a third time! ;)16:07
Zero_Dogg left16:07
perlpilot rakudobrews to see what happens locally16:07
dalek perl6.org: ad776e2 | (Zoffix Znet)++ | source/downloads/index.html:16:07
perl6.org: Typo16:07
perl6.org: review: https://github.com/perl6/perl6.org/commit/ad776e2ad716:07
Zero_Dogg joined16:08
Zero_Dogg left16:08
Zero_Dogg joined16:08
sena_kun perlpilot, I just like to remove things.16:08
nemo ZoffixWin: BTW, I don't know if you type in french like I do, but I had to disable some of that ridiculously large .XCompose for breaking accents. for some reason compose + ` + [a-z] is remapped to ᴀ..ᴇ... instead of à..è.. etc. Doing `a instead of a` seems to avoid it, but I don't like remembering order, so I just disabled the characters I actually needed for french16:08
ZoffixWin No, despite living in Cakunistan, I don't type in French :)16:09
*Canukistan too -_- way to ruin a pun16:10
perlpilot ZoffixWin: oddly, I read it as if you'd typed it correctly16:10
ZoffixWin Not too odd :) https://en.wikipedia.org/wiki/Typoglycemia16:11
perlpilot heh16:11
sena_kun: panda seems to have installed just fine here. How did you try to install panda?16:12
nemo ZoffixWin: ah. cool.. where in canada?16:13
ZoffixWin Brampton (40m away from Toronto, Ontario)16:13
domidumont left16:14
nemo ,0▌🍁 ▌ 16:15
ZoffixWin: ah. I grew up... well, all over the place, but originally from oshawa area16:15
40m O_o16:15
ZoffixWin Ah. Been there16:15
nemo went into a bit of a decline when GM started imploding16:15
sena_kun perlpilot, just as written at /downloads page. When I installed it about a week ago it was fine. git clone rakudobrew, then build moar, then tried to rakudobrew build panda. http://pastebin.com/aNSWNkwY - here is the log.16:16
nige1 joined16:16
ZoffixWin sena_kun, works fine for me too. rakudobrew build moar; rakudobrew build panda;16:16
lnrdo left16:17
ZoffixWin sena_kun, I notice in your log, it's not fetching from github16:17
lnrdo joined16:17
jme` joined16:17
perlpilot sena_kun: /home/sena/.rakudobrew/moar-2015.12 doesn't look like the "latest" to me.16:17
ZoffixWin sena_kun, this is my output, note the "cloning" at the start: https://gist.github.com/zoffixznet/8165faf650c53124e5e716:17
sena_kun ZoffixWin, it's because I rerun installation to show the log and master was already downloaded.16:18
ZoffixWin oh, heh, right :)16:18
sena_kun, k, lemme try build the Christmas perl and try with panda with that16:18
That's not what I assumed you meant by "latest nqp/moarwm/rakudo" :)16:19
perlpilot me either16:19
sena_kun ZoffixWin, sorry, I was wrong here.16:19
Started from scratch.16:20
ZoffixWin sena_kun, if you run "rakudobrew build moar" instead of "rakudobrew build moar 2015.12", *then* you'll get latest and greatest.16:21
Though, if panda fails with Christmas Perl 6, then it's certainly a problem.16:21
sena_kun ZoffixWin, "rakudobrew build moar latest" will do the trick also?16:22
ZoffixWin *shrug* never heard of that one16:22
sena_kun ZoffixWin, the whole new world is waiting. (:16:23
xvx joined16:24
sena_kun Read rakudobrew readme - okay, I was at fault. But panda certainly fails with Xmas.16:25
vendethiel joined16:25
_mg_ left16:27
ZoffixWin Yup. Reproduced.16:27
ZoffixWin files an Issue16:27
regreg joined16:29
ZoffixWin https://github.com/tadzik/panda/issues/29016:30
sftf joined16:30
Kogurr joined16:30
lnrdo_ joined16:33
nine .tell FROGGS https://github.com/tadzik/panda/issues/29016:33
yoleaux nine: I'll pass your message to FROGGS.16:33
nine .tell jnthn https://github.com/tadzik/panda/issues/29016:33
yoleaux nine: I'll pass your message to jnthn.16:33
lnrdo left16:34
mr-foobar joined16:36
psy joined16:36
psy left16:37
psy joined16:37
mohae_ joined16:41
mohae left16:44
zakharyas left16:47
xpen left16:47
vendethiel left16:49
nige1 left16:52
AlexDaniel m: https://gist.github.com/AlexDaniel/69ff636ffe405379212016:56
camelia rakudo-moar cf7706: ( no output )16:56
abraxxa left16:57
khw joined16:59
xvx left17:00
sena_kun left17:03
lostinfog joined17:05
skids1 joined17:06
mohae_mohae17:06
musiKk left17:07
Kogurr left17:07
skids left17:07
noganex_ joined17:16
ChoHag_ joined17:19
noganex left17:20
ChoHag left17:20
nige1 joined17:24
_mg_ joined17:27
pmurias joined17:27
Grauwolf left17:30
johan left17:30
xnrand left17:30
frew left17:30
lnrdo_ left17:30
BooK_ left17:30
zostay left17:30
zostay joined17:31
BooK joined17:31
lnrdo joined17:33
johan joined17:34
xnrand joined17:34
frew joined17:35
sjn \o17:35
sQuEEsQuEE`17:36
sjn wishes jnthn++ a happy birthday17:36
Grauwolf joined17:36
SCHAAP137 joined17:38
psy left17:42
psy_ joined17:42
sQuEE`sQuEE17:43
ely-se joined17:52
Actualeyes left17:55
frew left17:55
frew joined17:56
ely-se left18:00
muraiki joined18:04
vendethiel joined18:04
firstdayonthejob joined18:07
araujo left18:08
sftf left18:11
mr-foobar left18:12
mr-foobar joined18:12
lnrdo left18:16
addison joined18:16
lnrdo joined18:16
dakkar_ left18:19
_mg_ left18:22
ely-se joined18:29
FROGGS joined18:30
FROGGS o/18:31
yoleaux 16:33Z <nine> FROGGS: https://github.com/tadzik/panda/issues/29018:31
vendethiel \o18:31
FROGGS hmmm18:31
domidumont joined18:34
araujo joined18:35
araujo left18:36
ely-se hello world18:41
FROGGS hi ely-se18:42
ely-se writing my first type checker in Perl 618:42
EXCITING18:42
araujo joined18:42
araujo left18:42
araujo joined18:42
ely-se the last time I've been this excited must have been when I was writing my first type checker in C#18:43
_nadim joined18:43
vendethiel ..around a month or two ago :P.18:43
[Tux] :)18:44
ely-se :)18:44
_nadim left18:44
lnrdo left18:47
lnrdo joined18:48
jevin left18:48
keix left18:51
DrForr .seen nine18:51
yoleaux I saw nine 16:33Z in #perl6: <nine> .tell jnthn https://github.com/tadzik/panda/issues/29018:51
nine FROGGS: thanks for the quick fix!18:52
DrForr nine: Howdy. Got a memory issue I'd like to bounce off you.18:52
FROGGS nine: will start to build the star RC in e few minutes btw18:52
nine: just need to wait for the availability of my left arm, where my youngest falls asleep right now18:54
jevin joined18:54
mr-foobar left18:54
timotimo d'aaw18:54
nine FROGGS: :)18:55
DrForr: what can I do for you?18:55
keix joined18:55
DrForr Well, I'm fiddling with Inline::Guile stuff, and the way getting a list back from Scheme will have to work involves me malloc'ing a block inside C and having P6 deal with the resultant chunk.18:56
Which means that something needs to free() that list's memory.18:56
timotimo i wonder who will build Inline::V8 or Inline::Chakra or whatever the firefox one is called18:57
TraceMonkey?18:57
FROGGS copy the mem and then free it?18:57
nine so far so good?18:57
DrForr Right. I can do that easily enough, just buiild a struct, malloc the array and return it, no problem.18:58
timotimo sub free(Pointer $p) is native(Str) { * }18:58
DrForr That gets passed back as a CArray to Perl, and then when it's done unmarshalling the datastructure, something has to free it.18:58
FROGGS DrForr: free it from Perl 618:59
DrForr Yeah, that's the simple but a bit unsatisfying way because that means I have to trust the Perl 6 code to free it.18:59
Plus it's a nested data structure, with malloc'ed string ranges inside.18:59
timotimo doesn't that mean every user of Guile is supposed to do the free-dance?18:59
nine Why couldn't you trust the Perl 6 code to do that?18:59
DrForr timotimo: No, just the Inline::Guile module.19:00
mst because he wrote it and he knows he's terrible at it? ;)19:00
nine I assume the unmarshalling code is part of Inline::Guile anyway?19:00
virtualsue left19:00
DrForr Well, it's more complex than just free'ing the arena, so that part is probably best done in C.19:01
I just don't want to accidentally the free() call and release it into the wild.19:01
CIAvash left19:02
nine That's not much different from what I've got to do in Inline::Perl5. I also need to keep the reference counts correct which is quite a struggle.19:03
dfcarpenterak joined19:04
DrForr I'm thinking the best solution for that is to pass both the string we want eval'ed and a callback that does the unarshalling. That way the free() call can be in the same function that does the malloc, so I won't forget.19:04
domidumont left19:05
DrForr I'll play with that and let you know how I get along at FOSDEM, I suppose.19:05
gfldex http://design.perl6.org/S26.html#Placement_links does not make sense because there is no way to tell the renderer what the content type is19:05
nige1 left19:05
mst I don't recall having to do nearly this dance in Guile.pm19:05
but that may just be because somebody'd already written that part and I failed to understand it19:05
domidumont joined19:05
ggoebel14 how would one check if two lists are equivalent? (1,2,3,4) == (1,2,3,4)19:06
DrForr m: (1,2) ~~ (2,1)19:06
camelia rakudo-moar cf7706: ( no output )19:06
DrForr m: (1,2) ~~ (1,2)19:06
camelia rakudo-moar cf7706: ( no output )19:06
DrForr Er?...19:06
ZoffixWin SAY19:06
m: say (1,2) ~~ (1,2)19:06
camelia rakudo-moar cf7706: OUTPUT«True␤»19:06
ZoffixWin m: say (1,2) ~~ (2,1)19:07
camelia rakudo-moar cf7706: OUTPUT«False␤»19:07
DrForr Ah.19:07
gfldex m: say (1,2,3,4) eqv (1,2,3,4); say (1,2,3,4) eqv (1,2,3,5);19:07
camelia rakudo-moar cf7706: OUTPUT«True␤False␤»19:07
DrForr . o ( Say, say, say what you want... )19:07
ggoebel14 thank you... what is ~~ called?19:07
domidumont left19:07
gfldex smart match19:07
domidumont joined19:07
laz78 joined19:09
lnrdo left19:09
El_Che |Tux| corrupted me after using Text::CSV. Weird bug was "sprintf ('%02d', $<day>)" <- with the extra space :)19:09
DrForr mst - That may be the case, but the only way I've found to do eval involves running scm_with_guile() which takes a callback I create. That callbac does scm_eval_string() and passes the marshalled list back out of the Guile thread, which I have to tear apart and pass back.19:09
I still have to do tests to prove that it's retaining the enironment thread in between invocations.19:10
mst this sounds like "it got more complicated since I last looked at it"19:15
DrForr Very likely.19:15
mohae left19:16
mohae joined19:17
_mg_ joined19:18
[Coke] how agressive should we be about moving moarvm bug reports into moar rather than RT?19:19
sufrostico joined19:19
vendethiel m: multi sub infix:<+>(Str, Str) {}; say 3 + 4;19:19
camelia rakudo-moar cf7706: OUTPUT«7␤»19:19
[Coke] e.g. https://rt.perl.org/Ticket/Display.html?id=12737419:19
DrForr Whew, environment tests worked.19:20
Coupla days and 'guile-sub add($a,$b) { + a b }' may work :)19:21
MadcapJake where does panda/zef install modules to?19:22
_mg_ left19:22
cfedde left19:22
spider-mario joined19:22
mr-foobar joined19:23
cfedde joined19:23
ggoebel14 is it possible to use pointy block syntax on a list comparision with smart match? To turn something like: <x a m a x>[0..* div 2] ~~ <x a m a x>.reverse.[0..* div 2] into <x a m a x> -> $p { $p ~~ $p.reverse }19:27
lokien_ left19:29
yqt joined19:32
cdg left19:35
ggoebel14 my $a = <x a m a x>; for $a -> $p { say $p.[0..* div 2] ~~ $p.reverse.[0..* div 2] };19:35
is it possible to do that without first assigning the list to $a?19:36
_mg_ joined19:36
Kristien joined19:37
musiKk joined19:37
ely-se left19:38
perlpilot left19:39
perlpilot joined19:40
PerlJam left19:40
Kristienely-se19:42
ggoebel14 m: { $^a ~~ $^a.reverse }(<x a m a x>);19:44
camelia rakudo-moar cf7706: ( no output )19:44
ggoebel14 m: { say $^a ~~ $^a.reverse }(<x a m a x>);19:44
camelia rakudo-moar cf7706: OUTPUT«True␤»19:44
ggoebel14 m: { say $^a ~~ $^a.reverse }(<x a m a t>);19:44
camelia rakudo-moar cf7706: OUTPUT«False␤»19:44
musiKk Is it expected that Rakudo doesn't implement everything from the specs yet? For example user-defined array indexing gives compile errors.19:46
timotimo m: given <x a m a x> { say $^a ~~ $^a.reverse }19:46
camelia rakudo-moar cf7706: OUTPUT«True␤»19:46
timotimo musiKk: yeah, it is. sorry about that!19:46
[Coke] musiKk: the specs are the -tests-. the tests are expected to pass.19:46
Amendil left19:46
[Coke] not everything from the synopses is implemented, and may not be - some of that is speculative.19:46
timotimo [Coke]: do we only ship tests that pass and we've stripped out everything that's skipped?19:47
musiKk [Coke]: Yeah, that's true. I'm just perusing the design documents because I like to do that. :)19:47
lnrdo joined19:48
timotimo ah, right19:48
yeah the "specs", or rather "speculations" ;), aren't authoritative any more19:49
the ROAST has surpassed the specs half a year ago, or even earlier?19:49
dfcarpenterak left19:50
ggoebel14 timotimo: thank you. that reads better left to right...19:52
musiKk The Synopses are a great source of information though. There is a lot of stuff I just don't find any documentation for.19:53
timotimo ggoebel14: if you need it to, you can also put the given at the end of the statement19:54
[Coke] timotimo: we don't "ship" tests.19:54
timotimo oh19:55
[Coke] ... as release manager, I should not get that wrong, but I think I may have. :)19:55
timotimo well, fair enough19:55
i feel like i'm out of the loop :\19:55
[Coke] the targz has tests in it, I think; but we have yet to ship a second released version, so...19:55
but if we do, it'll be the 6.c branch, which is just the test files that we run, still with all the fudging in them.19:56
RT #127370 - do we expect -pe to even work?19:56
huh, guess so.19:57
MadcapJake when installing modules (via zef/panda) is the source code kept somewhere?19:57
Skarsnik Yes19:57
but it's 'unreadabl'19:57
aka /454545/898984457545465464646419:57
MadcapJake so no readable code is kept? man, that's a bummer19:57
timotimo yeah, we do expect -pe to work19:57
however, /proc/* has already given us grief once before19:57
last time it was because the kernel said "it's 0 bytes big" and we were like "empty string it is!"19:58
Skarsnik MadcapJake, it's readable, it just the way compunit work make it impossible to find the file19:58
MadcapJake I thought they added the module name at the beginning now19:58
Skarsnik well you can try a ack 'module*mymodule' in panda stuff, but meh19:58
mr-foobar left20:00
MadcapJake Skarsnik: what do you mean by `a ack`?20:00
Skarsnik grep20:00
ack is a fancy grep20:00
MadcapJake oh, what's the format of the filenames?20:01
darutoko left20:01
lnrdo left20:02
Skarsnik well you can try to find the declaration of the class/module you want20:02
Sqirrel joined20:02
MadcapJake Skarsnik: I'm seeing ~/.rakudobrew/moar-nom/panda/ext has a set of modules I've installed (and not mangled), is this old?20:03
Skarsnik No idea20:03
MadcapJake oh i think those are panda required deps20:04
timotimo that's just the panda folder20:04
like, a git clone of the panda repository20:04
it has a few modules it requires to bootstrap itself20:04
timotimo BBL20:04
MadcapJake isn't there at least a folder where they're all placed? I'm not having luck finding anything (`find ~/.rakudobrew -name *File*`)20:06
DrForr And I panic MoarVM. Must be doing something right.20:07
hoelzro does anyone have a problem where panda doesn't get installed into $prefix/share/perl6/site/bin ?20:08
I think it's since FROGGS' bin-prefix change yesterday20:08
DrForr hoelzro: On my work laptop, yes.20:08
hoelzro DrForr: for a while now? or just recently?20:08
my linenoise canary died yesterday claiming it couldn't find panda20:08
and sure enough, panda wasn't installed to my perl6 directory20:09
[Coke] hoelzro: that's been hitting a bunch of ecosystem travis builds, IIRC.20:09
flussence seems missing here too (I've got an hourly cronjob that reinstalls everything on one machine, `perl6` is there)20:09
[Coke] presumably a recent change somewhere in the toolchain.20:09
hoelzro ah ha20:09
b2gills .ask TimToady Should the right alternation take precedence? 「say 'abc' ~~ / <:L> | <:L><:L><:L>+ /」20:10
yoleaux b2gills: I'll pass your message to TimToady.20:10
TEttinger joined20:10
b2gills .tell fireartist Please tell me that you aren't copying Games::Lacuna::Client wholesale to Perl 6. It is in desperate need of restructuring. I already did some of it. I would have done more, but I decided it would be easier to start from scratch (even in Perl 5). (never got a round tuit though)20:11
yoleaux b2gills: I'll pass your message to fireartist.20:11
MadcapJake what advantage does having these crazy long file/folder names have over just building a name from meta6.json (lib name + version, or something)20:11
Amendil joined20:12
b2gills MadcapJake: Unicode on Posix systems20:12
hoelzro MadcapJake: well, for one, we don't have to worry about FS-specific details like which characters are illegal, or case sensitivity20:13
FROGGS hoelzro: >.<20:13
ChoHag_ left20:13
FROGGS hoelzro: where does panda get installed to?20:14
hoelzro FROGGS: nowhere, it seems20:14
FROGGS O.o20:14
hoelzro nowhere under my installation prefix, anyway20:14
if I specify --bin-prefix by hand, it works20:14
I imagine specifying --prefix would fix the issue as well20:14
FROGGS hoelzro: hmmmm20:15
MadcapJake couldn't that just be easily worked though? Just create a translator that turns any name into the most stable name, all-lowercase, replace unicode with number, etc.20:15
hoelzro I'm guessing it has something to do with the stringification of the CUR, so you end up with something like "#inst/tmp/nom/...".IO20:15
leont joined20:15
FROGGS ohh20:15
hoelzro MadcapJake: I think nine settled on a less-than-ideal solution that works, with the notion of revisiting it later20:15
perlpilot MadcapJake: a "generic transform" (like SHA for instance :) is better than a "highly specific to this one thing transform" like you just described.20:15
nanis joined20:16
Zero_Dogg left20:16
MadcapJake ok, i just want to be able to find these files for my completion generator, and i'm going to need to understand the whole shebang, no ways around it :P20:16
Zero_Dogg joined20:16
Zero_Dogg left20:16
Zero_Dogg joined20:16
MadcapJake i found ~/.rakudobrew/moar-nom/install/share/perl6/site/dist/ has files that appear to describe each module and the name given to each subfile, is that accurate?20:17
lizmat computer: messages20:17
yoleaux 15:38Z <[Coke]> lizmat: nom (I guess?) if we can cherry pick it to the release prep branch, great.20:17
flussence .oO( let's use punycode mangling for filenames, that way everyone's equally dissatisfied :)20:18
MadcapJake perlpilot: totally fine by me! just would love an easier experience delving into module files, I guess I'm spoiled by npm.20:18
dalek rakudo/nom: 85d20f3 | lizmat++ | src/core/ (2 files):20:18
rakudo/nom: STORE_AT_KEY doesn't return anything20:18
rakudo/nom:20:18
rakudo/nom: Makes initialization of hashes about 10% faster20:18
rakudo/nom: review: https://github.com/rakudo/rakudo/commit/85d20f3a4420:18
FROGGS hoelzro: confirmed20:19
lizmat .tell [Coke] 85d20f3 is the one to cherry pick20:19
yoleaux lizmat: I'll pass your message to [Coke].20:19
hoelzro FROGGS: why do you suppose panda silently fails?20:19
FROGGS hoelzro: no idea20:19
b2gills Sometimes a specialized transform can be more space efficient https://codegolf.stackexchange.com/a/66454/114720:20
FROGGS m: say CompUnit::RepositoryRegistry.repository-for-name('site')20:20
camelia rakudo-moar cf7706: OUTPUT«inst#/home/camelia/rakudo-m-inst-1/share/perl6/site␤»20:20
FROGGS m: say CompUnit::RepositoryRegistry.repository-for-name('site').Str20:20
camelia rakudo-moar cf7706: OUTPUT«/home/camelia/rakudo-m-inst-1/share/perl6/site␤»20:20
nine m: my $cu = $*REPO.need(CompUnit::DependencySpecification.new(:short-name<Test>)); say $cu.repo.prefix.child($cu.distribution.provides<Test>.values[0]<file>)20:21
camelia rakudo-moar cf7706: OUTPUT«"/home/camelia/rakudo-m-inst-1/share/perl6/39D1BEBEB786F0DE0B82489F3F02F5C672CBA1F7".IO␤»20:21
nine No guessing needed actually20:21
FROGGS m: say CompUnit::RepositoryRegistry.repository-for-name('site').Stringy20:21
camelia rakudo-moar cf7706: OUTPUT«/home/camelia/rakudo-m-inst-1/share/perl6/site␤»20:21
nine m: my $cu = $*REPO.need(CompUnit::DependencySpecification.new(:short-name<Test>)); say $cu.repo.prefix.child('sources' ~ $cu.distribution.provides<Test>.values[0]<file>)20:21
camelia rakudo-moar cf7706: OUTPUT«"/home/camelia/rakudo-m-inst-1/share/perl6/sources39D1BEBEB786F0DE0B82489F3F02F5C672CBA1F7".IO␤»20:21
nine m: my $cu = $*REPO.need(CompUnit::DependencySpecification.new(:short-name<Test>)); say $cu.repo.prefix.child('sources/' ~ $cu.distribution.provides<Test>.values[0]<file>)20:21
[Coke] nine: feel free to cherry pick 85d20f3 if it looks good for you. :)20:21
camelia rakudo-moar cf7706: OUTPUT«"/home/camelia/rakudo-m-inst-1/share/perl6/sources/39D1BEBEB786F0DE0B82489F3F02F5C672CBA1F7".IO␤»20:21
yoleaux 20:19Z <lizmat> [Coke]: 85d20f3 is the one to cherry pick20:21
[Coke] lizmat++20:21
MadcapJake Anyone interested, p6dx can do some completions now! https://github.com/madcapjake/p6dx It still needs to traverse any subfolders and I want to allow you to specify `--meta` and it will provide completions from any depended on module (that's where my questions come from)20:23
Amendil m: @array = 0, 42, 1337; say "I have {+@array} elements";20:24
camelia rakudo-moar cf7706: OUTPUT«=== SORRY!=== Error while compiling /tmp/hfxIOlvbv7␤Variable '@array' is not declared. Did you mean any of these?␤ Array␤ array␤␤at /tmp/hfxIOlvbv7:1␤------> <BOL> @array = 0, 42, 1337; say "I have {+@arr ␤»20:24
Amendil m: my @array = 0, 42, 1337; say "I have {+@array} elements";20:24
camelia rakudo-moar cf7706: OUTPUT«I have 3 elements␤»20:24
hoelzro MadcapJake++ # nice, I'll have to check that out!20:25
MadcapJake Thanks! It can generate ctags and a json format too. Eventually it will also have a linter with customizable rulesets.20:26
nine MadcapJake: https://gist.github.com/niner/06792102587a7994029420:26
domidumont left20:26
nine flussence: I actually think that punycode would be a good solution since it would keep most file names untouched.20:27
molaf joined20:27
diakopter ely-se: what sort of type system?20:27
Amendil m: my @array = 0, 42, 1337; say "I have {+@array[0,1]} elements";20:27
camelia rakudo-moar cf7706: OUTPUT«I have 2 elements␤»20:27
Amendil oh20:28
ely-se diakopter: structural20:28
diakopter ely-se: not dependent?20:29
ely-se no value-dependent types, no20:29
diakopter for a programming language?20:29
MadcapJake nine++ This is perfect! I can just integrate that right in. Thanks so much!20:29
nine Just updated it to print info about the dist meta data20:30
diakopter ely-se: I just mean, for which language/prover?20:31
ely-se custom one20:31
doesn't exist yet20:32
lisp-like20:32
grondilu left20:33
FROGGS hoelzro: I've got a patch20:34
grondilu joined20:35
FROGGS hoelzro: please try latest panda20:35
MARTIMM left20:36
lichtkind joined20:36
flussence shell(q{strace -s 255 perl6 -MTest -e 1 2>&1 | fgrep sources}, :out).out.get.comb(/\"(.*?)\"/).put # shorter :)20:38
dalek rakudo/2016.01-preparation: b6c3321 | lizmat++ | src/core/ (2 files):20:39
rakudo/2016.01-preparation: STORE_AT_KEY doesn't return anything20:39
rakudo/2016.01-preparation:20:39
rakudo/2016.01-preparation: Makes initialization of hashes about 10% faster20:39
rakudo/2016.01-preparation: review: https://github.com/rakudo/rakudo/commit/b6c332106620:39
FROGGS ***ALL*** - please try this release candidate of Rakudo Star: http://froggs.de/perl6/rakudo-star-2016.01-RC1.tar.gz20:39
***ALL*** - please test it and report bugs to the rakudo/star repository, but keep in mind it is an RC0, so dont update your production servers just now20:40
nine For the record: I'm not entirely happy with picking this patch, as it _does_ change semantics of a method. But it's an upper case method apparently unused in the ecosystem and if we change this, we'd better do it right away.20:40
ely-se WTB P6CRE20:41
DrForr nine: Got it working, lots more trivia to get through though.20:42
_mg_ left20:42
nine FROGGS: btw. thanks for taking on R* :)20:43
FROGGS nine: sure20:44
nine: hope we get some feedback20:44
Skarsnik FROGGS, you should probably contact distrib maintainer? x)20:44
laz78 left20:45
molaf left20:45
FROGGS Skarsnik: star is not packagable currently anyway sadly20:46
Skarsnik: and since star is a distro, they actually are not meant to package it20:46
nine why?20:47
[Coke] nine: if the method isn't explicitly tested in p6.c, it's fair game.20:47
dfcarpenterak joined20:47
[Coke] packaging folks can emulate star, but why would they package it directly?20:47
FROGGS nine: https://rt.perl.org/Ticket/Display.html?id=12689420:47
[Coke] it was a stopgap for folks until packages packaged.20:47
FROGGS [Coke]: aye20:47
[Coke] FROGGS: is it based on the prep branch?20:48
(the 2016.01 star you're rc'ing?)20:48
FROGGS e.g. debian should package moar, nqp, rakudo, panda, modules on its own etc20:48
[Coke]: yes20:48
sufrostico left20:48
[Coke] ok. I assume you need an actual release of the compiler before you pull the trigger.20:49
or at least, would like.20:49
laz78 joined20:50
espadrine left20:52
dfcarpenterak left20:52
moritz [Coke]: fwiw you have my green light on the prep branch20:52
nine FROGGS: actually the right solution seems to be to delete the generated precomp files before packaging as I do in https://build.opensuse.org/package/view_file/home:niner9:branches:devel:languages:parrot/rakudo/rakudo.spec?expand=120:52
kaare_ left20:53
FROGGS ahh, hmmm20:53
nine: please suggest that on RT but I think packaging star is still the wrong approach20:53
nine Always remember: the precomp files created during module installation are pretty useless right now.20:53
FROGGS: yes, individual packages are definitely the way to go20:54
moritz ==> Fetching JSON::Fast20:56
Please remove leading 'v' from perl version in JSON::Fast's meta info.20:56
flussence is there an RT# for that particular precomp bug, for reference?20:57
moritz any chance we can get that cleaned up for the star release?20:57
FROGGS moritz: sure, that's timotimo's, right?20:57
nine FROGGS: added the info to the ticket20:58
FROGGS nine++20:58
moritz FROGGS: right; I'll pull-request20:58
[Coke] if we're happy, I can try to do the release tonight.20:58
Relsak joined20:59
[Coke] (for the prep) - nine did all the hard work; I'll try to include some of the points from the blog post I just made about what the plans are going forward.20:59
moritz https://github.com/timo/json_fast/pull/1121:01
_mg_ joined21:02
sortiz joined21:04
bowtie left21:06
nige1 joined21:07
bowtie joined21:07
El_Che \o/ bowtie! long time no see21:08
AlexDaniel m: say ‘hello’.bytes21:09
camelia rakudo-moar 85d20f: OUTPUT«Method 'bytes' not found for invocant of class 'Str'␤ in block <unit> at /tmp/ZhAKeaWz1W line 1␤␤»21:09
_mg_ left21:09
AlexDaniel is there any way to know how many bytes are there?21:09
m: say ‘hello’.codes21:09
camelia rakudo-moar 85d20f: OUTPUT«5␤»21:09
leont That question is not sensible21:09
You can only answer that question in the context of a specific encoding, such as utf821:09
AlexDaniel leont: what would make it more sensible to you?21:09
ah ok, of course. I just default to UTF-821:10
moritz AlexDaniel: you can .encode first21:10
AlexDaniel moritz: right!21:10
moritz m: say 'hello'.encode('UTF-8').bytes21:10
camelia rakudo-moar 85d20f: OUTPUT«5␤»21:10
moritz m: say 'hello'.encode('UTF-16').bytes21:10
camelia rakudo-moar 85d20f: OUTPUT«10␤»21:10
AlexDaniel leont: that's a good point, actually. Thank you21:10
moritz m: say 'hello'.encode('UTF-7').bytes21:10
camelia rakudo-moar 85d20f: OUTPUT«Unknown string encoding: 'utf-7'␤ in block <unit> at /tmp/AeB_qA9dDD line 1␤␤»21:10
diakopter FROGGS: seems to install fine on a fresh Mint 17.3 64-bit in VirtualBox on mac21:10
moritz still installing modules here21:11
FROGGS diakopter: ohh awesome, thank you21:11
AlexDaniel m: m: say 'hello'.encode.bytes21:11
camelia rakudo-moar 85d20f: OUTPUT«5␤»21:11
ZoffixWin is not convinced asking people to remove "v" is a sensible approach.21:11
ZoffixWin Why not just regex it out?21:11
FROGGS diakopter: can you use its panda to install a module?21:11
ZoffixWin During install. DWIM and not annoy people.21:11
[Coke] arent' we already dwimming and then warning?21:12
ZoffixWin panda refuses to install the module.21:12
Unless this changed in the past 24 hours21:12
[Coke] k21:13
revhippie joined21:13
diakopter FROGGS: er, do you want the warnings the install outputted?21:13
zakharyas joined21:14
FROGGS diakopter: no, just wanna know if the panda is in a good shape21:15
hoelzro FROGGS: thanks, will do!21:15
ZoffixWin Ahh, never mind me. It does DWIM and warn. Last night, along with the "v" a person was using "v6.0.0", so panda was refusing to install it for 6.c21:16
diakopter FROGGS: only suggestion for top-level `make install` - add some message echo saying the Rakudo Star installation is done; currently the last line is ==> Successfully installed Debugger::UI::CommandLine21:17
also helpful would be a message saying into which path(s) stuff was installed21:17
FROGGS hmmmm, that makes sense21:17
diakopter like, I don't know where to go looking for panda after it finished21:18
FROGGS yeah21:18
a nice summary at the end would be nice21:18
diakopter (or which dir to add to PATH if I wanted to run panda)21:19
like, do I need to add install/share/perl6/bin21:21
flussence m: put $*REPO.repo-chain[1].writeable-path.child(‘bin’) # least-insane way to determine panda path, afaik21:21
camelia rakudo-moar 85d20f: OUTPUT«/home/camelia/rakudo-m-inst-1/share/perl6/site/bin␤»21:21
diakopter in addition to install/bin21:21
FROGGS: ^21:21
FROGGS diakopter: only the install/bin21:22
hoelzro FROGGS: works for me now!21:24
thanks!21:24
cdg joined21:25
cdg left21:25
cdg joined21:26
diakopter FROGGS: but if I want to run stuff panda installs?21:27
FROGGS ummm21:27
ups21:27
yeah, there is a thinko somewhere :/21:27
ZoffixWin You have to add two paths ATM. The ones that are listed on http://perl6.org/downloads/21:28
rindolf left21:28
ZoffixWin Otherwise binaries you install with panda aren't found21:28
lokien_ joined21:28
FROGGS damn, that renders the bindir patch rather useless >.<21:28
dfcarpenterak joined21:29
diakopter FROGGS: so we have install/share/perl6/bin and install/share/perl6/site/bin21:29
in addition to install/bin21:29
geraud joined21:29
FROGGS C:\rakudo\bin\panda21:33
Cannot unbox a type object21:33
-.-21:33
moritz I get the same error on LInux21:35
with a backtrace21:35
FROGGS wait, I seem to have an old perl6 binary somewhere21:36
moritz too21:36
moritz guess I should patch PATH21:36
FROGGS ~/dev/star/work-m/rakudo-star-2016.01-RC1$ install/bin/panda21:37
Panda -- Perl 6 Module Installer21:37
[...]21:37
moritz I've removed the other $PATH elements, and I still get the unbox error :(21:37
ah no, sneaky; I had a bin/perl6 in my $HOME21:38
and didn't notice, because I usually invoke perl6-m directly21:38
FROGGS okay, panda works fine after getting the other perl6 out of PATH21:42
... on windows that is21:43
I'll muse about the bindir stuff, and potentially revert the patches to rakudo and panda21:43
moritz can confirm it works here too21:44
hankache joined21:44
FROGGS nice21:45
I'll add a nice welcome msg at the end of the installation as diakopter++ suggested, but that'll happen tomorrow21:45
hankache hi FROGGS21:47
FROGGS hi hankache21:48
zakharyas left21:48
bowtie left21:48
wamba joined21:48
hankache FROGGS i updated 2 weeks back docs/perl6intro.pdf on the master branch of rakudo/star21:49
FROGGS can you use this version instead of the one in the release branch?21:49
FROGGS the one in master is the updated one.21:49
FROGGS sure, will do21:50
bowtie joined21:50
hankache thanks FROGGS++21:50
FROGGS ***ALL*** - MS Windows® Rakudo Star release candidate available, please test: http://froggs.de/perl6/rakudo-star-2016.01-x86_64-RC1%20(JIT).msi21:53
[Tux] left21:53
FROGGS gnight21:55
FROGGS left21:55
dfcarpenterak left21:57
moritz sleep well FROGGS++21:59
muraiki left22:00
[Tux] joined22:05
pmurias_ joined22:08
pmurias left22:11
laz78 left22:13
pmurias_pmurias22:15
laz78 joined22:15
laz78 left22:15
pmurias is there any reason for using --/tests instead of --no-tests?22:15
(in zef)22:15
jdv79 isn't the convention --no$thing ?22:16
perlpilot probably becuase rakudo's command line parser doesn't grok --no-tests, but it does grok --/tests ?22:17
That would be my guess anyway22:17
hankache left22:18
pmurias --/$options seems really alien22:18
sftp left22:19
leont Yeah22:19
perlpilot ++foo .... ++/foo is pretty alien too22:20
sftp joined22:21
jdv79 is that doc'd anywhere?22:21
perlpilot It's in one of the synopses .... S19 I think22:22
yeah, S1922:22
leont is tempted to write a Getopt::Long, but it's actually rather non-trivial to do it well22:23
perlpilot jdv79: start reading at http://design.perl6.org/S19.html#Options_and_Values22:23
jdv79 oh, its in s0622:24
nice22:24
perlpilot oh, S06 too (makes sense since MAIN is a routine :)22:24
Skarsnik good night #perl622:29
jdv79 cya22:29
Skarsnik left22:29
El_Che leont: please do. I love the batteries-include Main approach. But it's just too basic. E.g. the order of switches is significant, also the --option=value instead of "--option value" is pretty alien on *nix (e.g. when you can use shell autocompletion)22:31
cpage_ left22:31
leont I have no idea on what a good 6ish interface would be like yet, though22:31
jdv79 can DrForr's p5 to p6 thing work on that?22:32
hoelzro you could always write a MAIN::Getopt module that exports a MAIN-HELPER that calls MAIN the "right" way22:32
jdv79 i keep meaning to try it22:32
hoelzro er, MAIN_HELPER22:32
nige1 left22:33
perlpilot hoelzro: MAIN_HELPER is alien to P6, it should be MAIN-HELPER ;-)22:33
hoelzro perlpilot: agreed, we just need to change it =)22:33
that way, you keep the sixey MAIN, but you get Getopt-friendly argument processing22:34
best of both worlds =)22:34
leont: ↑22:34
apathor joined22:34
leont Interesting…22:34
perlpilot indeed.22:34
hoelzro I've been thinking about writing that for a while, but I'm lazy =P22:35
RabidGravy right that's me done for the day22:35
Kogurr joined22:35
hoelzro does a lot of thinking about writing things22:36
jdv79 isn't MAIN special? you'd have to grab the old one and replace it, no?22:37
hoelzro jdv79: you just need to make sure to call it from MAIN_HELPER22:38
zostay hoelzro: hey, you said you had an idea regarding my threading pains, this is the first time i've seen you and i've been too lazy so far to enter #moarvm22:38
hoelzro zostay: you can always ping me, even if I'm not active =)22:38
I'm always lurking, but my activity varies wildly =)22:38
zostay: if you post the exact source that's abort()ing for you, I'd be happy to take a look22:38
jdv79 but when one runs "perl6 foo.p6" and foo.p6 has a MAIN that get's called, right?22:39
*gets22:39
hoelzro jdv79: yes; all because rakudo calls MAIN_HELPER to call MAIN ;)22:39
well, rakudo sets up a call to MAIN_HELPER, which in turn calls MAIN22:39
jdv79 oh, i didn't know MAIN_HELPER was a thing. nice.22:39
RabidGravy left22:39
ugexe if yuo have a module that has a MAIN_HELPER `use`d by foo.p6 then it loads the modules version22:39
hoelzro it's not a spec'd thing, but it's a rakudo thing22:39
exactly22:40
I did a PoC on it a week or so ago22:40
perlpilot It should be a spec thing though.22:40
ugexe but if you have 2 modules that do that it doesnt work22:40
hoelzro perlpilot: I completely agree22:40
ugexe so you cant have like a pluggable app that adds commands that sho wup in usage22:40
hoelzro ugexe: yeah, that's tricky22:40
although you can have a single MAIN_HELPER impl be smart about looking at multi candidates22:41
and inspecting their signatures for things22:41
jdv79 sounds magically complicated22:41
hoelzro it's complicated for the implementor so that the user can benefit22:42
sound familiar? =P22:42
MAIN_HELPER is responsible for taking @*ARGS and calling MAIN; whatever else you add is up to you22:42
zostay hoelzro: the exact source that's aborting is here, if you run this test: https://github.com/zostay/HTTP-Supply/blob/master/t/http-1.0.t22:43
hoelzro zostay: thanks, I'll have a look later tonight22:43
musiKk left22:44
properly joined22:45
lichtkind left22:46
hoelzro here's a quick exmaple of a MAIN_HELPER module: https://gist.github.com/hoelzro/7fd925b4f4617a5c46b522:47
apologies for the sloppiness22:47
zostay awesome, i'm terrible at responding on irc, btw... it'd be better to file a ticket on github or email me at the address listed on github/cpan/etc.22:48
hoelzro noted =)22:49
properly Plse help, from rosettacode 'update a configuration file' we have this line: %changes.=map({; .key.uc => .value });22:50
diakopter oh hey Andrew22:50
zostay you, sup matt?22:50
er.. yo22:50
properly Without the initial semicolon in the code block, get this: Method 'count' not found for invocant of class 'Hash'22:50
jdv79 the semi is disambiguating the {} into a code block. without it seems its a hash constructor.22:51
:(22:51
well, forcing maybe is a better term22:51
perlpilot what's with the :( ?22:51
properly Works by using $^A ie {$^a.key.uc => $^a.value}22:51
jdv79 or -> too, right?22:51
properly yes pointy block also works, but the ; is so good , why does it work?22:52
jdv79 its just unfortunate we still have that issue of {} being used for 2 things and the choice is not always obvious22:52
properly ok disambiguates22:52
thanks22:53
geekosaur yes, it has to guess what it is and while it is smarter than perl 5 was about it, your {} looks like a pair inside and therefore a hash constructor22:53
properly tk you22:53
geekosaur it's the price of using the same syntax for two different things22:54
perlpilot jdv79: well, that's why we have some syntactic disambiguation :)22:54
cpage_ joined22:57
cpage_ left22:59
jdv79 it just feels like a p5 style of issue to me23:00
cpage_ joined23:02
lnrdo joined23:04
ely-se left23:06
flaviusb left23:11
lostinfog left23:13
pmurias left23:15
hoelzro zostay: does that test always abort?23:15
firstdayonthejob left23:16
hoelzro zostay: also, which OS is this on?23:16
properly left23:22
nanis FROGGS: RC0 built without problems on Windows 10 using VS2015. nmake rakudo-test passed all. I expect there will be two failures with spec tests, but I don't know if there is anything that can be done about those.23:24
mprelude joined23:27
lnrdo left23:37
lnrdo joined23:37
lnrdo left23:42
hoelzro .tell zostay I can't reproduce the issue on my box (64-bit Arch Linux); let me know when you're around so we can figure this out =)23:54
yoleaux hoelzro: I'll pass your message to zostay.23:54

Logs Search ←Prev date Next date→ Channels Documentation