»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
[Coke] starts working on 2016.02 release process... 00:04
yoleaux 20 Feb 2016 20:25Z <lizmat> [Coke]: I fixed one more bug in .first(:end). Hope it's still good to include in release. If not, revert/exclude 8fdaada
00:05 dindinx left 00:06 rr joined, rr left
dalek p: ed92966 | coke++ | VERSION:
bump VERSION
00:13
[Coke] nqp jvm failure: t/nqp/76-capture.t 00:24
[Coke] opens github.com/perl6/nqp/issues/277 00:26
why is make release on nqp complaining that it can't find nqp js files? 00:28
me tries doing a js build to see if that somehow became required this month. 00:30
js build hangs. 00:36
[Coke] is reminded to start trying to cut a release like every week . :P 00:37
00:37 wamba left
MadcapJake almost done: github.com/MadcapJake/sixbug/tree/all-tickets 00:50
if anyone has any input on issue templates, please submit a PR, issue, or message me. 00:51
00:55 neilb left 01:03 SCHAAP137 left 01:05 japhb joined
AlexDaniel MadcapJake: what about Q:s< {"id":"$id","subject":"$subject","created":"$created"}> ? 01:17
MadcapJake: this is unrelated to the main issue but still :)
sufrostico The NativeCall Library works with static libraries? 01:18
01:21 BenGoldberg joined 01:27 revhippie joined 01:28 dh7320 left 01:31 revhippie left 01:32 kid51 joined, Actualeyes joined 01:37 cpage_ joined 01:38 Sgeo joined 01:39 alpha123 left 01:41 Sgeo__ left
[Coke] guessing we're missing a dependency on the makefile template somewhere; after a git clean -xdf, nqp HEAD seems fine. 01:50
02:13 kurahaupo joined 02:15 yqt left, molaf_ joined 02:20 molaf left
AlexDaniel star: sub foo(Int() $x) { say $x }; foo(True) 02:21
camelia star-m 2015.09: OUTPUT«1␤»
AlexDaniel m: sub foo(Int() $x) { say $x }; foo(True)
camelia rakudo-moar 77581b: OUTPUT«True␤»
AlexDaniel huh?
star: sub foo(Int $x) { say $x }; foo(True)
camelia star-m 2015.09: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zX3xorjh3f␤Calling foo(Bool) will never work with declared signature (Int $x)␤at /tmp/zX3xorjh3f:1␤------> 3sub foo(Int $x) { say $x }; 7⏏5foo(True)␤»
AlexDaniel I thought that Int() should do the trick? 02:22
dalek kudo/nom: be7dd67 | coke++ | docs/ (2 files):
Add release announcement for 2016.02
kudo/nom: 4d5cb05 | coke++ | docs/release_guide.pod:
rely on default file name,

be less specific
kudo/nom: 2953d0a | coke++ | docs/ChangeLog:
fix typo
kudo/nom: 80a4998 | coke++ | tools/build/NQP_REVISION:
[release] bump NQP revision
kudo/nom: f04a894 | coke++ | VERSION:
[release] bump VERSION
MadcapJake AlexDaniel, isn't that an old star release?
AlexDaniel MadcapJake: it is
MadcapJake: but I feel like Int() was actually working right before Christmas 02:23
02:31 alpha123 joined
[Coke] m: say Bool ~~ Int 02:43
camelia rakudo-moar f04a89: OUTPUT«True␤»
[Coke] start: say Bool ~~ Int
star: say Bool ~~ Int
camelia star-m 2015.09: OUTPUT«False␤»
[Coke] guess not. 02:44
02:45 kid51 left
[Coke] note that 2015.09 is not "right before" 02:45
AlexDaniel [Coke]: I remember some trick which was like Int() or something 02:46
that actually worked, hmmm
02:46 ilbot3 left
AlexDaniel star: sub foo(int $x) { say $x }; foo(True) # hehe 02:47
camelia star-m 2015.09: OUTPUT«1␤»
02:47 ilbot3 joined
AlexDaniel m: sub foo(int $x) { say $x }; foo(True) # I meant this 02:48
camelia rakudo-moar f04a89: OUTPUT«1␤»
02:50 sufrostico left
dalek ast/6.c-errata: 527da4c | coke++ | S11-modules/require.t:
This test is now passing on rakudo HEAD
03:08
03:12 ChoHag left 03:14 colomon joined
[Coke] release isn't happening today, there are failnig tests. 03:15
Please be mindful and perhaps don't commit to nom branch until we get this resolved except for the bug fixes. 03:16
03:19 DoverMo joined
DoverMo i got good at locking in my souls 03:19
[Coke] Anyone wants to poke, the meta ticket is rt.perl.org/Ticket/Display.html?id=127589 03:21
moritz [Coke]: the last spectest run on hack was successful, so it must be platform specific tests or flappers 03:25
[Coke] moritz: are you running roast/master tests? 03:30
moritz [Coke]: yes
[Coke] that's not what needs testing.
moritz oh
[Coke] we need to make sure we're not breaking the 6.c tag / 6.c-errata branch
03:30 rpburkholder left
moritz m: say dir()[0].^name 03:49
camelia rakudo-moar f04a89: OUTPUT«IO::Path␤»
dalek ast/6.c-errata: 31fa3f9 | moritz++ | S32-io/dir.t:
#127591: Relax test a bit

this tested against IO::Local, and the test never passed. These days, IO::Local is gone, so the previously failing test now errors out.
Instead, relax the test to check for IO::Path. And unfudge, because it passes that way.
03:51
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127591
03:52 avenj left 03:54 noganex joined 03:57 noganex_ left
[Coke] moritz: when was IO::Local remoed? 04:00
skids Anyone understand the part of design.perl6.org/S12.html#proto_Signatures that talks of mapping named to positionals? I can't a code example for it. 04:22
04:25 lichtkind left 04:33 zpmorganASDF joined 04:34 zpmorgag left 04:35 zpmorgag joined 04:38 zpmorganASDF left, kurahaupo left
skids [Coke]: looks like commit 5ed58f6d maybe? 04:38
04:42 Ben_Goldberg joined
jdv79 was newio merged? 04:43
04:43 TEttinger left 04:45 BenGoldberg left, Ben_Goldberg left 04:53 atweiden joined 04:54 DoverMo left
atweiden anyone know how to fix this? 04:55
m: class ABC { method mod($container, :$value!) { my $root := $container; $root = $value; }; }; my %container; ABC.mod(%container, :value({:a(7)})); say %container.perl;
camelia rakudo-moar f04a89: OUTPUT«Cannot assign to a readonly variable or a value␤ in method mod at /tmp/j0adloWvJ5 line 1␤ in block <unit> at /tmp/j0adloWvJ5 line 1␤␤»
Juerd atweiden: Well, 'method mod($container is rw, ...' would be a start, but then you run into that hashes aren't writable containers :) 05:03
You could work around that by using $container instead of %container. 05:04
dalek osystem: 9ae882c | okaoka++ | META.list:
Add Algorithm::ZobristHashing to ecosystem

See github.com/okaoka/p6-Algorithm-ZobristHashing
05:14
osystem: 55c9189 | (Fritz Zaucker)++ | META.list:
Merge pull request #159 from okaoka/add-zobrist

Add Algorithm::ZobristHashing to ecosystem
atweiden Juerd: i can do that, but i don't think it would make for a sane api. would dropping down to nqp be a possible solution? 05:18
05:20 TEttinger joined
llfourn skids: I've pondered that sentence before when writing proto docs. Never understood it either. 05:24
skids m: proto sub a (:$a!, :$b!) {*}; multi sub a ($a, $b) { 42.say; "$a $b".say }; a(:a,:b) # that's how I interpreted it but either I'm wrong or its an NYI 05:27
camelia rakudo-moar f04a89: OUTPUT«Cannot call a(:a, :b); none of these signatures match:␤ ($a, $b)␤ in block <unit> at /tmp/7y8VLQ5AQY line 1␤␤»
llfourn cool that kinda makes sense 05:29
skids Maybe it needs an explicit dispatch in the proto, but the language kinda makes it sound like inferred behavior.
Also, that mystery mechanism is cited as the reason "6.0.0" (6.c) sort of supports named parameter mmd even though it isn't required. 05:32
llfourn where is this citation out of interest?
skids design.perl6.org/S12.html#Multi_Sub..._et_Cetera 05:33
llfourn ah thanks so that does sound more like what you gave as an example. 05:34
I think the present implementation makes sense is there a reason to change it? 05:36
05:37 zpmorgag left
skids No, I'm just looking into it while improving the metamodel signature comparator. 05:39
llfourn ah awesome. That required multis from roles thing? 05:41
rt.perl.org/Public/Bug/Display.html?id=127303 05:42
skids No, just stuff like this is currently wrong: 05:44
m: role A { multi method a ($a, $b) { }; multi method a ($b, $a) { } }; role B { }; class C does A does B { }; # should conflict like:
camelia ( no output )
skids m: role A { multi method a ($, $) { }; multi method a ($, $) { } }; role B { }; class C does A does B { }; # should conflict like:
camelia rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bXod6RANiA␤Multi method 'a' with signature :(C $: $, $, *%_) must be resolved by class C because it exists in multiple roles (A, A)␤at /tmp/bXod6RANiA:1␤»
05:44 autarch left
skids The names of positional parms should not matter. 05:45
Currently this is done by comparing signature.perl's
llfourn ah well that is sorta the same problem as RT #127303 05:46
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127303
skids (And not done in many places, but I'm not addressing that yet)
llfourn oh hey bot welcome back
skids++ I'll leave you to it :)
skids anyway, time to hit the hay. 05:49
05:49 skids left
llfourn skids: 'night 05:49
06:00 atweiden left 06:02 Cabanossi left 06:04 Cabanossi joined
average AlexDaniel: yeah, I agree.. there are some bash code style things that could be better 06:08
AlexDaniel: I'm curious what you think about the rest 06:09
06:11 cbk left
AlexDaniel average: well, I can only talk about my experience. Any time I needed something more complicated than a couple lines of bash code I usually regretted that I decided to solve the task with bash… All these times I ended up rewriting it in something else and hugely profiting from that rewrite. And that's given that I know bash really well. So even though these code snippets are far from being over-complicated, still I'd ask myself several 06:21
times if it would be easier to do that in, like, Perl 6. Where's Perl 6 version, by the way?
06:22 adu joined
jdv79 ditto. i do not know bash well but i've delved deep a bunch of times to give it a chance and never was it a great experience or product. 06:22
AlexDaniel average: that being said, I'm sure that somebody will find it very useful, if you remove all quoting footguns of course :)
average AlexDaniel: hehe
AlexDaniel: well yeah, i agree with you that bash offered little control.. that's what i felt throughout looking for ways of making that queue thing 06:23
06:24 ggoebel16 joined
average AlexDaniel: the main reason for such a solution is a low-overhead, minimalist, only using stuff that a system is most likely to be equipped with 06:24
so basically that was the main excuse for trying to do it
AlexDaniel: to your question, yeah there's no p6 version, but there's a p5 version :)
jdv79: I keep the bash code snippets in the blog post quite small 06:26
AlexDaniel average: I'm not sure if on this channel it counts as a reason for not having p6 version :) 06:27
jdv79 average: nice
average jdv79: I don't go very deep with Bash's idioms, I'm sure there are plenty tho
AlexDaniel: well, what's right is right.. 06:28
AlexDaniel: thanks for skimming through it and offering feedback :)
AlexDaniel for a long time I wanted to start a blog about bash refactoring. E.g. every week I'd pick a random free software project, find a bash script in there, figure out that half of the variables are not quoted, find actual problems caused by that, refactor, send PR, done. 06:31
that's what I did many times actually, I just didn't blog about it, eh. Should start it one day anyway
06:33 adu left
AlexDaniel the problem with bash is that most people think that it is a very simple fool-proof tool that requires no learning. Yeah, right… Yeah… 06:34
06:34 khw left
average well, generally, there are situations where low-cost simplistic solutions fit well 06:34
I am happy to pluck a hole with a Bash script, in cases where I don't care very much and where I do not have time 06:35
AlexDaniel yeah, it is so. I'm just saying that in this situations you should be very careful. Much more careful than when you write in other languages
these* 06:36
e.g. in other languages just using a variable can't result in an execution of some random code 06:37
average oh, yeah, I agree. the oportunity for security problems is hiding around almost every corner
on the other hand, if you were to cover all of those, the code blocks in your blog post would probably take up a significant amount of page space 06:38
AlexDaniel like, good job, you've just incremented a number, yeah: mywiki.wooledge.org/BashPitfalls#re...2B-1.29.29 06:39
average: and not so much space if you were using something else :)
average between a rock and a hard place :P
AlexDaniel but for really really short script sure enough it is hard to beat bash 06:40
k, back to programming microcontrollers 06:43
xiaomiao s/bash/posix sh/ ;) 06:45
AlexDaniel xiaomiao: fair enough. Though I don't see non-bash shell scripts very frequently 06:47
xiaomiao AlexDaniel: I see lots of people religiously putting #!/bin/bash there and then not using any bash features (e.g. [[ or += ) 06:48
and since bash is relatively slow, why use it for /bin/sh ...
AlexDaniel xiaomiao: or other way round! Putting #!/bin/sh there and then using bashisms
llfourn ^^ this is the worst problem
xiaomiao AlexDaniel: yeah, all of the nagios community
my favourite is still "shell has no loops" => wrap a single statement in a ruby loop => sigh 06:49
llfourn $((a++)) # works in many /bin/sh but not dash
xiaomiao now for every iteration you spawn a subshell :(
AlexDaniel xiaomiao: oh, subshells! People love that! 06:50
MadcapJake how do you turn a string into a regex? 06:51
AlexDaniel MadcapJake: are you sure that you don't want to store the regex itself?
llfourn m: my $str = ".+"; say "foo" ~~ rx/$str/; 06:52
camelia rakudo-moar f04a89: OUTPUT«Nil␤»
06:52 abaugher left
AlexDaniel m: my $str = /.+/; say "foo" ~~ $str; 06:53
camelia rakudo-moar f04a89: OUTPUT«True␤»
llfourn m: my $str = ".+"; say "foo" ~~ rx/<{$str}>/;
camelia rakudo-moar f04a89: OUTPUT«「foo」␤»
llfourn I think that might be it
but perhaps there's a better way 06:54
MadcapJake m: my regex foobar { <{ <foo bar>.join('|') }> }; say('bar' ~~ &foobar); # yep, wanted to take a list and turn it into an alternation, thanks!
camelia rakudo-moar f04a89: OUTPUT«「bar」␤»
llfourn cool. 06:55
06:55 abaugher joined 06:58 sno left 07:02 ggoebel16 left
Hotkeys why not just use any() there? 07:11
AlexDaniel yea? 07:12
m: say so ‘foo’ . contains: any <oo aa ee> 07:15
camelia rakudo-moar f04a89: OUTPUT«True␤»
07:19 nowan left
[Tux] test 22.404 07:22
test-t 12.042
csv-parser 49.675
07:23 nowan joined, CIAvash joined 07:24 alpha123 left 07:28 Actualeyes left 07:29 ggoebel16 joined 07:37 firstdayonthejob joined 07:40 nakiro joined 07:42 Actualeyes joined
MadcapJake Hotkeys, because it's part of a greater regex and I need the matched contents 07:43
Hotkeys ah
07:44 _mg_ joined 07:52 kentnl joined 07:53 kentnl left, kentnl joined, kent\n left, kentnl is now known as kent\n
CIAvash MadcapJake: If you use the list directly it will do the alternation 07:53
m: my regex foobar { @(<foo bar>) }; say('bar' ~~ &foobar);
camelia rakudo-moar f04a89: OUTPUT«「bar」␤»
MadcapJake haha! nice xD 07:54
07:55 FROGGS joined 07:56 RabidGravy joined
CIAvash m: my regex foobar { || @(<foo bar>) }; say('bar' ~~ &foobar); # if you don't want the longest alternation 07:57
camelia rakudo-moar f04a89: OUTPUT«「bar」␤»
07:57 domidumont joined 07:58 mr-foobar joined, fireartist joined 08:02 darutoko joined 08:03 domidumont left, domidumont joined 08:06 ely-se joined 08:12 Skarsnik joined 08:17 neilb joined
RabidGravy BOOM! 08:17
fireartist ~fizzle~ 08:18
08:22 neilb left 08:24 zakharyas joined 08:30 domidumont left, firstdayonthejob left
moritz blörg! 08:35
08:37 matta is now known as matt_ 08:38 abraxxa joined 08:40 Ethan joined 08:41 Ethan left, neilb joined
FROGGS broom! 08:42
RabidGravy bleep! 08:44
MadcapJake issue submitter progress: youtu.be/8SlFZEra-98 08:47
MadcapJake is off to bed
llfourn watches vid
MadcapJake: 4 seconds in and this is epic
MadcapJake»++ 08:48
RabidGravy considers he may have coded himself into a corner with this code 08:49
FROGGS MadcapJake++ 08:50
08:50 sortiz joined
Skarsnik MadcapJake++ 08:53
sortiz \o #perl6
llfourn o/ # check out youtu.be/8SlFZEra-98
08:54 dh7320 joined
sortiz moritz, The problem with rt.perl.org/Ticket/Display.html?id=127593 is that IO::Dir was removed at the same time that IO::Local, but 6.c-errata still check for it. 08:57
08:57 vendethiel- left 08:58 Amendil joined
sortiz MadcapJake++ 08:58
moritz sortiz: yes. I just don't know what to do with it
this whole WHICH.t file is, like, totally worthless
sortiz Um, IMO the sane approach now is remove IO::Dir from the @normal list. 09:00
09:01 pmurias_ joined, pmurias joined
sortiz moritz, I dunno if other tests check for the classes expected in settings. 09:02
09:02 vendethiel joined
pmurias [Coke]: that failing test is caused by nqp-jvm missing an op, I'll try to add this op 09:02
[Coke]: when does the js build hang? 09:03
CIAvash MadcapJake++ 09:05
09:05 tmch joined 09:06 neilb left, gregf_ joined 09:10 Praise left 09:11 Praise joined 09:13 neilb joined 09:15 |Tux| left
Woodi so modern GUI :) MadcapJake++ 09:19
mst++ # human-file-names++, promises 09:20
09:21 |Tux| joined 09:22 wamba joined 09:23 brrt joined 09:24 sortiz left 09:25 vendethiel left, ocbtec joined 09:27 fireartist left 09:29 vendethiel joined 09:44 Skarsnik left 09:53 vendethiel left 09:54 sno joined 09:57 vendethiel joined
DrForr o/ 09:58
brrt \o DrForr 09:59
DrForr If I have time this weekend App::prancer might make it into the modules.perl6.org repo. 10:00
llfourn DrForr: What's prancer? 10:01
brrt hey #perl6, i have something odd 10:10
if I have this file: '#!/usr/bin/env perl6\nsay "OH HAI";' and run it as an executable, no code is run 10:12
if i perl6 ./foo.pl6 then it is
DrForr One mo... 10:13
github.com/drforr/perl6-App-prancer 10:14
10:14 pmurias left, pmurias_ left
brrt in fact, i'm not sure whether the ./foo.pl6 syntax invokes the perl6 interpreter at all 10:14
10:14 pmurias joined 10:15 pmurias_ joined, pmurias left, pmurias_ left
El_Che DrForr: It could be useful for writing rest services. Is it threaded? 10:16
DrForr It's just a .. er, shell on top of Crust. However it operates things right now, I haven't really tested the guts because at FOSDEM the author said it still wasn't handling concurrency as well as it should be. But it's one of the few (okay, it's the only) PSGI server I could build on. 10:18
El_Che yeah, I remember. It froze around 100-200 requests or something 10:19
10:19 pmurias joined 10:20 pmurias_ joined
DrForr I.E. whatever model Crust uses, I'm piggybacking on. I assume that the callback is running in its own thread which means GET requests each run in their own thread, but that's unsubstantiated, I'd have to RTFS. 10:20
El_Che I asked because I would like to create a rest interface in perl6
DrForr Well, I actually have plans for a REST handler layer on top of the existing functional.
El_Che that's great news 10:21
DrForr I can read the variable names, so 'sub POST( "/post", Str:D $username ) is REST { }' will eventually DTRT and listen for '/post/username/$username'.
El_Che we've been prototyping with java spring for that stuff, where almost everything is autogenerated. It would be great to do it in perl6
DrForr And. *AND*. Last night I was thinking about that and realized that a lot of the boilerplate code the current Dancer app I'm building could be removed if we could do soemthing like: 10:22
10:22 cpage_ left
DrForr multi GET( '/post', User $user ) is REST { } # where the app takes the rest of the /post arguments and passes them to the User.new() method directly, populating $user. 10:23
And www.youtube.com/watch?v=vAUVaBFtjfc picked that time to start :) 10:25
FROGGS brrt: problem (on osx) is that your wrapper is calling a wrapper
brrt: and that does not seems to work out
10:27 abraxxa left, abraxxa1 joined
brrt indeed 10:28
FROGGS works on linux fwiw 10:29
brrt refrains from saying nasty things about OS-X, for the time being
average I like queues a lot 10:30
can someone make a cool blog post about queues in p6 so I can munch a burger while skimming it ?
brrt what kind of queues are you talking about average? 10:31
the term has become a bit overloaded recently
average brrt: blog.garage-coding.com/2016/02/05/b...queue.html
brrt: these kinds of queues
brrt from 'dequeue' data structure, to 'job queue' to, 'enterprise microservices coodrination thingy'
average well, i mean.. the idea of inserting into a message queue and like.. just popping stuff off of it and consuming the contents 10:32
brrt: well.. the enterprise things are really enterprise.. they give you that feeling that someone just dropped a ton of paperwork on your face 10:33
i mean.. lightweight stuff is more attractive, at least to me
also, can people here when you make blog posts, can you put a lot of drawings in them ? i like drawings a lot, when i see drawings i'm like "yess!! drawings" 10:34
RabidGravy DrForr++ # that stuff is looking good BTW 10:35
Woodi average: probably you shoud google for some Perl6 docs :)
moritz average: I could use some help with pretty drawings; if you help (or find somebody else who helps), I'll be very happy to include some pretty drawings in my blog posts
DrForr RabidGravy: Thanks. 10:36
brrt average: i suppose the equivalent thing would be a supply with an await that reads the supply and dispatches to start 10:37
otherwise, if you want a fifo-based operating system level queue system, i humbly suggest you use the operating system :-)
psch m: my $ch = Channel.new; $ch.send($_) for ^5; for ^5 { start { say "$_ got {$ch.poll}" } }; 10:38
camelia rakudo-moar f04a89: OUTPUT«1 got 1␤2 got 2␤0 got 0␤3 got 3␤»
DrForr I'm just glad that ok so True == ( map { ?$_.<node> }, $s.graph.values).all worked the first time I tried it :)
psch i'm *still* not quite sure on Channel vs. Supply, though...
also i don't know where the 4 went vOv 10:39
further, hi #perl6 o/
10:39 Mokok joined
timotimo .tell [Coke] did you mean that to read "It includes bugfixes and optimizations on top of the 2015.12 release of Rakudo, but no new features."? as in: .12? also, that sentence lacks a full-stop in front 10:39
yoleaux timotimo: I'll pass your message to [Coke].
jast heh, first time I've seen 'vOv' -- cute :) 10:40
10:40 vendethiel left 10:41 vendethiel joined
RabidGravy psch, probably want an "await" in there 10:44
10:45 FROGGS left, cognominal left
dalek ast/6.c-errata: 6af3c5b | lizmat++ | S32-temporal/DateTime.t:
Fix faulty test

When in a leap second, adding a day should not move your forward to next day, but will put you in the last second of the next day. Just as moving one month from Jan 31 will not put you in March, but in the last day of February. This incorrect behaviour was fixed post 2015.12: this test was incorrect, and is now fixed.
10:45
psch RabidGravy: right, thanks, that gets all 5 elements
it also seems to put things back in order, which i guess is sensible
m: my $ch = Channel.new; $ch.send($_) for ^5; for ^5 { await start { say "$_ got {$ch.poll}" } }; #
camelia rakudo-moar f04a89: OUTPUT«0 got 0␤1 got 1␤2 got 2␤3 got 3␤4 got 4␤»
lizmat .tell [Coke] RT #127590 is fixed
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127590
yoleaux lizmat: I'll pass your message to [Coke].
RabidGravy psch, however
m: my $ch = Channel.new; $ch.send($_) for ^5; await for ^5 { start { say "$_ got {$ch.poll}" } }; 10:47
camelia rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/waHNV_9Jhn␤Unexpected block in infix position (missing statement control word before the expression?)␤at /tmp/waHNV_9Jhn:1␤------> 3l.new; $ch.send($_) for ^5; await for ^57⏏5 { start { say "$_ got {…»
RabidGravy m: my $ch = Channel.new; $ch.send($_) for ^5; await do for ^5 { start { say "$_ got {$ch.poll}" } };
camelia rakudo-moar f04a89: OUTPUT«1 got 1␤0 got 0␤2 got 2␤3 got 3␤4 got 4␤»
psch ah
neat
10:48 rindolf joined
RabidGravy in the way you had it was awaiting on each one in turn before starting the next, the latter way starts them all and awaits for all of them 10:49
thus, not necessarily in order
psch yeah, i get that, thanks :) 10:51
jnthn Beware that .poll doesn't block for a value (and in this simple example of course there always will be values)
psch yes, that was deliberate on my part. the un-awaiting example is silent with .receive instead of .poll - and i had forgotten await exists... :) 10:52
RabidGravy :)
.seen supernovus 10:53
yoleaux I saw supernovus 28 Dec 2015 18:21Z in #perl6: <supernovus> At some point I should look at rakudobrew to replace my moon script that I've been using for the last 4 years.
moritz today's autopun: twitter.com/carlmaxim/status/701707649331625984 10:54
RabidGravy may have some suggestions regarding namespace handling in the XML module at some point
10:54 andrewalker joined
RabidGravy just hacking around my difficulties with a role at the moment 10:55
dalek ast/6.c-errata: a069b92 | lizmat++ | integration/weird-errors.t:
Replace one weird error with another

It really feels to me that this type of test is really bogus. But something got fixed along the way from 2015.12, and now this piece of code fails in a better way, differently from before. Perhaps we should only test that it fails, period?
This takes care of RT #127592
10:58
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127592
brrt iirc there was an operator to get the maximum of two values, is that correct? 11:01
m: say 1 max 4;
camelia rakudo-moar f04a89: OUTPUT«4␤»
brrt ok, now, how do i apply that listwise 11:02
e.g.
psch m: say [max] 1,2,3,4
camelia rakudo-moar f04a89: OUTPUT«4␤»
psch m: say (1,2,3,4).max
camelia rakudo-moar f04a89: OUTPUT«4␤»
brrt ok, how do i apply that zip-listwise
dalek ast/6.c-errata: c73db6b | lizmat++ | S02-types/WHICH.t:
Remove tests for IO::Dir & IO::File

These were leftovers of a merge attempt of the newio branch. The code was basically in 2015.12, but wasn't used. It has since been removed. These were the only 2 tests for these classes in roast. They shouldn't have been there in the first place. Mea culpa.
This fixes RT #127593
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127593
brrt m: say q:w[1 2 3 4] Z q:w[4 3 2 1];
camelia rakudo-moar f04a89: OUTPUT«((1 4) (2 3) (3 2) (4 1))␤»
lizmat .tell [Coke] afaics, all blockers for 2016.02 have been dealt with 11:03
yoleaux lizmat: I'll pass your message to [Coke].
brrt m: say (q:w[1 2 3 4] Z q:w[4 3 2 1]).>>max;
camelia rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2qP2sV14DG␤Missing dot on method call␤at /tmp/2qP2sV14DG:1␤------> 3say (q:w[1 2 3 4] Z q:w[4 3 2 1]).>>7⏏5max;␤ expecting any of:␤ postfix␤»
psch oh, of each zip'd pair only the max
brrt m: say (q:w[1 2 3 4] Z q:w[4 3 2 1])>>.max; 11:04
camelia rakudo-moar f04a89: OUTPUT«(4 3 3 4)␤»
brrt ah, cool
m: say 0 xx 4;
camelia rakudo-moar f04a89: OUTPUT«(0 0 0 0)␤»
brrt perl6++
lunch & 11:05
11:06 RabidGravy left
AlexDaniel brrt: I find it a little bit too verbose 11:07
I'd do this instead
m: say q:w[1 2 3 4] Zmax q:w[4 3 2 1]
camelia rakudo-moar f04a89: OUTPUT«(4 3 3 4)␤»
psch max is a bit weird, mostly because of a prefix *and* infix op existing i think 11:08
Hotkeys What does the :w adverb do
psch m: say max 1,2,3; say [max] 1,2,3
camelia rakudo-moar f04a89: OUTPUT«3␤3␤»
psch the latter is the listop'd infix
jnthn Hotkeys: split by whitespace
Hotkeys Ah
jnthn But you could write it as <1 2 3 4> more neatly :)
psch that threw me for a loop a bit when trying to find the solution AlexDaniel++ mentioned
Hotkeys Right
I knew that one
I also know just qw 11:09
timotimo yeah, :w is the same thing as in qw
Hotkeys Didn't realize it could be q:w
psch m: say 1,2,3 Z[max] 4,5,6
camelia rakudo-moar f04a89: OUTPUT«(4 5 6)␤»
jnthn We have colonless shortcuts for a handful of them, yeah
psch i mean, that just looks confusing...
timotimo better colonless than spineless, eh?
jnthn psch: What's confusing about it? :)
psch jnthn: well, with "max can be infix *and* prefix" it's understandable, i think 11:10
jnthn It's not a prefix op though?
m: say &max
camelia rakudo-moar f04a89: OUTPUT«sub max (+ is raw, :&by = { ... }) { #`(Sub|71270736) ... }␤»
jnthn Yeah, just a plain old sub call in that form
psch right, i mix those up i suppose
11:10 Mokok left
psch in Z[max] it gets the infix as list-op then or what exactly happens there..? 11:11
jnthn Z[max] is just another spelling of Zmax
psch but they do different things :S
m: say 1,2,3 Z[max] 4,5,6; say 1,2,3 Zmax 4,5,6
camelia rakudo-moar f04a89: OUTPUT«(4 5 6)␤(4 5 6)␤»
psch grr
no
precedence
uhm, i'll investigate this on my own a bit i guess :P 11:12
jnthn :-)
I'm pretty sure those two forms are identical
AlexDaniel psch: you can put any other infix op there
timotimo it's only for disambiguation when you put a [ ] into a metaop-op-combination
AlexDaniel m: say <1 2 3 4> ZZZ <4 3 2 1> 11:13
camelia rakudo-moar f04a89: OUTPUT«((((1 4))) (((2 3))) (((3 2))) (((4 1))))␤»
psch oh duh
Hotkeys Lol
psch well, the confusion was actually from the data
timotimo super important to have the "snore" operator
Hotkeys m: <1 2 3 4> Z, <4 3 2 1> 11:14
camelia ( no output )
Hotkeys Argh
psch i didn't realize that of (1,4), (2,5), (3,6) it's always the second value that's bigger
timotimo hehehe
Hotkeys I wish the repl wasn't a repl or camelia was a repl
I never remember to use say
11:14 FROGGS joined
psch m: say 1,2,3 Z&[max] 4,5,6 # this one had me stumble a bit too 11:15
camelia rakudo-moar f04a89: OUTPUT«(all(1, 6))␤»
psch but then i remember that [&sub] is the right form for infixification
Hotkeys m: say 1...4 Z, 4...1
camelia rakudo-moar f04a89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/IazsFworzI␤Only identical operators may be list associative; since '...' and 'Z,' differ, they are non-associative and you need to clarify with parentheses␤at /tmp/IazsFworzI:1␤------> 3say 1...4 Z7⏏…»
psch +ed
lizmat .tell [Coke] All tests successful. Files=1103, Tests=51466, 277 wallclock secs (13.54 usr 3.82 sys + 1717.11 cusr 146.56 csys = 1881.03 CPU) (on 6.c-errata)
yoleaux lizmat: I'll pass your message to [Coke].
Hotkeys Wow way to get angry camelia
AlexDaniel Hotkeys: yeah, you have to use parens 11:16
and I hate it
Hotkeys m: say <1 2 3 4> Z, <4 3 2 1>
camelia rakudo-moar f04a89: OUTPUT«((1 4) (2 3) (3 2) (4 1))␤»
Hotkeys Nice and redundant
zipping with comma
AlexDaniel m: say (1…4) Z=> (4…1)
camelia rakudo-moar f04a89: OUTPUT«(1 => 4 2 => 3 3 => 2 4 => 1)␤»
AlexDaniel m: say (1…4) Z<= (4…1) 11:17
camelia rakudo-moar f04a89: OUTPUT«(True True False False)␤»
AlexDaniel m: say (1…4) Z<=> (4…1)
camelia rakudo-moar f04a89: OUTPUT«(Less Less More More)␤»
AlexDaniel xD
psch m: say (1…4) ZR=> (4…1)
camelia rakudo-moar f04a89: OUTPUT«(4 => 1 3 => 2 2 => 3 1 => 4)␤»
Hotkeys I was gonna do that but I'm glad you did
Typing code on Android is a pain in the arse
psch m: say (1…4) ZRRZ=> (4…1)
camelia rakudo-moar f04a89: OUTPUT«((1 => 4) (2 => 3) (3 => 2) (4 => 1))␤»
timotimo m: sub infix:<fst>($a, $b) { $a }; say (1…4) Zfst (4…1)
camelia rakudo-moar f04a89: OUTPUT«(1 2 3 4)␤»
Hotkeys Lol
timotimo this is th Zfst operator i've ever made 11:18
psch is there any doc stuff around for the CUR stuff? i know it's been around a bit, but i've only now again time for jvminterop and apparently i need to make Java classes fit into that somehow 11:19
AlexDaniel m: sub infix:<fst>($a, $b) { ($a,$b).pick }; my $x = 5; $x fst= 10
camelia ( no output )
AlexDaniel m: sub infix:<fst>($a, $b) { ($a,$b).pick }; my $x = 5; $x fst= 10; say $x 11:20
camelia rakudo-moar f04a89: OUTPUT«5␤»
AlexDaniel m: sub infix:<fst>($a, $b) { ($a,$b).pick }; my $x = 5; $x fst= 10; say $x
camelia rakudo-moar f04a89: OUTPUT«5␤»
pmurias_ is there a way to skip a test file on the jvm?
(for jvm)
psch pmurias_: you can limit to e.g. moar in t/spectest.data
jnthn pmurias_: Normally we just don't include them in the spectest.data
11:20 pmurias left, pmurias_ left
timotimo well, we don't have a separate spectest.data for jvm or moar, eh? 11:20
jnthn Oh, right 11:21
Forgot...it's markers in there
timotimo but doesn't spectest.data something in it, too?
at least for "stress"
jnthn Yeah, you mark stuff # moar to run on Moar only, for example 11:22
AlexDaniel me ZZZ bed & 11:23
timotimo so do we have !jvm?
see ya, AlexDaniel
lizmat moritz: regarding S02-types/WHICH.t being worthless: it is supposed to track minimal functionality of classes *and* flag if they're gone 11:25
moritz: which is exactly what it did, so not worthless in my book 11:26
11:26 pmurias joined
jnthn timotimo: No; if there are matchers then you have to match at least one of them to run the test 11:26
So one marked with # moar will never match on JVM
timotimo ah, ok
11:29 AlexDaniel left
psch hrm, new, new, bless, BUILDALL loop 11:32
timotimo interesting 11:33
psch i think that's probably where all the StackOverflowErrors i've seen up to now happen :P
timotimo sounds likely
psch well, it's really that i'm not sure what exactly i have to hand to a CU::Handle to make it deal successfully with a Java class wrapper
hence the "is there docs" question :) 11:34
timotimo hm
psch i'd rather not blindly spend a few days trying to manually build a CallFrame that could serve as a context for a ContextRefInstance, at least as long as i'm not sure that *actually* helps 11:35
timotimo i expect you'd need to copy how :from<nqp> registers itself, for example, eh? 11:36
psch yeah, that's what i started with
timotimo hmm
11:37 brrt left, brrt joined
dalek kudo/jvminterop: b11477f | peschwa++ | src/vm/jvm/CompUnit/Repository/Java.pm:
Add basic infrastructure to support JVM interop via CURs.
11:37
kudo/jvminterop: cbf1171 | peschwa++ | t/03-jvm/01-interop.t:
:from<java> is gone in favor of :from<Java>.
kudo/jvminterop: f772323 | peschwa++ | / (4 files):
Get JVM interop via CUR started.

As of this commit the CUR seems workish, in so far that it breaks because it doesn't get anything useful from RakudoJavaInterop.computeInterop.
psch hrm, *CUR *part* 11:38
anyway, yeah, that dies with "ctxledpad needs a ContextRef" or somesuch
and a ContextRef needs a CallFrame context
timotimo :S
psch or rather, a ContextRefInstance needs a CallFrame context
11:39 roguelazer left, jnap left, WizJin left 11:40 mrsolo left, hobbs left, beatdown left, caasih left, skarn left, solarbunny left, ilmari left, flussence left
psch to summarize, as far as i understand all the architecture, from what i pushed just now i need to add something that builds a lexpad around the Java class so that CU::Handle can deal with it correctly 11:40
11:40 hoelzro left, dustinm` left, polyfloyd left
psch and i know awefully little about that... :) 11:41
11:41 boegel left, flussence joined, jnap joined, ely-se left 11:42 polyfloyd joined, ilmari joined, hoelzro joined 11:43 mrsolo joined, boegel joined, ely-se joined, caasih joined 11:44 beatdown joined
[Coke] pmurias: ignore the js build thing from before; if it was an issue, it was only an issue for someone doing a release who had done a build, and then a git pull over that commit. Or it was all just me. 11:45
yoleaux 10:39Z <timotimo> [Coke]: did you mean that to read "It includes bugfixes and optimizations on top of the 2015.12 release of Rakudo, but no new features."? as in: .12? also, that sentence lacks a full-stop in front
10:46Z <lizmat> [Coke]: RT #127590 is fixed
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127590
yoleaux 11:03Z <lizmat> [Coke]: afaics, all blockers for 2016.02 have been dealt with
11:15Z <lizmat> [Coke]: All tests successful. Files=1103, Tests=51466, 277 wallclock secs (13.54 usr 3.82 sys + 1717.11 cusr 146.56 csys = 1881.03 CPU) (on 6.c-errata)
timotimo oh hey coke :)
11:45 hobbs joined 11:46 Amendil left, roguelazer joined 11:47 dustinm` joined
[Coke] timotimo: lizmat++ moritz++ # erratizing. 11:49
timotimo: I don't understand your question about my grammar.
(whoops, timotimo was only meant for send#2 there.)
timotimo whatever ;) 11:50
i wonder, should we also mention that Set.hash's returned hash is now properly decoupled from the set?
so that changing the hash no longer changes the set?
[Coke] timotimo: I deliberately did not include all of Changelog. 11:52
11:52 skarn joined
[Coke] but if that's a big change, sure, we can add it back. 11:52
timotimo right
lizmat - + Map.Hash now correctly separates from the Map
+ + Set/Map.Hash now correctly separates from the Set/Map
timotimo it's not terrible
lizmat in ChangeLog
?
[Coke] ah, need to put the "not all changes" line back into the release ann.
timotimo that sounds sensible, lizmat
11:53 kaare_ joined
lizmat timotimo: actually, thinking about it, Set.Hash already separated from Set 11:53
it just created a has with stringified objects as its keys 11:54
*that* was fixed, and that was already in the changelog
*hash
timotimo you know better than me
pmurias [Coke]: I'm working on implementing nqp::capturenamedshash on the jvm to unbreak the test
lizmat yeah
dalek kudo/nom: 280a487 | coke++ | docs/announce/2016.02.md:
bring back text about changelog
11:55
pmurias [Coke]: it seems like having travis warn when the nqp-jvm test suit is broken would be great 11:58
11:59 _mg_ left 12:00 WizJin joined
[Coke] aye 12:02
12:05 TEttinger left 12:07 CIAvash left 12:09 vendethiel left, _mg_ joined, vendethiel joined 12:13 mr-foobar left
timotimo so we'll remove it from the "allowed to fail" parts? 12:14
pmurias jnthn: nqp::capturenamedshash is supposed to return only those named parameters that would end up in the slurpy nameds? 12:21
timotimo pmurias: it looks like its first argument is a capture and it returns the nameds part of it 12:22
no, not a capture 12:23
MVMCallCapture is the underlying REPR, not like a perl6-level capture
jnthn pmurias: All named args, captures don't know about slurpies and stuff, that's a signature side thing 12:24
12:24 ely-se left 12:25 ely-se joined
pmurias jnthn: that should be 2 oks? paste.scsys.co.uk/506031 12:29
12:30 zpmorgag joined
jnthn pmurias: Hm, interesting 12:31
12:31 vendethiel left, vendethiel joined
jnthn I think it's not typically used in conjunction with a signature 12:31
Probably it should say ok for both of those, though
But clearly we don't depend on it doing so anywhere :) 12:32
pmurias hates backend differences 12:34
12:35 luiz_lha left
brrt my first real perl6 program :-) github.com/bdw/lab/blob/master/per...-table.pl6 12:38
12:38 sufrostico joined, abraxxa1 is now known as abraxxa
timotimo for $csv-filename.lines -> $line { @rows.push($line.split(',')); } # somewhere in the distance you hear Tux cry out in pain and suddenly be silenced 12:38
DrForr Careful, more of those and people might think this is production ready. 12:39
brrt hahaha timotimo
i'll tell you the real problem.... i install rakudo and nqp and stuff from source, right?
|Tux| shuts up
brrt means i don't get panda
timotimo um, what? :)
that does not mean you don't get panda 12:40
that'd be silly
brrt well, i would have to figure out where panda is, how to install it, yadayadaya; and, lazy as i am, i haven't figured all those steps
suggestion, we could make install-panda target in rakudo? 12:41
timotimo git clone [email@hidden.address] cd panda; ./bootstrap.pl
there you go
brrt fair point
i am being unreasonably lazy 12:42
12:43 sufrostico left 12:44 sufrostico joined
pmurias manually installing panda is annoying. it's the biggest reason to use rakudobrew 12:47
timotimo i did not know that 12:48
DrForr rakudobrew on my linode is having an issue. 12:51
12:51 kolikov joined
timotimo running out of ram perhaps? 12:51
kolikov Hi perl6 !
timotimo ohai kolikov
12:52 domidumont joined
DrForr Don't remember what the issue was. 12:52
masak hi kolikov 12:53
12:53 vendethiel left
brrt pmurias, but i have good reasons not to use rakudbrew, chief among which, i hack moarvm :-) 12:53
12:54 RabidGravy joined
brrt is now installing Text::CSV 12:54
DrForr Hrm, can't find moar-nom/nom in git.
brrt moar is on master?
timotimo yeah, moar doesn't have nom 12:55
kolikov I have a question : I installed panda twice using rakudobrew (on linux), I now have 2 pandas : one (old from december) in /opt/rakudobrew/bin/panda and one in /opt/rakudobrew/moar-nom/install/share/perl6/site/bin/panda (new from febuary), can I safely delete the old one ?
DrForr Sigh. time to RTFM but I was hoping that 'rakudobrew build moar' worked out of the box. 12:56
dalek p: a838545 | (Pawel Murias)++ | t/nqp/76-capture.t:
Stop brokenly testing for something we don't support across all backends.
p: 6327fc9 | (Pawel Murias)++ | / (3 files):
Implement nqp::capturenamedhash on the JVM.

Test for accessing native nums and strs using it.
12:59 vendethiel joined
DrForr rakudo.org needs to rename 'How to get Rakudo Perl 6' to 'Download' :) 13:01
nine pmurias: what's so annoying about installing panda? It's just git clone [email@hidden.address] && cd panda && perl6 bootstrap.pl 13:02
DrForr Inasmuch as it took *me* a minute or two of staring at the page looking for the 'Download' link. 13:03
brrt kolikov: yes, sure you can 13:09
nine kolikov: I'm no rakudobrew user but I'd still say yes, you can. Old versions left over by rakudobrew regularily cause problems. And worst case your panda won't work anymore and you'll have to install it again. You'd just lose a bit of time. 13:10
13:10 luiz_lha joined
brrt DrForr: well volunteered :-P 13:10
in seriousness, i very much agree
13:10 luiz_lha is now known as Guest39525
brrt we need lazy-people-installers 13:10
timotimo DrForr: i think you have to "rakudobrew self-upgrade" or what's it called
DrForr timotimo: I didn't have the correct repo installed. 13:11
brrt of the type curl get.rakudo.org/ | bash
kent\n "Download / Source", that way you can put either of those things there and people will find it.
brrt https maybe
well, i can also accept, curl get.rakudo.org/ | perl
DrForr brrt: I'm not even talking about that. I'm talking about "It took me 20 seconds or so to find the download link under a different name." 13:12
brrt i'm running too far ahead :-)
but yeah
13:12 Guest39525 is now known as luiz_lha
DrForr I agree about the 'curl...' thing as well, but baby steps :) 13:12
brrt nods 13:13
13:13 bhm joined
kolikov Thanks ! 13:13
brrt on the other hand, sooner the better
timotimo DrForr: but rakudobrew is supposed to install repos for you 13:14
13:14 average left
DrForr timotimo: Yes, and it has, but I had the wrong version installed initially. 13:14
13:15 bhm left 13:16 bhm joined 13:17 bhm left 13:18 bhm joined
timotimo huh 13:19
still not sure how your configuration looked, but i guess you made it work now :)
13:19 dbrock joined
DrForr Naah, just nuked the .rakudobrew directory and recloned. 13:20
But my point about 'Download' still stands :) Is there a repo I can make the change in? 13:21
13:22 dbrock left
[Coke] hoelzro: so, if your perl6 docker image relies on unix-A, and my stack tends to prefer unix-B, am I probably better off writing my own docker container with a different FROM? 13:23
El_Che [Coke]: you too working on a perl6 docker? :) 13:25
[Coke] There already is one.
El_Che [Coke]: I know
I was working to include apps 13:26
< on something
dalek kudo/nom: 7d8d67e | lizmat++ | docs/ChangeLog:
Punctuation fix
[Coke] ah. Not particularly, no; our work environment is being converted from standalone web apps into docker images; Wondering what the best practice is if I want to introduce P6 in that mix.
El_Che so far, I compile rakudo, add panda and my application and set some default user that will run the application an a default entrypoint with gosu 13:27
seems to works fine, but I want to get rid of the rakudo compiling step
looking at options on how to create a basic package automatically 13:28
that would make every dependant image a lot less verbose (and it will not takes ages to build)
I had a look at the opensuse build ecosystem, but oh boy that was overkill 13:29
brrt wonders, in seriousness, if 'dependant' is british english spelling
i only know 'dependent' 13:30
[Coke] thinks so
El_Che you should see my monocle in combination, with my stiff lip
brrt El_Che: what about building an rpm/deb (if necessary, in one docker container), and installing it in the other
El_Che brrt: yes, that's the idea
brrt i think that is something of a standard practice nowadays 13:31
El_Che so far the effort was to get a perl6 dockerized on a more of less standard way
13:31 Ven joined
Ven .u 🤔 13:31
yoleaux U+FFFC OBJECT REPLACEMENT CHARACTER [So] ()
brrt .u sun 13:32
yoleaux U+0E82 LAO LETTER KHO SUNG [Lo] (ຂ)
U+0E96 LAO LETTER THO SUNG [Lo] (ຖ)
U+0E9C LAO LETTER PHO SUNG [Lo] (ຜ)
brrt .u star
yoleaux U+0001 START OF HEADING [Cc] (␁)
U+0002 START OF TEXT [Cc] (␂)
U+0086 START OF SELECTED AREA [Cc] (<control>)
13:33 kid51 joined 13:36 ChoHag joined 13:42 Ven left
hoelzro [Coke]: yes 13:47
13:51 Psyche^_ joined 13:55 Psyche^ left 13:58 WizJin left 14:06 autarch joined 14:16 kid51 left
dalek Iish/oracle: 983e4b1 | (Salvador Ortiz)++ | .gitignore:
Update .gitignore
14:18
DBIish/oracle: abf4dde | (Salvador Ortiz)++ | lib/DB (2 files):
DBIish/oracle: Fix dinamic drivers loading
14:18 dalek left 14:19 dalek joined, ChanServ sets mode: +v dalek
Woodi damn, linuxmint.com down... I just few days ago started thinking: it's takes *two* distros to make working desktop in Debian... and now it's hacked... 14:21
[Coke] hoelzro: seems like a downside of docker.
Woodi www.banyanops.com/blog/analyzing-docker-hub/ ;) 14:22
hoelzro [Coke]: a bit yes; through wizardry, you *may* be able to convince docker to use a different layer for the base FS layer, but that's going to be low in the internals
moritz fwiw I'm considering using docker for testing rakudo 14:25
I want to have a multi-stage test, and need to move a built rakudo between the stages
and since rakudo always wants to know its absolute installation path (and that's not relocatable), simply copying the install/ dir doesn't seem feasible 14:26
hoelzro moritz: so you want to have varying base images below the rakudo installation directory?
moritz hoelzro: I don't understand your question 14:27
my docker fu is rather weak :(
hoelzro moritz: I'm asking if you need multiple docker images, each based on a different distro, for example 14:28
moritz the idea is that each commit to rakudo/rakudo triggers the creation of a docker image
no, not at first
just one base image
and build and install rakudo there
and then, next stage: run "make spectest", once against the "master" branch of roast, and once against the 6.c-errata branch
14:29 vendethiel left
moritz and if both succeed, bootstrap a panda (or maybe straight R*) inside the container 14:29
does that sound vaguely sane and workable?
hoelzro I think I understand - is this just for smoke testing against master and 6.c-errata, or is it also for having a nightly passing docker image? 14:30
Woodi mid-dayly to :) 14:32
moritz hoelzro: smoke testing mostly; but if there's interest, I might publish them too
hoelzro ah, ok
is this something you need docker for? it seems like you could do this with Travis
moritz I want to fast-forward a branch to the last successful commit that passed all my tests 14:33
can travis do that?
and does travis allow full spectest runs?
Woodi moritz: I don't understand "need to move" part (which requires docker)...
14:33 dh7320 left
hoelzro if we can get full spectest runs to finish in < 20 minutes, travis can totally do that =) 14:34
moritz hoelzro: on how many cores? :-)
hoelzro the 20 minute (iirc) limit is imposed on the free tier
moritz: no idea, but probably just one =/
you could use the travis API to query builds and see which commits are and are not passing the build
s/build$/spectest/
we could also set up another smoker like Jenkins or Hudson; I don't have any experience with those, though 14:35
moritz Woodi: well, if you compile rakudo with --prefix=/foo/bar, you can tar up /foo/bar, but you have to untar it to the exact same location to be able to run it again
[Coke] rakudo.org/downloads/rakudo/ - 2016.02
moritz Woodi: and that's not how such tools work; they create a new temporary directory for each run
[Coke] please give it a shot before I push the rakudo tag. 14:36
moritz [Coke]++
flussence fwiw, spectest takes just over 21 minutes of cpu time on my desktop, so it'll be a tight fit if it works at all
Woodi moritz: chroot inside temp dir can't help ?
moritz though I supposed I could just build to /tmp/rakudo-$version-$randomgarbage and unpack it there again, and forfeit the tool's ability clean up
Woodi: chroot needs root :( 14:37
though docker might too
geekosaur and a fair amount of setup
moritz flussence: it needs a build and two spectest runs for what I have in mind
hoelzro if we want to use travis for a full spectest, we'll need to go for a paid account, set up our own instance, or seek an alternative CI
dalek osystem: 8beed42 | lizmat++ | META.list:
Add PackUnpack (P5's pack/unpack)
timotimo lizmat++ # PackUnpack
hoelzro iirc, the time limit only applies on a per-job basis, not a per-build basis 14:38
lizmat still very much a WIP, and no tests yet, but release soon, release often and all that jazz
hoelzro so if you have a multi-job test matrix (in this case, one for master, one for 6.c-errata), I think that we'd get a 20 minute limit for each job
Woodi right... debian have fakeroot which "fakes" root :)
14:38 vendethiel joined
Woodi used for building packages 14:39
14:39 cdg joined, d4l3k_ joined 14:40 dalek left 14:41 d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek 14:42 masak left
brrt yay, pack/unpack implementation! 14:42
lizmat++
fwiw, lizmat, why use MONKEY-TYPING
DrForr Great, so I can work on another module...
lizmat brrt: ah, not needed now, but later when augmenting classes to get the method versions in 14:43
14:43 masak joined, masak is now known as Guest1226
brrt aha, ok :-) 14:43
jnthn lizmat: Consider if they're really needed, given that MONKEY-TYPING is precomp-hostile 14:44
(e.g. you can't load two precomp'd modules that both monkey-patch the same type together, so generally modules that do it need to be marked as `no precompilation`)
14:44 kurahaupo joined
lizmat jnthn: ah, then I guess I'll leave the monkey patching up to the users :-) 14:45
since it is a P5 emulation, having only the sub versions should be fine, I guess
jnthn :) 14:46
[Coke] jnthn: should MONKEY-TYPING imply no precomp?
seems like something users will forget and then get shot by
jnthn [Coke]: Very possible, yes 14:47
*possibly
timotimo we don't merge that stuff properly at all, eh? probably can't.
jnthn timotimo: I don't think we sensibly can
14:47 dh7320 joined
jnthn It'll provide some pressure to put any monkey patches close to the application level rather than deep in the dependency chain. 14:48
14:49 synopsebot6 left, synopsebot6 joined, xinming left, xinming_ joined 14:50 zpmorgag left 14:51 Guest1226 is now known as masak_grrr, ocbtec is now known as ocbtec_AFK 14:54 skids joined
[Coke] reads this as monkey patching being our source filters. :) 14:56
14:59 prammer joined
pmurias it would be usefull to have a way to enable a warning when something is not being precompiled 14:59
if MONKEY-TYPING stops precompilation it's seems it will provide some pressure to not use it *EVER* ;) 15:02
(not that's necessarily a bad thing ;) 15:04
15:06 ocbtec_AFK is now known as ocbtec
lizmat perhaps augment blocks should really be stored as source, to be compiled when loading precomp ? 15:10
at the INIT phase ?
El_Che moritz: you can put the rakudo directory in a docker volume or in a volume container
brrt m: my $a = 45; my $b = 8; say $a mod $b; 15:11
camelia rakudo-moar 7d8d67: OUTPUT«5␤»
brrt hmmm
15:13 luiz_lha left 15:14 luiz_lha joined 15:15 luiz_lha is now known as Guest5741
lizmat hmmm... do we have a quick way to check if something is white space in the .unixxx department, I mean ? 15:18
15:20 sjoshi joined
jnthn m: say uniprop ' ' 15:21
camelia rakudo-moar 7d8d67: OUTPUT«Zs␤»
jnthn m: say uniprop "\n"
camelia rakudo-moar 7d8d67: OUTPUT«Cc␤»
lizmat Zs or Cc then ?
jnthn Well, Cc is any control char
Taht's the general category
15:21 cognominal joined
lizmat ah... hmmm.... 15:21
jnthn Hm, lemme check what \s does
brrt omg, perl6 is actually fun 15:23
jnthn m: say uniprop "\n", "White_Space"
camelia rakudo-moar 7d8d67: OUTPUT«1␤»
jnthn m: say uniprop " ", "White_Space"
camelia rakudo-moar 7d8d67: OUTPUT«1␤»
jnthn m: say uniprop "x", "White_Space"
camelia rakudo-moar 7d8d67: OUTPUT«0␤»
[Coke] lizmat: do you need a pushed tag for your p6w or a release announcement?
jnthn lizmat: That's what \s does, modulo an ASCII-space optimization
lizmat [Coke]: release announcement, really
[Coke] er, or just a tarball. 15:24
15:24 vendethiel left
[Coke] guessing... right. 15:24
Alright. no one objects to the tarballs (they never do) I'll send out an announcement shortly.
lizmat [Coke]++ 15:27
brrt .... did you know that 15:30
499 is prime, as is 4,999, as is 49,999, but not 49 or 499,999
DrForr repunit primes :) 15:31
Woodi oo, so easy to get some big, random prime ? 15:32
brrt i had no idea
15:34 rindolf left
jnthn 15:34
dalek kudo/nom: 6b05c84 | coke++ | docs/announce/2016.02.md:
fix grammar-o
15:35
Woodi do gpg still gives choice of _two_ "hi-quality large prime numbers" ? :)
[Coke] 2016.02 compiler release cut
Woodi tada ! :)
lizmat [Coke]++
|Tux| [Coke]++ 15:36
RabidGravy Boom!
[Coke]++
15:36 khw joined 15:37 Skarsnik joined, vendethiel joined 15:38 wamba left
stmuk_ [Coke]++ 15:38
brrt [Coke]++ 15:39
15:39 brrt left
hoelzro [Coke]++ 15:39
[Coke] You're welcome, but I just pulled the trigger. :)
lizmat looks like PackUnpack's pack is 3x as fast as the experimental in P6, and 4x as fast when using the template preprocessing outside of the test loop 15:44
|Tux| "+ Use the order of arguments in usage display, rather than hash order" <- was this what Juerd showed us? 15:45
lizmat |Tux| not sure
Skarsnik It's me that did that I think, for the ?USAGE thingy with main 15:57
15:57 nakiro left
Skarsnik Did I broke something? x) 15:58
15:59 vendethiel left 16:00 mr-foobar joined 16:01 kid51 joined 16:06 vendethiel joined 16:10 raiph joined 16:11 zakharyas left 16:12 CIAvash joined
dalek Iish/oracle: b3bcd38 | RabidGravy++ | lib/DBDish.pm6:
needs to be 'package' to avoid merge fault
16:14
Iish/oracle: 61c27c9 | RabidGravy++ | lib/DBIish.pm6:
Reformat
RabidGravy I'm still getting test failures on that so still can't merge abraxxa's work if someone wants to take a look at some point 16:16
abraxxa sorry, hadn't time to work on it
RabidGravy it's just some of the type comparisons and I still can't work out where they are coming from 16:17
16:18 Actualeyes left
Skarsnik RabidGravy, paste the error or they are visible on travis? 16:21
16:22 noninc joined, ely-se left
RabidGravy travis-ci.org/perl6/DBIish yeah it's there on the 'oracle' branch 16:23
Skarsnik RabidGravy, the ref data are wrongly typed - not ok 30 - selected data matches what was written all the result of fetch_ are expected to be Str
RabidGravy I'm sure someone who is sufficiently motivated could fix it in a few minutes
lizmat [Coke]: are you going to post the 2016.02 announcement somewhere with a URL ?
if so, please s/noq/now/ :-) 16:24
16:24 Actualeyes joined
RabidGravy Skarsnik, I'm not sure, part of abraxxa's change was altering that 16:24
abraxxa imho there is no sense to make an API that only returns Str 16:25
RabidGravy unfortunately I couldn't find a set of commits that I could pick out to merge that passed the tests so it is just languishing there
abraxxa Skarsnik thinks DBIish despite its name and unversioned-ness has to not break its API 16:26
dalek kudo/nom: 5a683a8 | lizmat++ | docs/announce/2016.02.md:
Fix typo in announcement
Skarsnik It's not really me
abraxxa as I need to be typed coming from OCI anyways it would be an additional conversion stop in DBDish::Oracle's code
16:26 pullphinger joined
Skarsnik but the error is that :) 16:27
noninc hello! I was eager trying perl6 so I downloaded "rakudo-star-2016.01-x86 (no JIT).msi", installed and started it. it suggested installing readline or linenoise by panda. So I did. Both crash with the error "C:\rakudo\bin\perl6.bat: line 1: @: command not found" after "==> Testing LibraryCheck". Any help would be greatly appreciated
16:27 vendethiel left
Skarsnik abraxxa, fill an issue so people can talk about it probably 16:27
geekosaur o.O it's feeding a cmd.exe bat file to a posix-like shelll? 16:28
noninc geekosaur: using cmd. no posix like shell that i know of in the process
16:29 adu joined
noninc see also gist.github.com/NonsenseInc/408c39...892fc8e497 16:29
16:29 average joined
geekosaur the error message is not cmd.exe style, but /bin/sh style 16:30
RabidGravy Skarsnik, that PR has been there for ages, it's failing its tests because of this, it could have been discussed but no-one seems to be discussing it
16:30 vendethiel joined
Skarsnik Yes, I actually commented about the issue, but nobody care to answer x) 16:30
RabidGravy alternatively the branch could be changed so that it passes the tests with the status quo and merged 16:31
noninc geekosaur: okay. yet where is the sh(.exe?) is it part of rakudo? I mean I have msys installed but am not using it and it's not part of path
geekosaur I don'tknow, that's part of why the o.O
it's ... odd, to say the least 16:32
ugexe im guessing Shell::Command doesnt work on windows
stmuk_ noninc: which C compiler where you using?
ugexe notice in that gist above that zef gets further
Skarsnik The easy fix is remove all the fetch_ code and just call row and allrows in them x)
ugexe fails testing at Shell::Command
noninc stmuk_: none. downloaded the installer
nemo hm
haven't seen zoffix in ages
what happened to him?
16:32 _mg_ left
Skarsnik .seen ZoffixW 16:33
yoleaux I saw ZoffixW 16 Feb 2016 17:29Z in #perl6: <ZoffixW> Thanks!
stmuk_ noninc: you will need one to build either readline or linenoise unfortunately
MadcapJake .tweet @zoffix
.tw @zoffix
yoleaux Sick AF :( #FML (@zoffix)
MadcapJake nemo, ^^
noninc stmuk_: okay. no problem. have msvc and mingw available. yet, why the error? 16:34
ugexe again, i think Shell::Command does not work on windows
nemo hm
yeah. been a while
ah. that sucks
stmuk_ noninc: I'm not sure .. I think you are more likely to succeed with mingw with linenoise at least 16:35
noninc stmuk_: yah, i found the sh.exe in my git installation. removed it and now it complains "Could not execute (C:\rakudo\bin\perl6.bat t/01-basic.t): open3: exec of C:\rakudo\bin\perl6.bat t/01-basic.t failed at /usr/lib/perl5/5.8.8/TAP/Parser/Iterator/Process.pm line 168 16:37
t/01-basic.t .." I guess it is no ready for windows environment atm. Will try msys
thanks anyway 16:38
Skarsnik hm
ugexe `zef --force install Linenoise` might work for what you want
Skarsnik well the repl does not work?
ugexe if nothing actually uses Shell::Command
noninc it does. just doing what was suggested by perl 16:39
ugexe Shell::Command/panda are why it is failing
16:39 virtualsue joined, kurahaupo left 16:40 kurahaupo joined, kurahaupo left, kurahaupo joined
noninc ugexe: gist.github.com/NonsenseInc/b0eafc...22d5dfac9e 16:40
yah missing the compiler now
will fix
MadcapJake APL Demonstration 1975: www.youtube.com/watch?v=_DTpQ4Kk2wA 16:41
ugexe heh, yeah the --force will blow past any error, including that new `nmake` one
perlpilot wonders how long before we get "Strawberry Perl 6" ... 16:42
yoleaux 21 Feb 2016 18:59Z <MadcapJake> perlpilot: I got another email about GSoC from Mark Keating, they decided to hold off this year and start preparations in the fall to make for a stronger, more-organized effort for the 2017 GSoC
ugexe LibraryMake will also use whatever compiler was used to create the .msi i think, so even if you normally use cmake it will try to use nmake
perlpilot MadcapJake: bummer.
stmuk_ I don't believe linenoise works under MSVC either (at the least the version I tried 2010 when I tried it probably 2/3 months ago)
noninc ugexe: At least I am glad it is not forcing me to use the msys posix shell and mingw compilers. Thanks. Will try to learn zef. 16:43
MadcapJake Anyone know if Perl 6 was inspired by APL?
perlpilot, yeah definitely, they did say we could go ahead and do it on our own, but isn't the application due tomorrow? :P
ugexe noninc: if you have VS2013 you can use the "VS2013 x64 Cross Tools Command Prompt" which should have nmake in its PATH
Hotkeys That's what I used for a while 16:44
perlpilot MadcapJake: Feb 19 1900 UTC was the mentoring org application deadline
MadcapJake haha nice 16:45
i got the go ahead to do it on our own on the 20th xD
ugexe this is the main reason i'm against Build.pm having dependencies on package managers fwiw
Hotkeys I was thinking of doing gsoc next year
noninc success! gist.github.com/NonsenseInc/c04d7d...6795552cea
MadcapJake is considering creating a module that implements APL operators :P 16:46
Hotkeys Lol
noninc ugexe: Now it's only the tests failing but the install seems to succeed
MadcapJake Hotkeys, seriously though a bunch of this stuff is *very* close to how P6 already does it
ugexe noninc: yeah, im hoping for your case the failed test is for functionality that isnt needed for Linenoise 16:47
MadcapJake shaped arrays, meta/hyper operators
Hotkeys Can we do partial views of shaped arrays yet?
16:47 _mg_ joined
noninc ngexe: nope. C:\Program Files (x86)\Microsoft Visual Studio 14.0>perl6 16:48
I ran into a problem while trying to set up Linenoise: Cannot locate symbol 'linenoiseSetCompletionCallback' in native library 'C:\rakudo\share\perl6\site\resources\BB4743C34A9EAD531A66F4387276AE3DB1ED7FFC.dll'
Continuing without tab completions or line editor
You may want to consider using rlwrap for simple line editor functionality
ugexe darn. Shell::Command must be getting used somewhere to copy/move a file... 16:49
noninc was hoping it was a known problem. But at least I'm getting some more verbose errors, a good place to get started learning this stuff 16:50
16:50 Actualeyes left 16:51 Actualeyes joined, domidumont left
ugexe i'll dig around myself as well 16:51
stmuk_ noninc: there are known problems with MSVC and linenoise check IRC logs for more info
noninc that's great! though I'm afraid I'll have to leave for a moment. I'll be back later. Thank you. 16:52
16:52 noninc left 16:53 vendethiel left 16:54 kid51 left 16:56 vendethiel joined, neilb left 16:58 virtualsue left 17:00 neilb joined
dalek Iish/oracle: 4b2c474 | RabidGravy++ | t/lib/Test/DBDish.pm6:
Fix test expected results for the time being
17:02
17:03 wamba joined
Skarsnik RabidGravy, for row typed return is expected x). I should fix that x) 17:04
tadzik hmm, was there ever a conclusion regarding MAIN and the order of named arguments (which only work before positionals)? Is there a good reason for that, or it was just implemented this way and no one got around to fixing it? 17:05
lizmat I recall TimToady saying something that it could be implemented with a preprocessor 17:06
psch the cli arg parser in general is a bit under designed and under implemented
moritz well, it was done for a reason (you can discuss if it's a good one)
Skarsnik oh putting positionnal before named? 17:07
moritz perl6 itself only considers options before the first positional argument
(everything after the program file is considered options to the program, not to perl6)
Skarsnik yes, usage show named before positionnal
RabidGravy Skarsnik, there appears to be two problems with what remains, that it returns a Str for the undefined value always, and the Num rather than Rat when defined 17:09
Skarsnik RabidGravy, the proper fix is to add another reference, because the fetch* return Str, and row/allrows are expected to return typed
tadzik I've got multiple bug reports for panda saying that it sucks, and I don't disagree with them 17:10
especially since it's not really fixable without reimplementing the MAIN parser
(in the general case)
Skarsnik tadzik, oh you mean having to do panda --force install instead of panda install --force?
psch S19 speaks of < ++CMD --command-line-parser ++/CMD > (and has for around 7 years, apparently) 17:11
so there was at least an idea to have that pluggable anyway
El_Che I was under the impression that with the batteries included functionality of perl6, there would be no use for getopt. I was wrong (imho)
RabidGravy Skarsnik, I am only concerned about this because I want to merge abraxxa's Oracle work, at this time I have no further interest in working on DBIish
psch which means the MAIN parser probably needs decoupling and interface design or somesuch... 17:12
well, except if the design is to be changed... :)
hoelzro there's nothing preventing a module from implementing its own MAIN_HELPER than invokes MAIN in the way the author wants
tadzik Skarsnik: among other things, yes :)
Skarsnik RabidGravy, I will do that tomorrow if you prefer
hoelzro it's not spec'd, but IMHO, it really should be
MadcapJake .tell DrForr I'm excited for your release of Prancer, I tried cloning the repo but didn't have any luck getting it working. I'm using Crust now and it's great!
yoleaux MadcapJake: I'll pass your message to DrForr.
psch hoelzro: the S19 bit seems to be useful for exactly that, afaiu 17:13
hoelzro: as in, there's at least a hint that it's specced from how i read it
tadzik (speculated)
hoelzro I'll have to give S19 a look over
tadzik so now we only need some to write a module that implements a likeable MAIN_HELPER :)
RabidGravy Skarsnik, travis-ci appears to have 1 test failure of "unhandled data type 253" for mysql 17:14
Skarsnik duh
17:16 johan left
MadcapJake Skarsnik, tadzik, psch et al: wrt command-line parsing: github.com/rakudo/rakudo/pull/688 17:16
RabidGravy MYSQL_TYPE_VAR_STRING
hoelzro tadzik: indeed =)
17:16 vendethiel left
MadcapJake any thoughts on that? I've tried it and it works for my module P6Dx 17:19
Skarsnik RabidGravy, oh that get changed, unhandled type were to be Str, github.com/perl6/DBIish/blob/oracl...ve.pm6#L35 but it's weird to get a VAR_STRING 17:20
17:20 Actualeyes left, Actualeyes joined
hoelzro my only opinion on subcommands as variants of a multi sub MAIN is how do options that *should* precede the subcommand work? 17:21
for example, --git-dir in Git
17:21 sjoshi left 17:22 Actualeyes left
hoelzro I think that subcommands should be prototyped as a module until the interface is more solid, and the functionality of the module should then be integrated into rakudo itself 17:22
El_Che a succesful perl 6 program is a program that is not by far recognizable as perl 6 by the mandatory switch order
17:22 Skarsnik left
RabidGravy Skarsnik, just chucking it in explicitly to see 17:23
psch i don't have a strong opinion
i mean, arguably any given perl6 program is a subcommand for the interpreter
MadcapJake hoelzro, is there an actual way to hook into the MAIN command line parser?
17:23 Actualeyes joined
psch and for those switches can't be arbitrarily placed 17:23
on the other hand, with a shebang we it doesn't look like that 17:24
tadzik what's the idea with subcommands? Do we need support for them?
panda uses them since the dawn of time
dalek Iish/oracle: 5697bd5 | RabidGravy++ | lib/DBDish/mysql/Native.pm6:
Add the missing MySQL type
hoelzro MadcapJake: yes 17:25
provide your own MAIN_HELPER
gist.github.com/hoelzro/7fd925b4f4617a5c46b5
MadcapJake: ↑
17:26 vendethiel joined
stmuk_ maybe panda should include its own MAIN_HELPER which is used as a protype for specing the 6.d one? 17:28
tadzik it used to have a line that reordered @*ARGS manually, but it sucked and I removed it
hoelzro stmuk_: I think that such functionality would be useful as a standalone module 17:29
but I don't know how lax we are to add another dependency to panda
s/lax/loathe/
stmuk_ hoelzro: true but panda is a special case and probably should have minimal deps 17:30
hoelzro agreed
MadcapJake hoelzro, how does that callframe routine work?
hoelzro MadcapJake: callframe itself, or the MAIN_HELPER I wrote?
MadcapJake well the former but then due to it, also the latter :P 17:31
hoelzro I don't know how callframe works
but MAIN_HELPER is implicitly set up by rakudo
MadcapJake oh, yeah no docs on it 17:32
hoelzro github.com/rakudo/rakudo/blob/nom/...s.nqp#L741
it's not spec'd
but it should be, imo
I think the MAIN processing logic should be overridable by modules
MadcapJake oh it's not? 17:33
what does the MAIN_HELPER do then?
hoelzro github.com/rakudo/rakudo/blob/nom/...re/Main.pm
MAIN_HELPER is the routine that goes through @*ARGS and calls MAIN with the proper arguments 17:34
the fact that you can export a MAIN_HELPER that modifies how MAIN is called is an implementation detail 17:36
not only is it not in the language spec, it's not guaranteed to work in future Rakudos 17:37
jnthn Yes, I'd not rely on that.
I'm not sure that's the interface we want 17:38
17:38 ely-se joined
hoelzro jnthn: how do you think it should be done? 17:38
jnthn helper is a bad name for jsut about everything
hoelzro agreed on that =)
jnthn hoelzro: Not sure...though we probably don't want anything too much more complex
stmuk_ handler? :)
hoelzro MAIN-SETUP? 17:39
CALL-MAIN-MAYBE?
17:40 SCHAAP137 joined
dalek Iish/oracle: 67953e2 | RabidGravy++ | lib/DBDish/mysql/StatementHandle.pm6:
MySQL didn't handle Num
17:43
RabidGravy sorry about the noise with this but I really don't want to install MySQL to test this 17:44
17:47 vendethiel left
Hotkeys I should probably like 17:47
actually write the pluralize module that I made a repo for
17:48 sufrostico left
ilmari RabidGravy: can't you just store the type objects in %mysql-type-conv and then just do $value = $is-null ? $type : $native_row[$i].$type; 17:49
s/\?/??/; s/:/!!/;
RabidGravy ilmari, very probably someone could do that yes, please feel free. 17:50
[Coke] lizmat: I can post it on blogs.perl.org, if that'll help 17:51
lizmat well, I just realised that we never did this before, right ?
ilmari RabidGravy: I don't actually use perl6 (yet) nor mysql (any more), so…
lizmat OTOH, things have changed
ilmari just doing drive-by code review ;-P
lizmat [Coke]: personally, I wouldn't mind seeing compiler release announcements post-christmas at blog.perl.org 17:52
RabidGravy cheers for that but I couldn't care less about mysql so I'm not inclined to install it just to fix something that someone else might be more motivated to do 17:53
17:53 vendethiel joined
ilmari RabidGravy: fair enough 17:53
17:54 _mg_ left 17:58 abraxxa left
lizmat PSA: I'm working on the next Perl 6 Weekly, please let me know if you think that something really should be mentioned this week 17:59
18:01 sufrostico joined
[Coke] lizmat: blogs.perl.org/users/coke/2016/02/r...16-02.html 18:02
lizmat [Coke]++
[Coke] fixing formatting...
El_Che [Coke]: looking forward to put it in a container :)
[Coke] tries to figure out how the hell to edit a post on blogs.perl.org 18:03
lizmat [Coke]: you can't, afaik :-(
DrForr And from me the 3rd article on REs. Don't have a link handy ATM, but give me a minute. 18:04
yoleaux 17:12Z <MadcapJake> DrForr: I'm excited for your release of Prancer, I tried cloning the repo but didn't have any luck getting it working. I'm using Crust now and it's great!
[Coke] Going forward in changelog, can we use .md style bullets?
DrForr theperlfisher.blogspot.ro/2016/02/f...pt_20.html 18:05
[Coke] lizmat: had to click "post" in the menu. 18:06
18:06 musiKk joined
lizmat DrForr: already in :-) 18:06
DrForr .tell MadcapJake Thanks, what problems are you having getting it to work? Likely I don't have Crust listed as a dependency, will fix that in a moment.
yoleaux DrForr: I'll pass your message to MadcapJake.
18:06 sufrostico left
DrForr lizmat: Heh, thanks. 18:06
MadcapJake yeah that and the GET('/') wasn't working, I got it to work with GET() though
yoleaux 18:06Z <DrForr> MadcapJake: Thanks, what problems are you having getting it to work? Likely I don't have Crust listed as a dependency, will fix that in a moment.
18:06 sufrostico joined
DrForr Oh. That counts as an oops on my part, adding to the test suite. 18:07
MadcapJake Also, when I did «multi GET() is handler { slurp('static/index.html') }» it wouldn't set the mime-type correctly
it just would send `text/plain`
18:08 sufrosti1o joined
DrForr Oh. Yeah, that's hardwired ATM. I'm actually going to send that through the StateMachine to set headers properly, which is why it's NIY. 18:09
18:09 raiph left 18:10 raiph joined
DrForr Dependency fixed, will be added when I push. Along with the '/' bug. 18:11
18:11 spider-mario joined
DrForr I don't really have a decent way to test it though, one problem with the trait is that it runs at compile-time, and I've got no easy way to tell the compiler to stop building one app and go on with the next. 18:12
lizmat dinner, will be checking for any other news fit to be printed here after that& 18:14
18:16 vendethiel left 18:18 musiKk left, Actualeyes left 18:19 Actualeyes joined 18:23 kid51 joined 18:24 vendethiel joined
average I would like to see p6 have a good and robust Pg driver and Greenplum driver 18:25
I strongly believe Pg is by far the most intense DB planet earth has seen, and 9.6 is really packing some awesome stuff 18:26
from my point of view, since p6 is emerging and slowly moving into mainstream, this is a good move
Greenplum is one of the most underrated under-the-radar but amazing Pg forks of them all
DrForr Well volunteered, sir! :) 18:27
average haha !
I can only raise some awareness to what will happen in 2016
in 2016 you will hear more about Pg than you will about Hillary and Trump 18:28
DrForr Does DBIish cover Pg yet?
average this will soon take place, just wait till 9.6 rolls out, everyone will go crazy
they'll be like "omfg, omg, Pg Pg" .. that moment is some months from now 18:29
DrForr DBIish already has a Pg driver. What's wrong with what it has now?
18:29 Actualeyes left
average especially the hipsters who come out of the woodwork and get excited all at the same time like some sort of weird hivemind 18:30
18:30 xinming_ left
average DrForr: that's pretty good 18:30
18:30 crux joined
average DrForr: if there's already a driver for it, that's neat 18:30
18:30 xinming joined
average mind you, hipsters have already started to embrace Pg 18:32
DrForr blogs.perl.org II: Electric Boogaloo will run on it.
timotimo i've actually tried to watch Electric Boogaloo, but i didn't get past the initial dance battle 18:33
the first movie was decent, though
18:36 atweiden joined
DrForr I haven't actually watched it, I just use it as my canonical Version II string. 18:38
18:44 dh7320 left
mspo average: our whole industry is driven by that culture 18:47
18:48 gensym joined 18:53 sufrosti1o left, sufrostico left 19:00 AlexDaniel joined
MadcapJake is there a syntax for creating partial functions? 19:00
19:02 firstdayonthejob joined, cdg left 19:04 domidumont joined, saki joined
timotimo what culture, mspo? 19:04
19:04 saki is now known as saaki
mspo timotimo: trends and fads 19:04
timotimo ah 19:05
mspo although pg isn't exactly "new"
timotimo i've been telling people "pg is so much better than mysql" for *years*
even though i never knew if that's exactly true
nowadays i'd just say that mysql was years ahead of the "NoSQL" fad 19:06
[Coke] is sure pg is fine, but he work in an oracle shop, so that doesn't really matter to him.
DrForr MadcapJake: There's the equivalent of curry(), I forget what it's called, maybe partial().
timotimo DrForr: "assuming"
jdv79 has there been a shift in the popularity of mysql and/or pg lately?
mspo pg is more popular now
than it used to be, I mean 19:07
nine As far as databases go, PostgreSQL is the answer.
MadcapJake DrForr, timotimo: thanks 19:08
mspo mysql has poor data integrity 19:09
pg is more complex to use 19:10
RabidGravy I think I first used pg approximately twenty years ago, mysql was almost unusable then 19:11
(arguably still unusable now) 19:12
nine How can it be more complex? It has far fewer surprises and gotchas you need to know and it has a much more user friendly command line client.
timotimo nine: adding users and stuff is, like, so hard!
mspo yeah adding users and stuff :) 19:13
coming from mysql, pg seems to add extra layers of stuff to think about
nine Yeah, it's like: "createuser foo" instead of inserting into some table and debugging what the hell went wrong until you notice that you forgot the flush-privileges 19:14
jdv79 my interest was more stemming from that i hear more pg advocacy these days. 19:15
nine But I guess most mysql users just use the root user, because when you use a "database" that does not even do it's most basic job well, i.e. keeping data, you won't worry about security and users and stuff
RabidGravy :)
Juerd Could you just move your holy war to another channel? :) 19:16
jdv79 is it cause pg seems to have gained usable replication in core or is it that oracle bought mysql or some other factors...?
timotimo i *think* mysql can keep data. you're just not allowed to be bad at putting it in. or modify a table when it already has data in it.
nine timotimo: or have a server crash
mspo I have replicas go out of sync all the time
19:17 firstdayonthejob left
geekosaur pg's been recognized as more reliale than mysql for a long time. what pg had going against it was complexity of setup ad a tendency toward poor query plans 19:17
mspo you can't change the plans either
19:18 buharin joined
nine jdv79: The difference in philosophy is that Pg people usually try to do it right. I.e. first make it work right, then make it fast. MySQL concentrated on fast first. Then came the point when Pg's base was so much more solid that it became a stable, fast and featureful database while MySQL was stuck with bad technical decisions. A couple years later, people started to notice... 19:18
19:19 firstdayonthejob joined
mspo pg has 40 years of history 19:19
probably just takes a long time to start getting things right :)
El_Che is waiting for the good part of the discussion and gets pop corn: Oracle 19:20
[Coke] agrees with Jeurd, we're kind of off topic with the DB disc.
RabidGravy well having had this discussion about a squillion times I'd concur 19:21
mspo DBIsh should support all possible databases with maximum awesomeness on each 19:22
and translate/support ? and $1 !
RabidGravy I do intend to make an odbc driver for DBIish at some point but it's a long way down the TODO list
19:23 virtualsue joined
DrForr And _n :) 19:23
mspo who uses _n ? 19:24
El_Che _nobody?
DrForr I might be thinking of ?n which I've seen somewhere. 19:25
nine I wonder if it would be ok to clean out existing precompilation stores if we detect that it uses an out-dated on-disk format, i.e. having to recompile those modules again for upgrading. 19:26
timotimo as opposed to doing a proper deprecation cycle? 19:27
nine As opposed to be smarter about upgrading the on-disk contents to a new format and having to carry this upgrade code around forever.
But I guess it actually would be ok, since such a change of on-disk format can only occur when upgrading rakudo and then we have to recompile anyway. 19:28
19:28 remmie joined
lizmat nine: I think cleaning out would be an ok approach... 19:29
timotimo ah, right
ugexe i'll throw in my opinion: get rid of it as soon as possible
19:29 virtualsue left
nine So...I don't even have to clean anything, as the new rakudo version will be writing to a new directory (named after the compiler-id) anyway :) And since we keep the old directories, you can even switch back to older rakudo versions and keep the precomped files. 19:31
jdv79 can they just be renamed out of the way? maybe for an upgrade rollback?
i can see an upgrade going badly and then them rolling back and being screwed for a while while precomp happens again. maybe its not worth it though. 19:32
19:32 adu left
gfldex nine: how can the user tell if he can clean up safely? 19:33
nine I wish it was that easy with the installation repository format. But there we really want to carry the installed modules forward to newer rakudo versions
lizmat nine: feels to me the old dirs should be nuked on an upgrade
MadcapJake .u ‹
yoleaux U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK [Pi] (‹)
jdv79 or maybe that should be part of rpm/apt/whatever's jobs
nine lizmat: that assumes that only one version of rakudo accesses those precomp stores which is not necessarily true.
lizmat nine: otoh, if an older version would access it again, wouldn't it recreate them on the fly ? 19:34
MadcapJake .u ›
yoleaux U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK [Pf] (›)
nine lizmat: yes, it would. But you don't want your two rakudo versions to nuke the other's precomp files all the time :) 19:35
lizmat no: but I would like to see a newer one nuke the older
otherwise a lot of files will stay behind... :( 19:36
timotimo that's true, too
a year of perl6 development will net you 12 folders full of module sources and precompiled binaries
nine Nothing's as cheap as storage these days.
nemo maybe he's using an SSD 19:37
nine timotimo: you can share the module sources and resources between all your rakudo versions. Only precomp files are tied to a version. And they are not that large.
timotimo well, not if we have a different folder structure each month :)
gfldex nine: please don't waste other humans time. We may be able to buy GB but we will never be able to buy years.
19:38 virtualsue joined
nine timotimo: why would we have that? 19:38
gfldex: I'm not sure what you're getting at?
lizmat well, I recently cleaned out my spectest dirs from .precomp dirs... that killed ~1500 files
19:38 remmie left
lizmat i run a lot of spectest :-) 19:38
nine lizmat: it's 5157 files here and that's just 36MB of data. 19:40
gfldex every file you leave behind (in a hidden folder) must be found and remove by hand. The user must care for it. That takes time, that could be spend productive. That's the whole point of tormenting the implementor on behalve of the user.
nine gfldex: blindly removing precomp files _will_ waste the user's time when those files were actually still in use.
lizmat nine: depending on the file system, 5157 files could be a drag on performance
nine lizmat: that's also 33 different rakudo versions that were spec tested. Hardly a normal user's profile. 19:41
lizmat true 19:43
nine I'm quite sure we all share this urge to keep our file systems "clean" but the fact is, deleting just one video I'm never gonna watch again anyway will free more space than the precomp files will take during my SSD's life time. 19:45
gfldex nine: you left my question how the user can tell what files can safely be removed unanswered. And the user is a Bob from marketing. Suddenly you got a system administrator who has to clean 50 odd windows VMs. That admin may be me and I _will_ express my feeling clearly.
nine gfldex: why would Bob even want to remove such files?
19:46 kid51 left
gfldex nine: because Bob, Alice and the CEO of the small company in question don't see the need to spend the money on hardware if they can buy something they believe will make them look good in the eyes of their customers. 19:47
nine gfldex: If Bob needs to free some space, he'd be better advised to delete some of those emails with "funny" power points that go around the office. Because those take up much more space.
gfldex you assumtion that storage is cheap falls appart rather quickly if you put it to the test in 90% of real world companies. 19:48
mspo what if I run my app as a user with no home dir? 19:49
timotimo never precompile ever 19:50
ugexe not even once
timotimo 6d96270004515a0486bb7f76196a72b40c55a47f is not normal. but on precompilation, it is. 19:51
gfldex nine: those are all sound arguments that real ppl don't care about. All they see is that their "harddrive is full" and even if they are talked to like a child, all they will get is that this "Perl 6 Thing, whatever that is" is the problem.
hoelzro has memories of family thinking "that Java thing is a virus"
timotimo yes, me, too, hoelzro, 19:52
19:53 yqt joined
nine gfldex: if 100MB of precomp files make user's harddrives full, I'm happy to blame them or their sysadmins, because it would have been full a month later even if we kept precomp dirs squeaky clean. 19:53
[Coke] nine: if a user doesn't want precomp, do they have an option to force no precomp even on libs they 'use' ?
gfldex nine: you still didn't answer my question how the user knows what files can be safely removed. Where did you document that? 19:54
[Coke] I know we can do it for our outer app scope...
define "safely". all precomp files can be safely removed.
19:54 musiKk joined
[Coke] no? 19:54
Wouldn't the worst thing that would happen be that you end up regenerating it?
gfldex that's not the question
nine gfldex: it's always safe to delete .precomp directories 19:55
gfldex "how does the user _know_" is the important part
[Coke] because it's always safe.
gfldex now i feel like talking to a child
psch so Bob from accounting somehow is running enough different Perl 6 apps to generate 100mb of precomp files
[Coke] Yes, so perhaps rephrase your question.
19:56 buharin left, remmie joined
psch that is approximately 18000 files precompiled 19:56
diakopter gfldex: perhaps you mean "find out" by know
psch err, 15500 actually vOv
perlpilot gfldex: Maybe it's in the FAQ? "What are all these .precomp directories? Can I delete them?"
19:56 sufrostico joined, sufrosti1o joined
atweiden i can see glfdex's point, someone may think not too highly of a ~/.perl6 directory being created with sha1sum filenames, and will wonder what that is or want to turn it off 19:56
could a /etc/rakudo.conf disable precomp globally and ~/.rakudo.conf disable precomp on a per-user basis?
timotimo oh, btw, i'd like to advocate making the precomp folders have p6 in their names, so that people won't go "wtf" at them 19:57
[Coke] timotimo: better, "rakudo" ?
perlpilot timotimo: +1 if we're going to make them, we should own them.
[Coke] timotimo: better, rakudo-moar ?
psch i think there's two points, one being that knowledgable users want a way to manage precomp storage and the other that it should be recognizable for laypeople what precomp storage is about and for
timotimo hmm, not 100% sure about that
[Coke] timotimo: it's kind of moot at the moment, but when we start precomping jvm, we might care. 19:58
19:58 darutoko left
atweiden or maybe write precomp to /tmp 19:59
timotimo well, for that we have precomp files being called barbaz.moarvm
RabidGravy shouldn't it be in ~/.cache/perl6 or some such anyway?
or at least be configurable to be there
gfldex on windows, for all that is holy, please put them into %tmp%. The avg. windows admin is anything but knowledgable. 20:00
timotimo i've just noticed ... in the release announcement it says "but no new features", but in the "New in 2016.02" section it says "Additions:"
if you don't know what's up with that, you might be confused %)
stmuk_ 1. make it work 2. make it work fast 3. make it not use any diskspace!
20:01 rindolf joined
stmuk_ we at stage 1 20:01
nine My ~/.cache directory has 1.2 GB. Firefox uses more than half a gig on my machine even though I don't even use it as my browser. Why are we arguing about a couple of megabytes??
DrForr Denial? :)
nine stmuk_++
Btw. my ~/.thumbnails directory takes 220MB and contains files with lovely names like 23d74740d3d515f34172d14dab4a00c7.png 20:05
atweiden i'm wondering, `container = $value.clone` DWIM with array values here: 20:06
class ABC { method add(\container, :$value!) returns Any { add-to-positional(container, :$value); }; sub add-to-positional(\container, :$value!) returns Any { container = $value.clone; |container; }; }; my @container; ABC.add(@container, :value(qw<zero one two>)); say 'Array @container.WHAT: ', @container.WHAT; say 'Array @container: ', @container.perl; say 'Array @container[0]: ', @container[0].perl; say 'Array @container[1]: ', @container[1].pe
rl; say 'Array @container[2]: ', @container[2].perl;
m: class ABC { method add(\container, :$value!) returns Any { add-to-positional(container, :$value); }; sub add-to-positional(\container, :$value!) returns Any { container = $value.clone; |container; }; }; my @container; ABC.add(@container, :value(qw<zero one two>)); say 'Array @container.WHAT: ', @container.WHAT; say 'Array @container: ', @container.perl; say 'Array @container[0]: ', @container[0].perl; 20:07
camelia rakudo-moar 5a683a: OUTPUT«Array @container.WHAT: (Array)␤Array @container: ["zero", "one", "two"]␤Array @container[0]: "zero"␤»
mspo perl6 isn't the same as firefox unless you are the developer
[Coke] (confused) this is why I post these things in advance of sending them out. :)
mspo to a user it is nothing
atweiden but this doesn't (s/\.clone//):
m: class ABC { method add(\container, :$value!) returns Any { add-to-positional(container, :$value); }; sub add-to-positional(\container, :$value!) returns Any { container = $value; |container; }; }; my @container; ABC.add(@container, :value(qw<zero one two>)); say 'Array @container.WHAT: ', @container.WHAT; say 'Array @container: ', @container.perl; say 'Array @container[0]: ', @container[0].perl;
camelia rakudo-moar 5a683a: OUTPUT«Array @container.WHAT: (Array)␤Array @container: [("zero", "one", "two"),]␤Array @container[0]: $("zero", "one", "two")␤»
atweiden i'm not clear on what cloning does. why does cloning seem like the only way to get the DWIM result? 20:08
20:09 dfcarpenterak joined, brrt joined 20:10 kolikov left 20:11 pullphinger left
flussence I sent a pull request back in december to put all the precomp stuff in ~/.cache/perl6 (and do the right thing on win32 too), but it was turned down 20:11
20:11 buharin joined
gfldex nine: the problem is not the size of that folder. It takes exactly the same effort to delete 1.2GB then 12MB. The problem is that somebody has to care about it. In a bad case on 50 VMs. Suddenly some poor soul has to spend the better part of 2 hours to clean up after a software that could have done so by itself. You don't improve productivity by save disk space, you improve productivity by making things run 20:11
smoothly.
nine gfldex: then please also make a suggestion on how exactly the software could clean up automatically. 20:12
20:12 zpmorgag joined
gfldex sadly i do not know the specifics of the implementation to provide such details. If you want me to stop careing please say so and I will not pester you anymore. 20:14
brrt i think the whole idea of automatic background (pre)compilation is kind of objectionable
20:14 dh7320 joined
brrt to some people, damnit cutof 20:14
not to me
i would argue that python does the same and while at first it is annoying to remove __pycache__ and *.pyc and *.pyo and whatnot 20:15
lizmat *drumroll*
p6weekly.wordpress.com/2016/02/22/2016-8-yacr/
brrt at one point one throws these things into .gitignore and forgets about them
lizmat another Perl 6 Weekly hits the net
brrt \o/
anyway, i fully agree with nine that 100 mb diskspace is in the same category of annoying 20:16
but not in any way a real usability failure
diakopter the .Net ngen cache can get into the GB
20:17 domidumont left, kurahaupo left
gfldex "that pile of shit is quite big already. Lets add more!" <-- i don't like that argument 20:17
jnthn lizmat++
brrt ok, gflxdex, please explain why .precomp directories are a usability issue, for you 20:18
20:18 kurahaupo joined
nine gfldex: you don't even have to know the implementation. You just have to be able to answer one question: how can rakudo know that the precomp files created for an older rakudo version will never be used again? 20:18
brrt i'm not sure we can resolve this unless i can understand
20:19 ab6tract joined
brrt (nine; evil locking schemes, obviously) 20:19
20:19 xiaomiao joined 20:20 kurahaupo left, crux left, avar left, peteretep left, DarthGandalf left, esh left, mithaldu_ left, dg left, jnthn left, shadowpaste left, brabo left, leedo left, lucs left, Celelibi left, rafl left, sjohnson left, leedo joined, dpk joined, sm0x joined, diegok joined, diakopter joined, Bucciarati joined, konobi joined, eyck joined, mls joined, cfloare joined, jantore joined, nemo joined, brabo joined 20:21 jferrero joined, lucs joined, sjohnson joined, jnthn joined, keix joined, rhr joined, alnewkirk joined, erdic joined, kurahaupo joined, kurahaupo left, mls left, mls joined, tharkun joined, decent joined, konobi is now known as Guest6368, inokenty joined, kurahaupo joined, nemo is now known as Guest47022, DarthGandalf joined, rafl joined, kurahaupo left, shadowpaste joined, jervo joined, kurahaupo joined, esh joined, huf joined 20:22 ribasushi joined, Celelibi joined, dg joined
gfldex nine: it can't and their can the avg. user. However, precomp files are created on demand so removing them does no lasting harm. Unless two rakudo versions start to play ping pong, removing each others .precomp whenever a script is run. 20:23
how are two different versions of rakudo handled anyway?
20:23 kurahaupo left
gfldex s/their/neither/ 20:23
20:23 kurahaupo joined, kurahaupo left 20:24 kurahaupo joined
nine gfldex: so if you're fine with wasting the user's time waiting for precompilation to finish, what exactly is so hard about having a cron job deleting the precomp directories now and then? 20:24
rudi_s Is there a function like grep but which also returns the non-matching entries (i.e. two lists are returned)?
20:24 dfcarpenterak left 20:25 peteretep joined
perlpilot rudi_s: classify could be used for that 20:25
gfldex nine: are you going around, adding those cronjobs on your users machines. And how do I do a cronjob on windows?
psch m: my ($even, $odd) = ^5 .classify: { $_ %% 2 }; say $even # perlpilot++
camelia rakudo-moar 5a683a: OUTPUT«True => [0 2 4]␤»
brrt you use a wizard
20:25 avar joined, avar left, avar joined, avarab joined, avarab left, avarab joined, wtw joined, literal joined, avarab left, avar left, crux joined, avar joined, avar left, avar joined
[Coke] let me back up a step here. gfldex - are you suggesting we don't do precomp at all? 20:26
Or that we continue to do it, but in some other fashion.
gfldex i do not. precomp is a massive improvement on startup time. Unless that changes it's pretty much a requirement to have it.
lizmat fwiw, I think it would be bad practice if you would need an external cron job cleaning up after rakudo spreading precomp files everywhere 20:27
even *if* they only take a little bit of disk space
20:27 john51_ left
ab6tract lizmat: thanks for the p6weekly. a ton of great links this week! 20:27
20:27 mithaldu_ joined
rudi_s perlpilot: psch: Thanks. But I'd have to still extract it out of the hash. 20:28
perlpilot indeed. lizmat++
gfldex walking 2TB of files on NTFS (small company of 20is ppl) will take 30-60 minutes
20:28 john51 joined
pyrimidine lizmat++ # p6weekly 20:28
gfldex (that's 1.5M files)
brrt lizmat: i have to cleanup after python every so often, too
gfldex brrt: should you? do you enjoy it?
lizmat brrt: that's the wrong agument :-)
RabidGravy as a matter of related interest, how can one get the compiler version that you get from "perl -v", $*PERL.compiler.version mangles it as a version 20:29
lizmat *argument
ab6tract just finished reading 'Intro to Sixy Perl'. it says many things i've wanted said :)
not sure who Finanalyst is though?
brrt gfldex: i accept it, is what imean
lizmat ab6tract: I'm just the messenger, no idea
rudi_s I guess I'll stick with classify and then assign the two lists manually. Not perfect but works. Thanks.
psch rudi_s: well, you can do that with a .values in the assignment to the two vars for example 20:30
m: my ($even, $odd) = (^5 .classify: { $_ %% 2 }).values; say $even #
camelia rakudo-moar 5a683a: OUTPUT«[0 2 4]␤»
rudi_s psch: Thought about that too but the order of .values is not guaranteed, is it?
[Coke] does intro to sixy perl live anywhere other than pastebin?
psch oh, right
ab6tract lizmat: the question was intended as a wideband enquiry :)
rudi_s m: sort (True, False)
camelia ( no output )
rudi_s m: say sort (True, False) 20:31
camelia rakudo-moar 5a683a: OUTPUT«(False True)␤»
lizmat [Coke]: again, I didn't find it, but then I didn't look for it very well
rudi_s I guess I could sort it first.
But feels a little ugly.
ab6tract while i have your attention though, i was curious if you had encountered this behavior on os x: rt.perl.org/Public/Bug/Display.html?id=127587
perlpilot rudi_s: you could just pull out the True/False values explicitly (no sorting) 20:32
20:32 Tld joined, Tld left, Guest6368 is now known as konobi_ 20:33 kurahaupo left
RabidGravy m: say sprintf("%s-%s-%s-%s%s%s", $*PERL.compiler.version.parts) 20:33
camelia rakudo-moar 5a683a: OUTPUT«Your printf-style directives specify 6 arguments, but 9 arguments were supplied␤␤»
20:33 kurahaupo joined
RabidGravy say $*PERL.compiler.version.parts 20:33
m: say $*PERL.compiler.version.parts
camelia rakudo-moar 5a683a: OUTPUT«[2016 2 3 g 5 a 683 a 8]␤»
rudi_s perlpilot: Yeah. Still I'd like something like Haskel's partition in core perl6.
psch m: my ($even, $odd); my @a = ^6; $odd = @a (-) ($even = @a.grep: * %% 2); say $odd
camelia rakudo-moar 5a683a: OUTPUT«set(5, 3, 1)␤»
psch m: my ($even, $odd); my @a = ^6; $odd = @a (-) ($even = @a.grep: * %% 2); say $odd, $even 20:34
camelia rakudo-moar 5a683a: OUTPUT«This Seq has already been iterated, and its values consumed␤(you might solve this by adding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤ in block <unit> at /tmp/MzlH2rDY3j line 1␤␤»
ab6tract hmmm.. now that i think about it that use of an anonymous state variable in my react block is probably a race condition..
psch ah shucks
[Coke] ab6tract: why "echo" and not "/bin/echo" ?
20:34 labster joined
ab6tract shouldn't matter with a periodic supply though 20:34
lizmat ab6tract: feels to me you're mixing stuff the wrong way: feels like you could use a react inside the whenever? 20:35
perlpilot rudi_s: sounds like a good idea to me.
brrt lizmat: you can watch the perl6 mp4s with vlc
psch well, that makes a set, and it doesn't look that great either
rudi_s perlpilot: Where are changes to the language spec discussed?
nine gfldex: I really don't get why wasting user's time playing with ping pong games would be ok, while wasting a hypothetical 100 MB of disk space would be an issue that _has_ to be dealt with.
[Coke] rudi_s: here.
perlpilot rudi_s: Right here. :)
[Coke] or on the language list. Or via a pull request. 20:36
brrt ah, no, you can't
they're broken halfway
ab6tract .seen finanalyst
yoleaux I saw finanalyst 18 Jan 2016 08:49Z in #perl6: <finanalyst> Fair comment
20:36 sufrosti1o left, sufrostico left
rudi_s Well, then ;-) - what is process on getting this into perl? 20:37
perlpilot rudi_s: I seem to recall that Damian even had an implementation in out of the Exegeses separating wheat from chaff or sheep from goats or something. Clearly it's a useful special case of classify.
s/out/one/
weird brain-o that
20:37 molaf_ left
gfldex i'm trying to see the whole thing from the perspective of a sysadmin who joins that not so small company, that got a tradition of years of system administration neglect. If you want Perl 6 to grow you will need to support of those small companies, because they are the vast majority. Any problem that "This Perl 6 thing" is causing is a reason for a small company boss to "make a dicision" (read: a guess). You 20:37
ab6tract .tell finanalyst your 'Intro to Sixy Perl' pastebin is awesome! you should consider publishing it somewhere more permanent!
gfldex may want to care about them too, because adoption of Perl 6 may very well be the source of your grant.
yoleaux ab6tract: I'll pass your message to finanalyst.
ab6tract lizmat: what do you mean? that code runs fine on linux 20:38
lizmat ah, ok, I guess I missed it being an OS X only issue
[Coke] ab6tract: not all in one file, it doesn't.
20:39 dfcarpenterak joined
[Coke] (you could have 2 mains if you did a multi, and had MAIN("qq"), etc. 20:39
perlpilot rudi_s: fork rakudo, implement it, make a PR, talk about it here, etc. There's not really a formal process as such.
ab6tract there's only a handful of jnthn++'s code and slides to go on for this stuff.. this is all based on his post series
[Coke]: why would you think two code snippets with MAIN were intended for the same file? 20:40
rudi_s perlpilot: I thought perl6 is mostly defined through the language spec, that's why I thought before it should be implemented it must be somehow added to specs.
ab6tract :)
nine gfldex: and this hypothetical boss would be fine with 2 minutes startup time of an essential web service because rakudo again deleted precomp files that would still be used? In a world where I can get 25 GB of webspace for € 4.64 per month?
[Coke] ab6tract: why would you not attach them as 2 files?
perlpilot rudi_s: That happens the other way around. You implement something to prove that it should be part of the specs
[Coke] rudi_s: the spec is roast, not the synopses.
ab6tract (and i thought i had made it as easy as possible!)
[Coke] nine: no, he said we have to -do- precomp. 20:41
ab6tract btw, there is massive chat lag happening right now. i'm only getting conversation updates in bursts :(
[Coke] I'm still trying to suss out the exact nature of the complaint (only keep as much precomp as needed, maybe? store it in a specific location maybe/)
perlpilot [Coke]: it sounds to me like less of a "complaint" and more of "keep this in mind!" 20:42
RabidGravy I think it comes down to "this perl6 thing appears to have made a bunch of files, which ones can I delete?"
nine [Coke] he also said that we cannot reliably detect whether we can delete those precomp files, thereby implying that if we do, we may actually delete files that would still be used.
ab6tract [Coke]: i didn't know that RT could do attachments that way! excellent 20:43
RabidGravy I've actually thought of making a script that loads *all* the modules to force a precomp after a rebuild 20:44
nine And like I said an hour ago: I'd _like_ us to leave the file system clean. It's just that without someone coming up with an idea on how to actually pull that off, we simply can't. And I won't start implementing guessing games and take the blame for when it guesses wrongly.
[Coke] RabidGravy: I do the vague equivalent of that with some of my web apps, sure. Deploy, then force myself to pay the precomp hit before the users do. 20:45
flussence
.oO( if only we were still allowed to manually compile files )
20:46
[Coke] nine: yup, seems reasonable to me.
gfldex nine: would it be possible to provide a cmd line switch and a ENV var to tell rakudo where to put those files? (/var/cache comes to mind) 20:48
rudi_s perlpilot: [Coke]: Thanks. Will look into implementing it. - From a first look at the code it doesn't look trivial to me as I don't understand the abstractions around classify in Any. 20:49
20:49 colomon_ joined
perlpilot rudi_s: AS a first approximation, you can do this ... 20:49
my ($even, $odd) = (^5 .classify: { $_ %% 2 }).{True,False}; say $even; say $odd;
oops 20:50
m: my ($even, $odd) = (^5 .classify: { $_ %% 2 }).{True,False}; say $even; say $odd;
camelia rakudo-moar 5a683a: OUTPUT«[0 2 4]␤[1 3]␤»
perlpilot wrap that in a routine.
gfldex lizmat: vlc 2.2.2 does play the videos (sort of)
20:50 dfcarpenterak left, colomon left, colomon_ is now known as colomon
lizmat gfldex: describe "sort of" ? 20:51
nine gfldex: we already have! perl6 -I/var/cache or PERL6LIB=/var/cache perl6
rudi_s perlpilot: Ah, nice. Thank you. 20:52
nine flussence: the whole module infrastructure is qute flexible and every part of it can be replaced. If you want to implement a manual precomp scheme on top of the current architecture, you should be able to do that quite easily.
flussence: do you remember the rationale for refusing your pull request back then? 20:53
flussence IIRC it was something like "this is the wrong way to do this", and the right way never came. *shrug* 20:54
pmurias re having a global /etc/rakudo.conf to disable preconf, what would the point of that be?
20:55 sufrostico joined, sufrosti1o joined
ab6tract nine: doesn't feel a bit like overloading PERL6LIB? 20:55
gfldex lizmat: the video takes 1/4 of the player window (not scaled up while encoding) and the audio a quite low and spotty at times.
ab6tract nine: i would want the env var for the precomp _destination_
flussence github.com/rakudo/rakudo/pull/611 -- oh here, it got fixed a different way and then the useful part got lost in the noise 20:56
lizmat gfldex: I'm hoping the ShadowCat videos will come out better
nine flussence: seems like you closed that pull request yourself
ab6tract i guess you can mix and match, eh?
flussence nine: yes, and I said there it was the wrong fix :)
20:56 FROGGS left
rudi_s perlpilot: Can I somehow use that to put the result directly in an array my (@a, @b) = ... doesn't work and puts everything into @a. But $a.join looks a little unexpected to me. 20:57
ab6tract PERL6LIB=./readable-sources:./precomps ?
perlpilot ab6tract: putting the precomp files in some specific location is only useful if rakudo can find them :)
ab6tract but i'll digress, as i imagine you've had many forms of this conversation already 20:58
perlpilot rudi_s: my (@even,@odd) := ... # probably
rudi_s perlpilot: Perfect. Thank you. 20:59
ab6tract perlpilot: naturally :) i guess i just blanched at the idea of PERL6LIB pointing to some directory containing nothing human readable in it 21:00
but it mkaes sense
*makes
21:01 ab6tract left
pmurias nine: wasting a few mb now an then likely won't be a problem. Avoiding having system admins needlessly involved or having somone wage war on .precomp dirs is something we should aim for 21:06
brrt what if we did store it in ~/.rakudo 21:08
or even ~/.local/rakudo/precomp
pmurias nine: having a cron job remove .precomp directories would be ultra horrible
brrt why should that not work....
21:09 snarkyboojum joined
dalek kudo/nom: 620f4e6 | lizmat++ | src/core/ (2 files):
Implement Buf.pop

Wish I had noticed it being missing before. I guess the only thing still missing now, is Buf.splice.
21:09
21:11 kurahaupo left
flussence brrt: we need two things - a $*SPEC.cachedir method, and precomp needs to use it. 21:12
21:13 snarkyboojum left 21:15 Ven joined 21:19 Ven left 21:21 ely-se left, _dolmen_ joined 21:22 kaare_ left 21:25 musiKk left 21:29 autarch1 joined 21:30 cdg joined 21:31 dh7320 left 21:33 autarch left, sortiz joined
sortiz \o #perl6 21:34
21:35 CIAvash left, sno left
pmurias o/ 21:35
21:37 autarch1 left, sufrostico left, sufrosti1o left
nine pmurias: having a cronjob for cleanup may sound horrible. I find creating precomp files on installation and then never using them much worse yet that problem doesn't draw nearly as much brain power. 21:37
sortiz [Coke]++ lizmat++ moritz++ # 2016-02 21:38
21:38 sufrostico joined 21:39 sufrosti1o joined 21:45 mr-foobar left, brrt left
jnthn nine: That problem actually needs brainpower. :) 21:45
I don't think the "remove precomp files unused due to uninstalling an older Rakudo version" is a problem for Rakudo itself to solve. It's more one for the MSI uninstaller on Windows to take care of. 21:46
And whatever the equivalent mechanism is on other platforms.
21:47 mr-foobar joined 21:48 ely-se joined
nine jnthn: thanks for putting the compiler id in the precomp store paths. It's very nice being able to freely change the on-disk format as much as I want :) 21:49
jnthn :-)
If you don't have time to make a good design, make an easy-to-make-right-later design. :)
(That was largely my approach for the installation/precomp gist :)) 21:50
nine I've finally started tackling the "use those installed precomp files" problem. Worst thing that can happen is that we find out what the really hard part will be...
21:50 labster left
jnthn *nod* 21:51
Sounds good.
nine Current plan is to store not only the precomp ids of a precomp files transitive dependencies, but also the dependency specifications used to find them and $*REPO.id at the time of dependency resolution. 21:52
When $*REPO.id is still the same, we can use the precomp ids directly to load the dependencies. Otherwise we have to run dependency resolution again and check if we arrive at the same precomp ids. If not we have to recompile. 21:53
$*REPO.id changes when adding/removing repos from the repo-chain and when installing a module to one of the chain's repositories. 21:54
I think the hardest part will actually be storing the dependency specification. For that we need to figure out the usefull and serializable subset of what's currently allowed. So no code blocks and maybe not even regexes. 21:55
21:56 autarch joined, sufrosti1o left 21:57 sufrostico left, skids left 21:58 buharin left, sufrostico joined 21:59 zpmorgag left, sufrosti1o joined
dalek c: 531e97f | (Simon Ruderich)++ | doc/Type/List.pod:
List: add example to classify to split a list based on condition
22:00
22:01 Ven joined
rudi_s perlpilot: Thanks for the classify example, I've added it to the documentation: github.com/perl6/doc/commit/531e97...8ed1df5d72 22:01
22:02 raiph left 22:04 Ven left
nine m: say CompUnit::DependencySpecification.new(:short-name<Inline::Perl5>, :version-matcher(v0.2..*), :auth-matcher(/nine/)).perl 22:05
camelia rakudo-moar 620f4e: OUTPUT«CompUnit::DependencySpecification.new(short-name => "Inline::Perl5", from => "Perl6", version-matcher => Version.new('0.2')..Inf, auth-matcher => /nine/, api-matcher => Bool::True)␤»
22:07 tmch left 22:09 labster joined 22:15 rindolf left 22:21 labster left 22:22 ely-se left
rudi_s I'm writing a class which uses NativeCall to call into a C lib. In my constructor I allocate data using the C API and now I have to deallocate it when the object is destroyed. Is adding a method DESTORY() { c_api_free($!data) } enough to properly free the data when the object is garbage collected? 22:24
moritz yes
22:24 average left 22:25 raiph joined
rudi_s moritz: Perfect, thanks. - I see that it's not yet documented in NativeCall at doc.perl6.org. Should I add it as example to "Basic use of Pointers"? 22:27
pmurias nine: re cronjob, wasting a bit of space isn't a big problem to me for now. using the installed precomp files would help solve the problem much better then doing a cleanup on version update 22:29
22:30 remmie left
rudi_s Hm. This isn't trivial. The example would need a check to prevent double frees. 22:30
22:30 ocbtec left
sortiz rudi_s, In practice can be better to add a method, let say "close", that free the memory and set $!data = Nil; and in DESTROY only call "close" if $!data isn't Nil, ie the user forgot to terminate the object. 22:37
dalek p: 7fb352c | (Pawel Murias)++ | src/vm/js/ (8 files):
Implement nqp::callercode by putting extra info on Ctxs rather then using arguments.

This speeds up parsing JSON.
22:39
sortiz rudi_s, This allows your user to implement a pattern that, at scope LEAVE the object is closed. Depends on DESTROY to be called at the proper time, can cause problems.
rudi_s sortiz: Yeah, I was thinking along the same lines. Will have a patch for the docs shortly. Btw. you wrote LEAVE, is that a special function too? 22:41
RabidGravy well a "phaser" block, not a function 22:42
sortiz It is a phaser, see doc.perl6.org/language/phasers#LEAVE
rudi_s Ah, thank you.
RabidGravy m: sub foo { LEAVE { say "byee" }; say "foo" }; foo()
camelia rakudo-moar 620f4e: OUTPUT«foo␤byee␤»
22:43 alpha123 joined
rudi_s moritz: sortiz: Proposed patches: pbot.rmdir.de/7YdAtV3LRD4XORT8xRWBJg 0002-nativecall-add-DESTROY-to-example.patch 22:44
22:45 konobi_ is now known as konobi 22:48 dh7320 joined
sortiz rudi_s, Some on the line of: sub Dowork { my $obj = FooH.new; LEAVE { $obj.free }; #... lot of work with $obj ... }; 22:48
rudi_s sortiz: Yeah, thanks. 22:49
lizmat calls it a day 22:50
good night, #perl6!
22:52 labster joined
sortiz 'night lizmat, well deserved rest. 22:52
22:53 vendethiel left 22:55 _dolmen_ left
jnthn Sleep for me also... 'night o/ 22:58
22:58 vendethiel joined
sortiz 'night jnthn 22:59
23:00 thundergnat joined
sortiz rudi_s, In your example I would add "submethod DESTROY () { self.free if $!initialized; }" 23:00
23:01 firstdayonthejob left
thundergnat For anyone who may be interested re irclog.perlgeek.de/perl6/2016-02-09#i_12009620 See rosettacode.org/wiki/Pathological_f...t_problems 23:02
23:02 firstdayonthejob joined
RabidGravy right that's enough for the day. toodles. 23:03
23:03 virtualsue left
sortiz CY RabidGravy. 23:04
rudi_s sortiz: Did you look at the second patch? 23:05
Should I use method DESTROY() or submethod DESTROY? 23:06
Ah, I'm stupid, forgot the second URL.
sortiz: pbot.rmdir.de/r3hNiM5diZKEK4nu_WSung
23:07 dh7320 left
sortiz rudi_s, submethod is better. 23:07
23:07 RabidGravy left
rudi_s Because it can't be overwritten by subclasses so free is always called in the way the superclass has intended? But what if a subclass changes the allocation? 23:08
sortiz Yes, If the class does the allocation, only that class can handle the de-allocation, it's safer imo. 23:11
23:12 TEttinger joined
rudi_s sortiz: Can the subclass overwrite new without calling the new of the parent-class? 23:13
23:15 sno joined
sortiz rudi_s, Yes. For these cases I write a wrapper high level class that encapsulate the low level CPointer one, you can see a full example in my own LDMB: github.com/salortiz/p6-LMDB/blob/m...B.pm6#L323 23:18
23:19 skids joined, vendethiel left 23:21 prammer left 23:22 pmurias left
timotimo grondilu: what if i told you i've reached almost 40 fps? :) 23:23
23:25 adu joined
rudi_s sortiz: My point was. If the subclass can override new (and thus the allocation), shouldn't it be method DESTROY() { } so the subclass has a chance to adapt the free? 23:28
23:29 neilb left 23:34 dh7320 joined
sortiz rudi_s, Yes, you're right. I was thinking in my model, where the real allocation is done in a submethod BUILD, and no one can change that. 23:36
23:39 skids left, vendethiel joined
rudi_s Ok. Then I'll push it as is. Thanks for reviewing. 23:40
dalek c: 109febd | (Simon Ruderich)++ | doc/Language/nativecall.pod:
nativecall: remove trailing whitespace
23:41
c: 7867eca | (Simon Ruderich)++ | doc/Language/nativecall.pod:
nativecall: prevent potential double free in example
c: 5dab080 | (Simon Ruderich)++ | doc/Language/nativecall.pod:
nativecall: add DESTROY to example
rudi_s When using nativecall, how can I handle different APIs depending on the architecture? Like different time_t? 23:50
timotimo for example with a custom sub EXPORT 23:52
that gives you either one or the other bunch of subs/classes
23:53 firstdayonthejob left
rudi_s So I'd create e.g. two is native('lib') functions and then use either one depending on the current platform? Sounds easy, thanks. 23:53
timotimo that's how i'd do it 23:55
oh 23:56
another thing that's probably easier:
you can have constant this_api_is_broken = int32
and that can depend on $*PERL or $*VM or whatever you need to figure out the architecture
rudi_s timotimo: Can I use that constant as parameter for the sub? 23:57
Juerd www.reddit.com/r/dailyprogrammer/c...ith_light/ 23:58
rudi_s Btw. what am I'doing wrong when size_t causes this error: "Invalid typename 'size_t' in parameter declaration."
Juerd ^ Another challenge where the Perl 6 code is so much more readable than all the other ones.
23:58 thundergnat left
timotimo yes, you can 23:58
rudi_s: i suppose we just don't expose size_t? 23:59
23:59 sufrosti1o left, sufrostico left
timotimo oh 23:59
we do expose that