Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-02-22

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:04 * [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 #perl6
00:06 rr joined #perl6
00:13 dalek nqp: ed92966 | coke++ | VERSION:
00:13 dalek nqp: bump VERSION
00:13 dalek nqp: review: https://github.com/perl6/nqp/commit/ed92966077
00:24 [Coke] nqp jvm failure: t/nqp/76-capture.t
00:26 * [Coke] opens https://github.com/perl6/nqp/issues/277
00:28 [Coke] why is make release on nqp complaining that it can't find nqp js files?
00:30 [Coke] me tries doing a js build to see if that somehow became required this month.
00:36 [Coke] js build hangs.
00:37 * [Coke] is reminded to start trying to cut a release like every week . :P
00:50 MadcapJake almost done: https://github.com/MadcapJake/sixbug/tree/all-tickets
00:51 MadcapJake if anyone has any input on issue templates, please submit a PR, issue, or message me.
01:05 japhb joined #perl6
01:17 AlexDaniel MadcapJake: what about Q:s<  {"id":"$id","subject":"$subject","created":"$created"}> ?
01:17 AlexDaniel MadcapJake: this is unrelated to the main issue but still :)
01:18 sufrostico The NativeCall Library works with static libraries?
01:21 BenGoldberg joined #perl6
01:27 revhippie joined #perl6
01:31 revhippie left #perl6
01:32 kid51 joined #perl6
01:32 Actualeyes joined #perl6
01:37 cpage_ joined #perl6
01:38 Sgeo joined #perl6
01:50 [Coke] guessing we're missing a dependency on the makefile template somewhere; after a git clean -xdf, nqp HEAD seems fine.
02:13 kurahaupo joined #perl6
02:15 molaf_ joined #perl6
02:21 AlexDaniel star: sub foo(Int() $x) { say $x }; foo(True)
02:21 camelia star-m 2015.09: OUTPUT«1␤»
02:21 AlexDaniel m: sub foo(Int() $x) { say $x }; foo(True)
02:21 camelia rakudo-moar 77581b: OUTPUT«True␤»
02:21 AlexDaniel huh?
02:21 AlexDaniel star: sub foo(Int $x) { say $x }; foo(True)
02:21 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)␤»
02:22 AlexDaniel I thought that Int() should do the trick?
02:22 dalek rakudo/nom: be7dd67 | coke++ | docs/ (2 files):
02:22 dalek rakudo/nom: Add release announcement for 2016.02
02:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/be7dd672e5
02:22 dalek rakudo/nom: 4d5cb05 | coke++ | docs/release_guide.pod:
02:22 dalek rakudo/nom: rely on default file name,
02:22 dalek rakudo/nom:
02:22 dalek rakudo/nom: be less specific
02:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4d5cb0504a
02:22 dalek rakudo/nom: 2953d0a | coke++ | docs/ChangeLog:
02:22 dalek rakudo/nom: fix typo
02:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2953d0a471
02:22 dalek rakudo/nom: 80a4998 | coke++ | tools/build/NQP_REVISION:
02:22 dalek rakudo/nom: [release] bump NQP revision
02:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/80a4998de6
02:22 dalek rakudo/nom: f04a894 | coke++ | VERSION:
02:22 dalek rakudo/nom: [release] bump VERSION
02:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f04a894dde
02:22 MadcapJake AlexDaniel, isn't that an old star release?
02:22 AlexDaniel MadcapJake: it is
02:22 AlexDaniel MadcapJake: but I feel like Int() was actually working right before Christmas
02:31 alpha123 joined #perl6
02:43 [Coke] m: say Bool ~~ Int
02:46 camelia rakudo-moar f04a89: OUTPUT«True␤»
02:46 [Coke] start: say Bool ~~ Int
02:46 [Coke] star: say Bool ~~ Int
02:46 camelia star-m 2015.09: OUTPUT«False␤»
02:46 [Coke] guess not.
02:46 [Coke] note that 2015.09 is not "right before"
02:46 AlexDaniel [Coke]: I remember some trick which was like Int() or something
02:46 AlexDaniel that actually worked, hmmm
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
02:48 AlexDaniel m: sub foo(int $x) { say $x }; foo(True) # I meant this
02:48 camelia rakudo-moar f04a89: OUTPUT«1␤»
03:08 dalek roast/6.c-errata: 527da4c | coke++ | S11-modules/require.t:
03:08 dalek roast/6.c-errata: This test is now passing on rakudo HEAD
03:08 dalek roast/6.c-errata: review: https://github.com/perl6/roast/commit/527da4c6ad
03:14 colomon joined #perl6
03:15 [Coke] release isn't happening today, there are failnig tests.
03:16 [Coke] Please be mindful and perhaps don't commit to nom branch until we get this resolved except for the bug fixes.
03:19 DoverMo joined #perl6
03:19 DoverMo i got good at locking in my souls
03:21 [Coke] Anyone wants to poke, the meta ticket is https://rt.perl.org/Ticket/Display.html?id=127589
03:25 moritz [Coke]: the last spectest run on hack was successful, so it must be platform specific tests or flappers
03:30 [Coke] moritz: are you running roast/master tests?
03:30 moritz [Coke]: yes
03:30 [Coke] that's not what needs testing.
03:30 moritz oh
03:30 [Coke] we need to make sure we're not breaking the 6.c tag / 6.c-errata branch
03:49 moritz m: say dir()[0].^name
03:49 camelia rakudo-moar f04a89: OUTPUT«IO::Path␤»
03:51 dalek roast/6.c-errata: 31fa3f9 | moritz++ | S32-io/dir.t:
03:51 dalek roast/6.c-errata: #127591: Relax test a bit
03:51 dalek roast/6.c-errata:
03:51 dalek roast/6.c-errata: this tested against IO::Local, and the test never passed.
03:51 dalek roast/6.c-errata: These days, IO::Local is gone, so the previously failing test now errors
03:51 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127591
03:51 dalek roast/6.c-errata: out.
03:51 dalek roast/6.c-errata:
03:51 dalek roast/6.c-errata: Instead, relax the test to check for IO::Path. And unfudge, because
03:51 dalek roast/6.c-errata: it passes that way.
03:51 dalek roast/6.c-errata: review: https://github.com/perl6/roast/commit/31fa3f9463
03:54 noganex joined #perl6
04:00 [Coke] moritz: when was IO::Local remoed?
04:22 skids Anyone understand the part of http://design.perl6.org/S12.html#proto_Signatures that talks of mapping named to positionals?  I can't a code example for it.
04:33 zpmorganASDF joined #perl6
04:35 zpmorgag joined #perl6
04:38 skids [Coke]: looks like commit 5ed58f6d maybe?
04:42 Ben_Goldberg joined #perl6
04:43 jdv79 was newio merged?
04:53 atweiden joined #perl6
04:55 atweiden anyone know how to fix this?
04:55 atweiden m: class ABC { method mod($container, :$value!) { my $root := $container; $root = $value; }; }; my %container; ABC.mod(%container, :value({:a(7)})); say %container.perl;
04:55 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␤␤»
05:03 Juerd atweiden: Well, 'method mod($container is rw, ...' would be a start, but then you run into that hashes aren't writable containers :)
05:04 Juerd You could work around that by using $container instead of %container.
05:14 dalek ecosystem: 9ae882c | okaoka++ | META.list:
05:14 dalek ecosystem: Add Algorithm::ZobristHashing to ecosystem
05:14 dalek ecosystem:
05:14 dalek ecosystem: See https://github.com/okaoka/p6-Algorithm-ZobristHashing
05:14 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/9ae882c8d8
05:14 dalek ecosystem: 55c9189 | (Fritz Zaucker)++ | META.list:
05:14 dalek ecosystem: Merge pull request #159 from okaoka/add-zobrist
05:14 dalek ecosystem:
05:14 dalek ecosystem: Add Algorithm::ZobristHashing to ecosystem
05:14 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/55c9189861
05:18 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:20 TEttinger joined #perl6
05:24 llfourn skids: I've pondered that sentence before when writing proto docs. Never understood it either.
05:27 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␤␤»
05:29 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.
05:32 skids 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?
05:33 skids http://design.perl6.org/S12.html#Multi_Submethods_et_Cetera
05:34 llfourn ah thanks so that does sound more like what you gave as an example.
05:36 llfourn I think the present implementation makes sense is there a reason to change it?
05:39 skids No, I'm just looking into it while improving the metamodel signature comparator.
05:41 llfourn ah awesome. That required multis from roles thing?
05:42 llfourn https://rt.perl.org/Public/Bug/Display.html?id=127303
05:44 skids No, just stuff like this is currently wrong:
05:44 skids m: role A { multi method a ($a, $b) { }; multi method a ($b, $a) { } }; role B { }; class C does A does B { }; # should conflict like:
05:44 camelia rakudo-moar f04a89: ( no output )
05:44 skids m: role A { multi method a ($, $) { }; multi method a ($, $) { } }; role B { }; class C does A does B { }; # should conflict like:
05:44 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:45 skids The names of positional parms should not matter.
05:45 skids Currently this is done by comparing signature.perl's
05:46 llfourn ah well that is sorta the same problem as RT #127303
05:46 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127303
05:46 skids (And not done in many places, but I'm not addressing that yet)
05:46 llfourn oh hey bot welcome back
05:46 llfourn skids++ I'll leave you to it :)
05:49 skids anyway, time to hit the hay.
05:49 llfourn skids: 'night
06:04 Cabanossi joined #perl6
06:08 average AlexDaniel: yeah, I agree.. there are some bash code style things that could be better
06:09 average AlexDaniel: I'm curious what you think about the rest
06:21 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 AlexDaniel 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 #perl6
06:22 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 :)
06:22 average AlexDaniel: hehe
06:23 average 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:24 ggoebel16 joined #perl6
06:24 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 average so basically that was the main excuse for trying to do it
06:24 average AlexDaniel: to your question, yeah there's no p6 version, but there's a p5 version :)
06:26 average jdv79: I keep the bash code snippets in the blog post quite small
06:27 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
06:27 average jdv79: I don't go very deep with Bash's idioms, I'm sure there are plenty tho
06:28 average AlexDaniel: well, what's right is right..
06:28 average AlexDaniel: thanks for skimming through it and offering feedback :)
06:31 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 AlexDaniel that's what I did many times actually, I just didn't blog about it, eh. Should start it one day anyway
06:34 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 average well, generally, there are situations where low-cost simplistic solutions fit well
06:35 average 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
06:36 AlexDaniel these*
06:37 AlexDaniel 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
06:38 average 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:39 AlexDaniel like, good job, you've just incremented a number, yeah: http://mywiki.wooledge.org/BashPitfalls#read_num.3B_echo_.24.28.28num.2B-1.29.29
06:39 AlexDaniel average: and not so much space if you were using something else :)
06:39 average between a rock and a hard place :P
06:40 AlexDaniel but for really really short script sure enough it is hard to beat bash
06:43 AlexDaniel k, back to programming microcontrollers
06:45 xiaomiao s/bash/posix sh/ ;)
06:47 AlexDaniel xiaomiao: fair enough. Though I don't see non-bash shell scripts very frequently
06:48 xiaomiao AlexDaniel: I see lots of people religiously putting #!/bin/bash there and then not using any bash features (e.g. [[ or += )
06:48 xiaomiao and since bash is relatively slow, why use it for /bin/sh ...
06:48 AlexDaniel xiaomiao: or other way round! Putting #!/bin/sh there and then using bashisms
06:48 llfourn ^^ this is the worst problem
06:48 xiaomiao AlexDaniel: yeah, all of the nagios community
06:49 xiaomiao 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
06:49 xiaomiao now for every iteration you spawn a subshell :(
06:50 AlexDaniel xiaomiao: oh, subshells! People love that!
06:51 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?
06:52 llfourn m: my $str = ".+"; say "foo" ~~ rx/$str/;
06:52 camelia rakudo-moar f04a89: OUTPUT«Nil␤»
06:53 AlexDaniel m: my $str = /.+/; say "foo" ~~ $str;
06:53 camelia rakudo-moar f04a89: OUTPUT«True␤»
06:53 llfourn m: my $str = ".+"; say "foo" ~~ rx/<{$str}>/;
06:53 camelia rakudo-moar f04a89: OUTPUT«「foo」␤»
06:53 llfourn I think that might be it
06:54 llfourn 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!
06:54 camelia rakudo-moar f04a89: OUTPUT«「bar」␤»
06:55 llfourn cool.
06:55 abaugher joined #perl6
07:11 Hotkeys why not just use any() there?
07:12 AlexDaniel yea?
07:15 AlexDaniel m:  say so ‘foo’ . contains: any <oo aa ee>
07:15 camelia rakudo-moar f04a89: OUTPUT«True␤»
07:22 [Tux] test            22.404
07:22 [Tux] test-t          12.042
07:22 [Tux] csv-parser      49.675
07:23 nowan joined #perl6
07:23 CIAvash joined #perl6
07:28 ggoebel16 joined #perl6
07:37 firstdayonthejob joined #perl6
07:40 nakiro joined #perl6
07:42 Actualeyes joined #perl6
07:43 MadcapJake Hotkeys, because it's part of a greater regex and I need the matched contents
07:43 Hotkeys ah
07:44 _mg_ joined #perl6
07:52 kentnl joined #perl6
07:53 kentnl joined #perl6
07:53 CIAvash MadcapJake: If you use the list directly it will do the alternation
07:53 CIAvash m: my regex foobar { @(<foo bar>) }; say('bar' ~~ &foobar);
07:53 camelia rakudo-moar f04a89: OUTPUT«「bar」␤»
07:54 MadcapJake haha! nice xD
07:55 FROGGS joined #perl6
07:56 RabidGravy joined #perl6
07:57 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 #perl6
07:58 mr-foobar joined #perl6
07:58 fireartist joined #perl6
08:02 darutoko joined #perl6
08:03 domidumont joined #perl6
08:06 ely-se joined #perl6
08:12 Skarsnik joined #perl6
08:17 neilb joined #perl6
08:17 RabidGravy BOOM!
08:18 fireartist ~fizzle~
08:24 zakharyas joined #perl6
08:35 moritz blörg!
08:38 abraxxa joined #perl6
08:40 Ethan joined #perl6
08:41 Ethan left #perl6
08:41 neilb joined #perl6
08:42 FROGGS broom!
08:44 RabidGravy bleep!
08:47 MadcapJake issue submitter progress: https://youtu.be/8SlFZEra-98
08:47 * MadcapJake is off to bed
08:47 * llfourn watches vid
08:47 llfourn MadcapJake: 4 seconds in and this is epic
08:48 llfourn MadcapJake»++
08:49 * RabidGravy considers he may have coded himself into a corner with this code
08:50 FROGGS MadcapJake++
08:50 sortiz joined #perl6
08:53 Skarsnik MadcapJake++
08:53 sortiz \o #perl6
08:53 llfourn o/ # check out https://youtu.be/8SlFZEra-98
08:54 dh7320 joined #perl6
08:57 sortiz moritz, The problem with https://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:58 sortiz MadcapJake++
08:58 Amendil joined #perl6
08:58 moritz sortiz: yes. I just don't know what to do with it
08:58 moritz this whole WHICH.t file is, like, totally worthless
09:00 sortiz Um, IMO the sane approach now is remove IO::Dir from the @normal list.
09:01 pmurias_ joined #perl6
09:01 pmurias joined #perl6
09:01 sortiz moritz, I dunno if other tests check for the classes expected in settings.
09:02 vendethiel joined #perl6
09:02 pmurias [Coke]: that failing test is caused by nqp-jvm missing an op, I'll try to add this op
09:03 pmurias [Coke]: when does the js build hang?
09:05 CIAvash MadcapJake++
09:05 tmch joined #perl6
09:06 gregf_ joined #perl6
09:11 Praise joined #perl6
09:13 neilb joined #perl6
09:19 Woodi so modern GUI :)  MadcapJake++
09:20 Woodi mst++ # human-file-names++, promises
09:21 |Tux| joined #perl6
09:22 wamba joined #perl6
09:23 brrt joined #perl6
09:25 ocbtec joined #perl6
09:29 vendethiel joined #perl6
09:54 sno joined #perl6
09:57 vendethiel joined #perl6
09:58 DrForr o/
09:59 brrt \o DrForr
09:59 DrForr If I have time this weekend App::prancer might make it into the modules.perl6.org repo.
10:01 llfourn DrForr: What's prancer?
10:10 brrt hey #perl6, i have something odd
10:12 brrt if I have this file: '#!/usr/bin/env perl6\nsay "OH HAI";' and run it as an executable, no code is run
10:12 brrt if i perl6 ./foo.pl6 then it is
10:13 DrForr One mo...
10:14 DrForr https://github.com/drforr/perl6-App-prancer
10:14 brrt in fact, i'm not sure whether the ./foo.pl6 syntax invokes the perl6 interpreter at all
10:14 pmurias joined #perl6
10:15 pmurias_ joined #perl6
10:16 El_Che DrForr: It could be useful for writing rest services. Is it threaded?
10:18 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:19 El_Che yeah, I remember. It froze around 100-200 requests or something
10:19 pmurias joined #perl6
10:20 pmurias_ joined #perl6
10:20 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
10:20 DrForr Well, I actually have plans for a REST handler layer on top of the existing functional.
10:21 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'.
10:21 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
10:22 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:23 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:25 DrForr And https://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
10:25 FROGGS brrt: and that does not seems to work out
10:27 abraxxa1 joined #perl6
10:28 brrt indeed
10:29 FROGGS works on linux fwiw
10:29 * brrt refrains from saying nasty things about OS-X, for the time being
10:30 average I like queues a lot
10:30 average can someone make a cool blog post about queues in p6 so I can munch a burger while skimming it ?
10:31 brrt what kind of queues are you talking about average?
10:31 brrt the term has become a bit overloaded recently
10:31 average brrt: http://blog.garage-coding.com/2016/02/05/bash-fifo-jobqueue.html
10:31 average brrt: these kinds of queues
10:31 brrt from 'dequeue' data structure, to 'job queue' to, 'enterprise microservices coodrination thingy'
10:32 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:33 average 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 average i mean.. lightweight stuff is more attractive, at least to me
10:34 average 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:35 RabidGravy DrForr++ # that stuff is looking good BTW
10:35 Woodi average: probably you shoud google for some Perl6 docs :)
10:35 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
10:36 DrForr RabidGravy: Thanks.
10:37 brrt average: i suppose the equivalent thing would be a supply with an await that reads the supply and dispatches to start
10:37 brrt otherwise, if you want a fifo-based operating system level queue system, i humbly suggest you use the operating system :-)
10:38 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␤»
10:38 DrForr I'm just glad that   ok so True == ( map { ?$_.<node> }, $s.graph.values).all worked the first time I tried it :)
10:38 psch i'm *still* not quite sure on Channel vs. Supply, though...
10:39 psch also i don't know where the 4 went vOv
10:39 psch further, hi #perl6 o/
10:39 Mokok joined #perl6
10:39 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].
10:40 jast heh, first time I've seen 'vOv' -- cute :)
10:41 vendethiel joined #perl6
10:44 RabidGravy psch, probably want an "await" in there
10:45 dalek roast/6.c-errata: 6af3c5b | lizmat++ | S32-temporal/DateTime.t:
10:45 dalek roast/6.c-errata: Fix faulty test
10:45 dalek roast/6.c-errata:
10:45 dalek roast/6.c-errata: When in a leap second, adding a day should not move your forward to
10:45 dalek roast/6.c-errata: next day, but will put you in the last second of the next day.  Just
10:45 dalek roast/6.c-errata: as moving one month from Jan 31 will not put you in March, but in
10:45 dalek roast/6.c-errata: the last day of February.  This incorrect behaviour was fixed post
10:45 dalek roast/6.c-errata: 2015.12: this test was incorrect, and is now fixed.
10:45 dalek roast/6.c-errata: review: https://github.com/perl6/roast/commit/6af3c5b5de
10:46 psch RabidGravy: right, thanks, that gets all 5 elements
10:46 psch it also seems to put things back in order, which i guess is sensible
10:46 psch m: my $ch = Channel.new; $ch.send($_) for ^5; for ^5 { await start { say "$_ got {$ch.poll}" } }; #
10:46 camelia rakudo-moar f04a89: OUTPUT«0 got 0␤1 got 1␤2 got 2␤3 got 3␤4 got 4␤»
10:46 lizmat .tell [Coke] RT #127590 is fixed
10:46 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127590
10:46 yoleaux lizmat: I'll pass your message to [Coke].
10:46 RabidGravy psch, however
10:47 RabidGravy 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 {…»
10:47 RabidGravy m: my $ch = Channel.new; $ch.send($_) for ^5; await do for ^5 { start { say "$_ got {$ch.poll}" } };
10:47 camelia rakudo-moar f04a89: OUTPUT«1 got 1␤0 got 0␤2 got 2␤3 got 3␤4 got 4␤»
10:47 psch ah
10:47 psch neat
10:48 rindolf joined #perl6
10:49 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 RabidGravy thus, not necessarily in order
10:51 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)
10:52 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 :)
10:53 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.
10:54 moritz today's autopun: https://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 #perl6
10:55 RabidGravy just hacking around my difficulties with a role at the moment
10:58 dalek roast/6.c-errata: a069b92 | lizmat++ | integration/weird-errors.t:
10:58 dalek roast/6.c-errata: Replace one weird error with another
10:58 dalek roast/6.c-errata:
10:58 dalek roast/6.c-errata: It really feels to me that this type of test is really bogus.  But
10:58 dalek roast/6.c-errata: something got fixed along the way from 2015.12, and now this piece
10:58 dalek roast/6.c-errata: of code fails in a better way, differently from before.  Perhaps we
10:58 dalek roast/6.c-errata: should only test that it fails, period?
10:58 dalek roast/6.c-errata:
10:58 dalek roast/6.c-errata: This takes care of RT #127592
10:58 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127592
10:58 dalek roast/6.c-errata: review: https://github.com/perl6/roast/commit/a069b922c9
11:01 brrt iirc there was an operator to get the maximum of two values, is that correct?
11:01 brrt m: say 1 max 4;
11:01 camelia rakudo-moar f04a89: OUTPUT«4␤»
11:02 brrt ok, now, how do i apply that listwise
11:02 brrt e.g.
11:02 psch m: say [max] 1,2,3,4
11:02 camelia rakudo-moar f04a89: OUTPUT«4␤»
11:02 psch m: say (1,2,3,4).max
11:02 camelia rakudo-moar f04a89: OUTPUT«4␤»
11:02 brrt ok, how do i apply that zip-listwise
11:02 dalek roast/6.c-errata: c73db6b | lizmat++ | S02-types/WHICH.t:
11:02 dalek roast/6.c-errata: Remove tests for IO::Dir & IO::File
11:02 dalek roast/6.c-errata:
11:02 dalek roast/6.c-errata: These were leftovers of a merge attempt of the newio branch.  The
11:02 dalek roast/6.c-errata: code was basically in 2015.12, but wasn't used.  It has since been
11:02 dalek roast/6.c-errata: removed.  These were the only 2 tests for these classes in roast.
11:02 dalek roast/6.c-errata: They shouldn't have been there in the first place.  Mea culpa.
11:02 dalek roast/6.c-errata:
11:02 dalek roast/6.c-errata: This fixes RT #127593
11:02 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127593
11:02 brrt m: say q:w[1 2 3 4] Z q:w[4 3 2 1];
11:02 camelia rakudo-moar f04a89: OUTPUT«((1 4) (2 3) (3 2) (4 1))␤»
11:02 dalek roast/6.c-errata: review: https://github.com/perl6/roast/commit/c73db6b5c1
11:03 lizmat .tell [Coke] afaics, all blockers for 2016.02 have been dealt with
11:03 yoleaux lizmat: I'll pass your message to [Coke].
11:03 brrt m: say (q:w[1 2 3 4] Z q:w[4 3 2 1]).>>max;
11:03 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␤»
11:03 psch oh, of each zip'd pair only the max
11:04 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)␤»
11:04 brrt ah, cool
11:04 brrt m: say 0 xx 4;
11:04 camelia rakudo-moar f04a89: OUTPUT«(0 0 0 0)␤»
11:04 brrt perl6++
11:05 brrt lunch &
11:07 AlexDaniel brrt: I find it a little bit too verbose
11:07 AlexDaniel I'd do this instead
11:07 AlexDaniel m: say q:w[1 2 3 4] Zmax q:w[4 3 2 1]
11:07 camelia rakudo-moar f04a89: OUTPUT«(4 3 3 4)␤»
11:08 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
11:08 psch m: say max 1,2,3; say [max] 1,2,3
11:08 camelia rakudo-moar f04a89: OUTPUT«3␤3␤»
11:08 psch the latter is the listop'd infix
11:08 jnthn Hotkeys: split by whitespace
11:08 Hotkeys Ah
11:08 jnthn But you could write it as <1 2 3 4> more neatly :)
11:08 psch that threw me for a loop a bit when trying to find the solution AlexDaniel++ mentioned
11:08 Hotkeys Right
11:08 Hotkeys I knew that one
11:09 Hotkeys I also know just qw
11:09 timotimo yeah, :w is the same thing as in qw
11:09 Hotkeys Didn't realize it could be q:w
11:09 psch m: say 1,2,3 Z[max] 4,5,6
11:09 camelia rakudo-moar f04a89: OUTPUT«(4 5 6)␤»
11:09 jnthn We have colonless shortcuts for a handful of them, yeah
11:09 psch i mean, that just looks confusing...
11:09 timotimo better colonless than spineless, eh?
11:09 jnthn psch: What's confusing about it? :)
11:10 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?
11:10 jnthn m: say &max
11:10 camelia rakudo-moar f04a89: OUTPUT«sub max (+ is raw, :&by = { ... }) { #`(Sub|71270736) ... }␤»
11:10 jnthn Yeah, just a plain old sub call in that form
11:10 psch right, i mix those up i suppose
11:11 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
11:11 psch but they do different things :S
11:11 psch m: say 1,2,3 Z[max] 4,5,6; say 1,2,3 Zmax 4,5,6
11:11 camelia rakudo-moar f04a89: OUTPUT«(4 5 6)␤(4 5 6)␤»
11:11 psch grr
11:11 psch no
11:11 psch precedence
11:12 psch uhm, i'll investigate this on my own a bit i guess :P
11:12 jnthn :-)
11:12 jnthn I'm pretty sure those two forms are identical
11:12 AlexDaniel psch: you can put any other infix op there
11:12 timotimo it's only for disambiguation when you put a [ ] into a metaop-op-combination
11:13 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))))␤»
11:13 psch oh duh
11:13 Hotkeys Lol
11:13 psch well, the confusion was actually from the data
11:13 timotimo super important to have the "snore" operator
11:14 Hotkeys m: <1 2 3 4> Z, <4 3 2 1>
11:14 camelia rakudo-moar f04a89: ( no output )
11:14 Hotkeys Argh
11:14 psch i didn't realize that of (1,4), (2,5), (3,6) it's always the second value that's bigger
11:14 timotimo hehehe
11:14 Hotkeys I wish the repl wasn't a repl or camelia was a repl
11:14 Hotkeys I never remember to use say
11:14 FROGGS joined #perl6
11:15 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))␤»
11:15 psch but then i remember that [&sub] is the right form for infixification
11:15 psch +ed
11:15 Hotkeys m: say 1...4 Z, 4...1
11:15 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⏏…»
11:15 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)
11:15 yoleaux lizmat: I'll pass your message to [Coke].
11:15 Hotkeys Wow way to get angry camelia
11:16 AlexDaniel Hotkeys: yeah, you have to use parens
11:16 AlexDaniel and I hate it
11:16 Hotkeys m: say <1 2 3 4> Z, <4 3 2 1>
11:16 camelia rakudo-moar f04a89: OUTPUT«((1 4) (2 3) (3 2) (4 1))␤»
11:16 Hotkeys Nice and redundant
11:16 Hotkeys zipping with comma
11:16 AlexDaniel m: say (1…4) Z=> (4…1)
11:16 camelia rakudo-moar f04a89: OUTPUT«(1 => 4 2 => 3 3 => 2 4 => 1)␤»
11:17 AlexDaniel m: say (1…4) Z<= (4…1)
11:17 camelia rakudo-moar f04a89: OUTPUT«(True True False False)␤»
11:17 AlexDaniel m: say (1…4) Z<=> (4…1)
11:17 camelia rakudo-moar f04a89: OUTPUT«(Less Less More More)␤»
11:17 AlexDaniel xD
11:17 psch m: say (1…4) ZR=> (4…1)
11:17 camelia rakudo-moar f04a89: OUTPUT«(4 => 1 3 => 2 2 => 3 1 => 4)␤»
11:17 Hotkeys I was gonna do that but I'm glad you did
11:17 Hotkeys Typing code on Android is a pain in the arse
11:17 psch m: say (1…4) ZRRZ=> (4…1)
11:17 camelia rakudo-moar f04a89: OUTPUT«((1 => 4) (2 => 3) (3 => 2) (4 => 1))␤»
11:17 timotimo m: sub infix:<fst>($a, $b) { $a }; say (1…4) Zfst (4…1)
11:17 camelia rakudo-moar f04a89: OUTPUT«(1 2 3 4)␤»
11:17 Hotkeys Lol
11:18 timotimo this is th Zfst operator i've ever made
11:19 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
11:19 camelia rakudo-moar f04a89: ( no output )
11:20 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␤»
11:20 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␤»
11:20 pmurias_ is there a way to skip a test file on the jvm?
11:20 pmurias_ (for jvm)
11:20 psch pmurias_: you can limit to e.g. moar in t/spectest.data
11:20 jnthn pmurias_: Normally we just don't include them in the spectest.data
11:20 timotimo well, we don't have a separate spectest.data for jvm or moar, eh?
11:21 jnthn Oh, right
11:21 jnthn Forgot...it's markers in there
11:21 timotimo but doesn't spectest.data something in it, too?
11:21 timotimo at least for "stress"
11:22 jnthn Yeah, you mark stuff # moar to run on Moar only, for example
11:23 AlexDaniel me ZZZ bed &
11:23 timotimo so do we have !jvm?
11:23 timotimo see ya, AlexDaniel
11:25 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:26 lizmat moritz: which is exactly what it did, so not worthless in my book
11:26 pmurias joined #perl6
11:26 jnthn timotimo: No; if there are matchers then you have to match at least one of them to run the test
11:26 jnthn So one marked with # moar will never match on JVM
11:26 timotimo ah, ok
11:32 psch hrm, new, new, bless, BUILDALL loop
11:33 timotimo interesting
11:33 psch i think that's probably where all the StackOverflowErrors i've seen up to now happen :P
11:33 timotimo sounds likely
11:33 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
11:34 psch hence the "is there docs" question :)
11:34 timotimo hm
11:35 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:36 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
11:36 timotimo hmm
11:37 brrt joined #perl6
11:37 dalek rakudo/jvminterop: b11477f | peschwa++ | src/vm/jvm/CompUnit/Repository/Java.pm:
11:37 dalek rakudo/jvminterop: Add basic infrastructure to support JVM interop via CURs.
11:37 dalek rakudo/jvminterop: review: https://github.com/rakudo/rakudo/commit/b11477f3b5
11:37 dalek rakudo/jvminterop: cbf1171 | peschwa++ | t/03-jvm/01-interop.t:
11:37 dalek rakudo/jvminterop: :from<java> is gone in favor of :from<Java>.
11:37 dalek rakudo/jvminterop: review: https://github.com/rakudo/rakudo/commit/cbf11712bb
11:37 dalek rakudo/jvminterop: f772323 | peschwa++ | / (4 files):
11:37 dalek rakudo/jvminterop: Get JVM interop via CUR started.
11:37 dalek rakudo/jvminterop:
11:37 dalek rakudo/jvminterop: As of this commit the CUR seems workish, in so far that it breaks because it
11:37 dalek rakudo/jvminterop: doesn't get anything useful from RakudoJavaInterop.computeInterop.
11:37 dalek rakudo/jvminterop: review: https://github.com/rakudo/rakudo/commit/f7723238f4
11:38 psch hrm, *CUR *part*
11:38 psch anyway, yeah, that dies with "ctxledpad needs a ContextRef" or somesuch
11:38 psch and a ContextRef needs a CallFrame context
11:38 timotimo :S
11:38 psch or rather, a ContextRefInstance needs a CallFrame context
11:40 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:41 psch and i know awefully little about that... :)
11:41 flussence joined #perl6
11:41 jnap joined #perl6
11:42 polyfloyd joined #perl6
11:42 ilmari joined #perl6
11:42 hoelzro joined #perl6
11:43 mrsolo joined #perl6
11:43 boegel joined #perl6
11:43 ely-se joined #perl6
11:43 caasih joined #perl6
11:44 beatdown joined #perl6
11:45 [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
11:45 yoleaux 10:46Z <lizmat> [Coke]: RT #127590 is fixed
11:45 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127590
11:45 yoleaux 11:03Z <lizmat> [Coke]: afaics, all blockers for 2016.02 have been dealt with
11:45 yoleaux 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)
11:45 timotimo oh hey coke :)
11:45 hobbs joined #perl6
11:46 roguelazer joined #perl6
11:47 dustinm` joined #perl6
11:49 [Coke] timotimo: lizmat++ moritz++ # erratizing.
11:49 [Coke] timotimo: I don't understand your question about my grammar.
11:49 [Coke] (whoops, timotimo was only meant for send#2 there.)
11:49 timotimo whatever ;)
11:50 timotimo i wonder, should we also mention that Set.hash's returned hash is now properly decoupled from the set?
11:50 timotimo so that changing the hash no longer changes the set?
11:52 [Coke] timotimo: I deliberately did not include all of Changelog.
11:52 skarn joined #perl6
11:52 [Coke] but if that's a big change, sure, we can add it back.
11:52 timotimo right
11:52 lizmat -   + Map.Hash now correctly separates from the Map
11:52 lizmat +   + Set/Map.Hash now correctly separates from the Set/Map
11:52 timotimo it's not terrible
11:52 lizmat in ChangeLog
11:52 lizmat ?
11:52 [Coke] ah, need to put the "not all changes" line back into the release ann.
11:52 timotimo that sounds sensible, lizmat
11:53 kaare_ joined #perl6
11:53 lizmat timotimo: actually, thinking about it, Set.Hash already separated from Set
11:54 lizmat it just created a has with stringified objects as its keys
11:54 lizmat *that* was fixed, and that was already in the changelog
11:54 lizmat *hash
11:54 timotimo you know better than me
11:54 pmurias [Coke]: I'm working on implementing nqp::capturenamedshash on the jvm to unbreak the test
11:54 lizmat yeah
11:54 dalek rakudo/nom: 280a487 | coke++ | docs/announce/2016.02.md:
11:54 dalek rakudo/nom: bring back text about changelog
11:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/280a487eb3
11:58 pmurias [Coke]: it seems like having travis warn when the nqp-jvm test suit is broken would be great
12:00 WizJin joined #perl6
12:02 [Coke] aye
12:09 _mg_ joined #perl6
12:09 vendethiel joined #perl6
12:14 timotimo so we'll remove it from the "allowed to fail" parts?
12:21 pmurias jnthn: nqp::capturenamedshash is supposed to return only those named parameters that would end up in the slurpy nameds?
12:22 timotimo pmurias: it looks like its first argument is a capture and it returns the nameds part of it
12:22 timotimo no, not a capture
12:23 timotimo MVMCallCapture is the underlying REPR, not like a perl6-level capture
12:24 jnthn pmurias: All named args, captures don't know about slurpies and stuff, that's a signature side thing
12:25 ely-se joined #perl6
12:29 pmurias jnthn: that should be 2 oks? http://paste.scsys.co.uk/506031
12:30 zpmorgag joined #perl6
12:31 jnthn pmurias: Hm, interesting
12:31 vendethiel joined #perl6
12:31 jnthn I think it's not typically used in conjunction with a signature
12:31 jnthn Probably it should say ok for both of those, though
12:32 jnthn But clearly we don't depend on it doing so anywhere :)
12:34 * pmurias hates backend differences
12:38 brrt my first real perl6 program :-) https://github.com/bdw/lab/blob/master/perl/csv-to-rst-table.pl6
12:38 sufrostico joined #perl6
12:38 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:39 DrForr Careful, more of those and people might think this is production ready.
12:39 brrt hahaha timotimo
12:39 brrt i'll tell you the real problem.... i install rakudo and nqp and stuff from source, right?
12:39 * |Tux| shuts up
12:39 brrt means i don't get panda
12:39 timotimo um, what? :)
12:40 timotimo that does not mean you don't get panda
12:40 timotimo that'd be silly
12:40 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
12:41 brrt suggestion, we could make install-panda target in rakudo?
12:41 timotimo git clone git@github.com:tadzik/panda; cd panda; ./bootstrap.pl
12:41 timotimo there you go
12:41 brrt fair point
12:42 brrt i am being unreasonably lazy
12:44 sufrostico joined #perl6
12:47 pmurias manually installing panda is annoying. it's the biggest reason to use rakudobrew
12:48 timotimo i did not know that
12:50 DrForr rakudobrew on my linode is having an issue.
12:51 kolikov joined #perl6
12:51 timotimo running out of ram perhaps?
12:51 kolikov Hi perl6 !
12:51 timotimo ohai kolikov
12:52 domidumont joined #perl6
12:52 DrForr Don't remember what the issue was.
12:53 masak hi kolikov
12:53 brrt pmurias, but i have good reasons not to use rakudbrew, chief among which, i hack moarvm :-)
12:54 RabidGravy joined #perl6
12:54 * brrt is now installing Text::CSV
12:54 DrForr Hrm, can't find moar-nom/nom in git.
12:54 brrt moar is on master?
12:55 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 ?
12:56 DrForr Sigh. time to RTFM but I was hoping that 'rakudobrew build moar' worked out of the box.
12:56 dalek nqp: a838545 | (Pawel Murias)++ | t/nqp/76-capture.t:
12:56 dalek nqp: Stop brokenly testing for something we don't support across all backends.
12:56 dalek nqp: review: https://github.com/perl6/nqp/commit/a838545c9e
12:56 dalek nqp: 6327fc9 | (Pawel Murias)++ | / (3 files):
12:56 dalek nqp: Implement nqp::capturenamedhash on the JVM.
12:56 dalek nqp:
12:56 dalek nqp: Test for accessing native nums and strs using it.
12:56 dalek nqp: review: https://github.com/perl6/nqp/commit/6327fc94f1
12:59 vendethiel joined #perl6
13:01 DrForr rakudo.org needs to rename 'How to get Rakudo Perl 6' to 'Download' :)
13:02 nine pmurias: what's so annoying about installing panda? It's just git clone git@github.com:tadzik/panda.git && cd panda && perl6 bootstrap.pl
13:03 DrForr Inasmuch as it took *me* a minute or two of staring at the page looking for the 'Download' link.
13:09 brrt kolikov: yes, sure you can
13:10 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 luiz_lha joined #perl6
13:10 brrt DrForr: well volunteered :-P
13:10 brrt in seriousness, i very much agree
13:10 brrt we need lazy-people-installers
13:10 timotimo DrForr: i think you have to "rakudobrew self-upgrade" or what's it called
13:11 DrForr timotimo: I didn't have the correct repo installed.
13:11 brrt of the type curl http://get.rakudo.org/ | bash
13:11 kent\n "Download / Source", that way you can put either of those things there and people will find it.
13:11 brrt https maybe
13:11 brrt well, i can also accept, curl https://get.rakudo.org/ | perl
13:12 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 :-)
13:12 brrt but yeah
13:12 DrForr I agree about the 'curl...' thing as well, but baby steps :)
13:13 * brrt nods
13:13 bhm joined #perl6
13:13 kolikov Thanks !
13:13 brrt on the other hand, sooner the better
13:14 timotimo DrForr: but rakudobrew is supposed to install repos for you
13:14 DrForr timotimo: Yes, and it has, but I had the wrong version installed initially.
13:16 bhm joined #perl6
13:18 bhm joined #perl6
13:19 timotimo huh
13:19 timotimo still not sure how your configuration looked, but i guess you made it work now :)
13:19 dbrock joined #perl6
13:20 DrForr Naah, just nuked the .rakudobrew directory and recloned.
13:21 DrForr But my point about 'Download' still stands :) Is there a repo I can make the change in?
13:22 dbrock left #perl6
13:23 [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:25 El_Che [Coke]: you too working on a perl6 docker? :)
13:25 [Coke] There already is one.
13:25 El_Che [Coke]: I know
13:25 El_Che I was working to include apps
13:26 El_Che < on something
13:26 dalek rakudo/nom: 7d8d67e | lizmat++ | docs/ChangeLog:
13:26 dalek rakudo/nom: Punctuation fix
13:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7d8d67ee93
13:26 [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.
13:27 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 El_Che seems to works fine, but I want to get rid of the rakudo compiling step
13:28 El_Che looking at options on how to create a basic package automatically
13:28 El_Che that would make every dependant image a lot less verbose (and it will not takes ages to build)
13:29 El_Che 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
13:30 brrt i only know 'dependent'
13:30 * [Coke] thinks so
13:30 El_Che you should see my monocle in combination, with my stiff lip
13:30 brrt El_Che: what about building an rpm/deb (if necessary, in one docker container), and installing it in the other
13:30 El_Che brrt: yes, that's the idea
13:31 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 #perl6
13:31 Ven .u ????
13:31 yoleaux U+FFFC OBJECT REPLACEMENT CHARACTER [So] ()
13:32 brrt .u sun
13:32 yoleaux U+0E82 LAO LETTER KHO SUNG [Lo] (ຂ)
13:32 yoleaux U+0E96 LAO LETTER THO SUNG [Lo] (ຖ)
13:32 yoleaux U+0E9C LAO LETTER PHO SUNG [Lo] (ຜ)
13:32 brrt .u star
13:32 yoleaux U+0001 START OF HEADING [Cc] (␁)
13:32 yoleaux U+0002 START OF TEXT [Cc] (␂)
13:32 yoleaux U+0086 START OF SELECTED AREA [Cc] (<control>)
13:33 kid51 joined #perl6
13:36 ChoHag joined #perl6
13:47 hoelzro [Coke]: yes
13:51 Psyche^_ joined #perl6
14:06 autarch joined #perl6
14:18 dalek DBIish/oracle: 983e4b1 | (Salvador Ortiz)++ | .gitignore:
14:18 dalek DBIish/oracle: Update .gitignore
14:18 dalek DBIish/oracle: review: https://github.com/perl6/DBIish/commit/983e4b1da5
14:18 dalek DBIish/oracle: abf4dde | (Salvador Ortiz)++ | lib/DB (2 files):
14:18 dalek DBIish/oracle: Fix dinamic drivers loading
14:19 dalek joined #perl6
14:21 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.
14:22 Woodi http://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
14:25 moritz fwiw I'm considering using docker for testing rakudo
14:25 moritz I want to have a multi-stage test, and need to move a built rakudo between the stages
14:26 moritz 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?
14:27 moritz hoelzro: I don't understand your question
14:27 moritz my docker fu is rather weak :(
14:28 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
14:28 moritz no, not at first
14:28 moritz just one base image
14:28 moritz and build and install rakudo there
14:28 moritz and then, next stage: run "make spectest", once against the "master" branch of roast, and once against the 6.c-errata branch
14:29 moritz and if both succeed, bootstrap a panda (or maybe straight R*) inside the container
14:29 moritz does that sound vaguely sane and workable?
14:30 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:32 Woodi mid-dayly to :)
14:32 moritz hoelzro: smoke testing mostly; but if there's interest, I might publish them too
14:32 hoelzro ah, ok
14:32 hoelzro is this something you need docker for? it seems like you could do this with Travis
14:33 moritz I want to fast-forward a branch to the last successful commit that passed all my tests
14:33 moritz can travis do that?
14:33 moritz and does travis allow full spectest runs?
14:33 Woodi moritz: I don't understand "need to move" part (which requires docker)...
14:34 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? :-)
14:34 hoelzro the 20 minute (iirc) limit is imposed on the free tier
14:34 hoelzro moritz: no idea, but probably just one =/
14:34 hoelzro you could use the travis API to query builds and see which commits are and are not passing the build
14:34 hoelzro s/build$/spectest/
14:35 hoelzro 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
14:35 [Coke] http://rakudo.org/downloads/rakudo/ - 2016.02
14:35 moritz Woodi: and that's not how such tools work; they create a new temporary directory for each run
14:36 [Coke] please give it a shot before I push the rakudo tag.
14:36 moritz [Coke]++
14:36 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
14:36 Woodi moritz: chroot inside temp dir can't help ?
14:36 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
14:37 moritz Woodi: chroot needs root :(
14:37 moritz though docker might too
14:37 geekosaur and a fair amount of setup
14:37 moritz flussence: it needs a build and two spectest runs for what I have in mind
14:37 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
14:37 dalek ecosystem: 8beed42 | lizmat++ | META.list:
14:37 dalek ecosystem: Add PackUnpack (P5's pack/unpack)
14:37 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/8beed424fa
14:37 timotimo lizmat++ # PackUnpack
14:38 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
14:38 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
14:38 Woodi right... debian have fakeroot which "fakes" root :)
14:38 vendethiel joined #perl6
14:39 Woodi used for building packages
14:39 cdg joined #perl6
14:39 d4l3k_ joined #perl6
14:42 brrt yay, pack/unpack implementation!
14:42 brrt lizmat++
14:42 brrt fwiw, lizmat, why use MONKEY-TYPING
14:42 DrForr Great, so I can work on another module...
14:43 lizmat brrt: ah, not needed now, but later when augmenting classes to get the method versions in
14:43 masak joined #perl6
14:43 brrt aha, ok :-)
14:44 jnthn lizmat: Consider if they're really needed, given that MONKEY-TYPING is precomp-hostile
14:44 jnthn (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 #perl6
14:44 lizmat jnthn: ah, then I guess I'll leave the monkey patching up to the users  :-)
14:45 lizmat since it is a P5 emulation, having only the sub versions should be fine, I guess
14:46 jnthn :)
14:46 [Coke] jnthn: should MONKEY-TYPING imply no precomp?
14:46 [Coke] seems like something users will forget and then get shot by
14:47 jnthn [Coke]: Very possible, yes
14:47 jnthn *possibly
14:47 timotimo we don't merge that stuff properly at all, eh? probably can't.
14:47 jnthn timotimo: I don't think we sensibly can
14:47 dh7320 joined #perl6
14:48 jnthn It'll provide some pressure to put any monkey patches close to the application level rather than deep in the dependency chain.
14:49 synopsebot6 joined #perl6
14:49 xinming_ joined #perl6
14:54 skids joined #perl6
14:56 * [Coke] reads this as monkey patching being our source filters. :)
14:59 prammer joined #perl6
14:59 pmurias it would be usefull to have a way to enable a warning when something is not being precompiled
15:02 pmurias if MONKEY-TYPING stops precompilation it's seems it will provide some pressure to not use it *EVER* ;)
15:04 pmurias (not that's necessarily a bad thing ;)
15:10 lizmat perhaps augment blocks should really be stored as source, to be compiled when loading precomp ?
15:10 lizmat at the INIT phase ?
15:10 El_Che moritz: you can put the rakudo directory in a docker volume or in a volume container
15:11 brrt m: my $a = 45; my $b = 8; say $a mod $b;
15:11 camelia rakudo-moar 7d8d67: OUTPUT«5␤»
15:11 brrt hmmm
15:14 luiz_lha joined #perl6
15:18 lizmat hmmm... do we have a quick way to check if something is white space in the .unixxx department, I mean ?
15:20 sjoshi joined #perl6
15:21 jnthn m: say uniprop ' '
15:21 camelia rakudo-moar 7d8d67: OUTPUT«Zs␤»
15:21 jnthn m: say uniprop "\n"
15:21 camelia rakudo-moar 7d8d67: OUTPUT«Cc␤»
15:21 lizmat Zs or Cc then ?
15:21 jnthn Well, Cc is any control char
15:21 jnthn Taht's the general category
15:21 cognominal joined #perl6
15:21 lizmat ah...  hmmm....
15:21 jnthn Hm, lemme check what \s does
15:23 brrt omg, perl6 is actually fun
15:23 jnthn m: say uniprop "\n", "White_Space"
15:23 camelia rakudo-moar 7d8d67: OUTPUT«1␤»
15:23 jnthn m: say uniprop " ", "White_Space"
15:23 camelia rakudo-moar 7d8d67: OUTPUT«1␤»
15:23 jnthn m: say uniprop "x", "White_Space"
15:23 camelia rakudo-moar 7d8d67: OUTPUT«0␤»
15:23 [Coke] lizmat: do you need a pushed tag for your p6w or a release announcement?
15:23 jnthn lizmat: That's what \s does, modulo an ASCII-space optimization
15:23 lizmat [Coke]: release announcement, really
15:24 [Coke] er, or just a tarball.
15:24 [Coke] guessing... right.
15:24 [Coke] Alright. no one objects to the tarballs (they never do) I'll send out an announcement shortly.
15:27 lizmat [Coke]++
15:30 brrt .... did you know that
15:30 brrt 499 is prime, as is 4,999, as is 49,999, but not 49 or 499,999
15:31 DrForr repunit primes :)
15:32 Woodi oo, so easy to get some big, random prime ?
15:32 brrt i had no idea
15:34 jnthn .oO( RepUnit::Compo )
15:35 dalek rakudo/nom: 6b05c84 | coke++ | docs/announce/2016.02.md:
15:35 dalek rakudo/nom: fix grammar-o
15:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b05c84971
15:35 Woodi do gpg still gives choice of  _two_ "hi-quality large prime numbers" ? :)
15:35 [Coke] 2016.02 compiler release cut
15:35 Woodi tada ! :)
15:35 lizmat [Coke]++
15:36 |Tux| [Coke]++
15:36 RabidGravy Boom!
15:36 RabidGravy [Coke]++
15:36 khw joined #perl6
15:37 Skarsnik joined #perl6
15:37 vendethiel joined #perl6
15:38 stmuk_ [Coke]++
15:39 brrt [Coke]++
15:39 hoelzro [Coke]++
15:39 [Coke] You're welcome, but I just pulled the trigger. :)
15:44 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:45 |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
15:57 Skarsnik It's me that did that I think, for the ?USAGE thingy with main
15:58 Skarsnik Did I broke something? x)
16:00 mr-foobar joined #perl6
16:01 kid51 joined #perl6
16:06 vendethiel joined #perl6
16:10 raiph joined #perl6
16:12 CIAvash joined #perl6
16:14 dalek DBIish/oracle: b3bcd38 | RabidGravy++ | lib/DBDish.pm6:
16:14 dalek DBIish/oracle: needs to be 'package' to avoid merge fault
16:14 dalek DBIish/oracle: review: https://github.com/perl6/DBIish/commit/b3bcd38cb5
16:14 dalek DBIish/oracle: 61c27c9 | RabidGravy++ | lib/DBIish.pm6:
16:14 dalek DBIish/oracle: Reformat
16:14 dalek DBIish/oracle: review: https://github.com/perl6/DBIish/commit/61c27c9f7e
16:16 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
16:17 RabidGravy it's just some of the type comparisons and I still can't work out where they are coming from
16:21 Skarsnik RabidGravy, paste the error or they are visible on travis?
16:22 noninc joined #perl6
16:23 RabidGravy https://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
16:23 RabidGravy I'm sure someone who is sufficiently motivated could fix it in a few minutes
16:23 lizmat [Coke]: are you going to post the 2016.02 announcement somewhere with a URL ?
16:24 lizmat if so, please s/noq/now/    :-)
16:24 Actualeyes joined #perl6
16:24 RabidGravy Skarsnik, I'm not sure, part of abraxxa's change was altering that
16:25 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
16:26 abraxxa Skarsnik thinks DBIish despite its name and unversioned-ness has to not break its API
16:26 dalek rakudo/nom: 5a683a8 | lizmat++ | docs/announce/2016.02.md:
16:26 dalek rakudo/nom: Fix typo in announcement
16:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5a683a8997
16:26 Skarsnik It's not really me
16:26 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 #perl6
16:27 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 Skarsnik abraxxa, fill an issue so people can talk about it probably
16:28 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 #perl6
16:29 noninc see also https://gist.github.com/NonsenseInc/408c39ae66892fc8e497
16:29 average joined #perl6
16:30 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 #perl6
16:30 Skarsnik Yes, I actually commented about the issue, but nobody care to answer x)
16:31 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
16:31 geekosaur I don'tknow, that's part of why the o.O
16:32 geekosaur it's ... odd, to say the least
16:32 ugexe im guessing Shell::Command doesnt work on windows
16:32 stmuk_ noninc: which C compiler where you using?
16:32 ugexe notice in that gist above that zef gets further
16:32 Skarsnik The easy fix is remove all the fetch_ code and just call row and allrows in them x)
16:32 ugexe fails testing at Shell::Command
16:32 noninc stmuk_: none. downloaded the installer
16:32 nemo hm
16:32 nemo haven't seen zoffix in ages
16:32 nemo what happened to him?
16:33 Skarsnik .seen ZoffixW
16:33 yoleaux I saw ZoffixW 16 Feb 2016 17:29Z in #perl6: <ZoffixW> Thanks!
16:33 stmuk_ noninc: you will need one to build either readline or linenoise unfortunately
16:33 MadcapJake .tweet @zoffix
16:33 MadcapJake .tw @zoffix
16:33 yoleaux Sick AF :( #FML (@zoffix)
16:33 MadcapJake nemo, ^^
16:34 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
16:34 nemo hm
16:34 nemo yeah. been a while
16:34 nemo ah. that sucks
16:35 stmuk_ noninc: I'm not sure .. I think you are more likely to succeed with mingw with linenoise at least
16:37 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 noninc t/01-basic.t .." I guess it is no ready for windows environment atm. Will try msys
16:38 noninc thanks anyway
16:38 Skarsnik hm
16:38 ugexe `zef --force install Linenoise` might work for what you want
16:38 Skarsnik well the repl does not work?
16:38 ugexe if nothing actually uses Shell::Command
16:38 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 #perl6
16:40 kurahaupo joined #perl6
16:40 kurahaupo joined #perl6
16:40 noninc ugexe: https://gist.github.com/NonsenseInc/b0eafc16c122d5dfac9e
16:40 noninc yah missing the compiler now
16:40 noninc will fix
16:41 MadcapJake APL Demonstration 1975: https://www.youtube.com/watch?v=_DTpQ4Kk2wA
16:41 ugexe heh, yeah the --force will blow past any error, including that new `nmake` one
16:41 * perlpilot wonders how long before we get "Strawberry Perl 6" ...
16:41 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
16:42 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
16:42 perlpilot MadcapJake: bummer.
16:42 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)
16:43 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?
16:43 MadcapJake perlpilot, yeah definitely, they did say we could go ahead and do it on our own, but isn't the application due tomorrow? :P
16:43 ugexe noninc: if you have VS2013 you can use the "VS2013 x64 Cross Tools Command Prompt" which should have nmake in its PATH
16:44 Hotkeys That's what I used for a while
16:44 perlpilot MadcapJake: Feb 19 1900 UTC was the mentoring org application deadline
16:45 MadcapJake haha nice
16:45 MadcapJake i got the go ahead to do it on our own on the 20th xD
16:45 ugexe this is the main reason i'm against Build.pm having dependencies on package managers fwiw
16:45 Hotkeys I was thinking of doing gsoc next year
16:45 noninc success! https://gist.github.com/NonsenseInc/c04d7df2916795552cea
16:46 * MadcapJake is considering creating a module that implements APL operators :P
16:46 Hotkeys Lol
16:46 noninc ugexe: Now it's only the tests failing but the install seems to succeed
16:46 MadcapJake Hotkeys, seriously though a bunch of this stuff is *very* close to how P6 already does it
16:47 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
16:47 Hotkeys Can we do partial views of shaped arrays yet?
16:47 _mg_ joined #perl6
16:48 noninc ngexe: nope. C:\Program Files (x86)\Microsoft Visual Studio 14.0>perl6
16:48 noninc 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'
16:48 noninc Continuing without tab completions or line editor
16:48 noninc You may want to consider using rlwrap for simple line editor functionality
16:49 ugexe darn. Shell::Command must be getting used somewhere to copy/move a file...
16:50 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 Actualeyes joined #perl6
16:51 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
16:52 noninc that's great! though I'm afraid I'll have to leave for a moment. I'll be back later. Thank you.
16:56 vendethiel joined #perl6
17:00 neilb joined #perl6
17:02 dalek DBIish/oracle: 4b2c474 | RabidGravy++ | t/lib/Test/DBDish.pm6:
17:02 dalek DBIish/oracle: Fix test expected results for the time being
17:02 dalek DBIish/oracle: review: https://github.com/perl6/DBIish/commit/4b2c4747fd
17:03 wamba joined #perl6
17:04 Skarsnik RabidGravy, for row typed return is expected x). I should fix that x)
17:05 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:06 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
17:06 moritz well, it was done for a reason (you can discuss if it's a good one)
17:07 Skarsnik oh putting positionnal before named?
17:07 moritz perl6 itself only considers options before the first positional argument
17:07 moritz (everything after the program file is considered options to the program, not to perl6)
17:07 Skarsnik yes, usage show named before positionnal
17:09 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
17:10 tadzik I've got multiple bug reports for panda saying that it sucks, and I don't disagree with them
17:10 tadzik especially since it's not really fixable without reimplementing the MAIN parser
17:10 tadzik (in the general case)
17:10 Skarsnik tadzik, oh you mean having to do panda --force install instead of panda install --force?
17:11 psch S19 speaks of < ++CMD --command-line-parser ++/CMD > (and has for around 7 years, apparently)
17:11 psch so there was at least an idea to have that pluggable anyway
17:11 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)
17:11 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
17:12 psch which means the MAIN parser probably needs decoupling and interface design or somesuch...
17:12 psch well, except if the design is to be changed... :)
17:12 hoelzro there's nothing preventing a module from implementing its own MAIN_HELPER than invokes MAIN in the way the author wants
17:12 tadzik Skarsnik: among other things, yes :)
17:12 Skarsnik RabidGravy, I will do that tomorrow if you prefer
17:12 hoelzro it's not spec'd, but IMHO, it really should be
17:12 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!
17:12 yoleaux MadcapJake: I'll pass your message to DrForr.
17:13 psch hoelzro: the S19 bit seems to be useful for exactly that, afaiu
17:13 psch hoelzro: as in, there's at least a hint that it's specced from how i read it
17:13 tadzik (speculated)
17:13 hoelzro I'll have to give S19 a look over
17:13 tadzik so now we only need some to write a module that implements a likeable MAIN_HELPER :)
17:14 RabidGravy Skarsnik, travis-ci appears to have 1 test failure of "unhandled data type 253" for mysql
17:14 Skarsnik duh
17:16 MadcapJake Skarsnik, tadzik, psch et al: wrt command-line parsing: https://github.com/rakudo/rakudo/pull/688
17:16 RabidGravy MYSQL_TYPE_VAR_STRING
17:16 hoelzro tadzik: indeed =)
17:19 MadcapJake any thoughts on that? I've tried it and it works for my module P6Dx
17:20 Skarsnik RabidGravy, oh that get changed, unhandled type were to be Str, https://github.com/perl6/DBIish/blob/oracle/lib/DBDish/mysql/Native.pm6#L35 but it's weird to get a VAR_STRING
17:20 Actualeyes joined #perl6
17:21 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 hoelzro for example, --git-dir in Git
17:22 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:23 RabidGravy Skarsnik, just chucking it in explicitly to see
17:23 psch i don't have a strong opinion
17:23 psch i mean, arguably any given perl6 program is a subcommand for the interpreter
17:23 MadcapJake hoelzro, is there an actual way to hook into the MAIN command line parser?
17:23 Actualeyes joined #perl6
17:23 psch and for those switches can't be arbitrarily placed
17:24 psch 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?
17:24 tadzik panda uses them since the dawn of time
17:24 dalek DBIish/oracle: 5697bd5 | RabidGravy++ | lib/DBDish/mysql/Native.pm6:
17:24 dalek DBIish/oracle: Add the missing MySQL type
17:24 dalek DBIish/oracle: review: https://github.com/perl6/DBIish/commit/5697bd5e05
17:25 hoelzro MadcapJake: yes
17:25 hoelzro provide your own MAIN_HELPER
17:25 hoelzro https://gist.github.com/hoelzro/7fd925b4f4617a5c46b5
17:25 hoelzro MadcapJake: ↑
17:26 vendethiel joined #perl6
17:28 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
17:29 hoelzro stmuk_: I think that such functionality would be useful as a standalone module
17:29 hoelzro but I don't know how lax we are to add another dependency to panda
17:29 hoelzro s/lax/loathe/
17:30 stmuk_ hoelzro: true but panda is a special case and probably should have minimal deps
17:30 hoelzro agreed
17:30 MadcapJake hoelzro, how does that callframe routine work?
17:30 hoelzro MadcapJake: callframe itself, or the MAIN_HELPER I wrote?
17:31 MadcapJake well the former but then due to it, also the latter :P
17:31 hoelzro I don't know how callframe works
17:31 hoelzro but MAIN_HELPER is implicitly set up by rakudo
17:32 MadcapJake oh, yeah no docs on it
17:32 hoelzro https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L741
17:32 hoelzro it's not spec'd
17:32 hoelzro but it should be, imo
17:32 hoelzro I think the MAIN processing logic should be overridable by modules
17:33 MadcapJake oh it's not?
17:33 MadcapJake what does the MAIN_HELPER do then?
17:33 hoelzro https://github.com/rakudo/rakudo/blob/nom/src/core/Main.pm
17:34 hoelzro MAIN_HELPER is the routine that goes through @*ARGS and calls MAIN with the proper arguments
17:36 hoelzro the fact that you can export a MAIN_HELPER that modifies how MAIN is called is an implementation detail
17:36 hoelzro 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.
17:38 jnthn I'm not sure that's the interface we want
17:38 ely-se joined #perl6
17:38 hoelzro jnthn: how do you think it should be done?
17:38 jnthn helper is a bad name for jsut about everything
17:38 hoelzro agreed on that =)
17:38 jnthn hoelzro: Not sure...though we probably don't want anything too much more complex
17:38 stmuk_ handler? :)
17:39 hoelzro MAIN-SETUP?
17:39 hoelzro CALL-MAIN-MAYBE?
17:40 SCHAAP137 joined #perl6
17:43 dalek DBIish/oracle: 67953e2 | RabidGravy++ | lib/DBDish/mysql/StatementHandle.pm6:
17:43 dalek DBIish/oracle: MySQL didn't handle Num
17:43 dalek DBIish/oracle: review: https://github.com/perl6/DBIish/commit/67953e2062
17:44 RabidGravy sorry about the noise with this but I really don't want to install MySQL to test this
17:47 Hotkeys I should probably like
17:47 Hotkeys actually write the pluralize module that I made a repo for
17:49 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 ilmari s/\?/??/; s/:/!!/;
17:50 RabidGravy ilmari, very probably someone could do that yes, please feel free.
17:51 [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 ?
17:51 ilmari RabidGravy: I don't actually use perl6 (yet) nor mysql (any more), so…
17:51 lizmat OTOH, things have changed
17:51 ilmari just doing drive-by code review ;-P
17:52 lizmat [Coke]: personally, I wouldn't mind seeing compiler release announcements post-christmas at blog.perl.org
17:53 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 vendethiel joined #perl6
17:53 ilmari RabidGravy: fair enough
17:59 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
18:01 sufrostico joined #perl6
18:02 [Coke] lizmat: http://blogs.perl.org/users/coke/2016/02/rakudo-2016-02.html
18:02 lizmat [Coke]++
18:02 [Coke] fixing formatting...
18:02 El_Che [Coke]: looking forward to put it in a container :)
18:03 * [Coke] tries to figure out how the hell to edit a post on blogs.perl.org
18:03 lizmat [Coke]: you can't, afaik  :-(
18:04 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!
18:04 [Coke] Going forward in changelog, can we use .md style bullets?
18:05 DrForr http://theperlfisher.blogspot.ro/2016/02/from-regular-expressions-to-grammars-pt_20.html
18:06 [Coke] lizmat: had to click "post" in the menu.
18:06 musiKk joined #perl6
18:06 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.
18:06 yoleaux DrForr: I'll pass your message to MadcapJake.
18:06 DrForr lizmat: Heh, thanks.
18:06 MadcapJake yeah that and the GET('/') wasn't working, I got it to work with GET() though
18:06 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 #perl6
18:07 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
18:07 MadcapJake it just would send `text/plain`
18:08 sufrosti1o joined #perl6
18:09 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:10 raiph joined #perl6
18:11 DrForr Dependency fixed, will be added when I push. Along with the '/' bug.
18:11 spider-mario joined #perl6
18:12 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:14 lizmat dinner, will be checking for any other news fit to be printed here after that&
18:19 Actualeyes joined #perl6
18:23 kid51 joined #perl6
18:24 vendethiel joined #perl6
18:25 average I would like to see p6 have a good and robust Pg driver and Greenplum driver
18:26 average 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 average from my point of view, since p6 is emerging and slowly moving into mainstream, this is a good move
18:26 average Greenplum is one of the most underrated under-the-radar but amazing Pg forks of them all
18:27 DrForr Well volunteered, sir! :)
18:27 average haha !
18:27 average I can only raise some awareness to what will happen in 2016
18:28 average in 2016 you will hear more about Pg than you will about Hillary and Trump
18:28 DrForr Does DBIish cover Pg yet?
18:28 average this will soon take place, just wait till 9.6 rolls out, everyone will go crazy
18:29 average 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 #perl6
18:30 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 average DrForr: that's pretty good
18:30 crux joined #perl6
18:30 average DrForr: if there's already a driver for it, that's neat
18:30 xinming joined #perl6
18:32 average mind you, hipsters have already started to embrace Pg
18:32 DrForr blogs.perl.org II: Electric Boogaloo will run on it.
18:33 timotimo i've actually tried to watch Electric Boogaloo, but i didn't get past the initial dance battle
18:33 timotimo the first movie was decent, though
18:36 atweiden joined #perl6
18:38 DrForr I haven't actually watched it, I just use it as my canonical Version II string.
18:47 mspo average: our whole industry is driven by that culture
18:48 gensym joined #perl6
19:00 AlexDaniel joined #perl6
19:00 MadcapJake is there a syntax for creating partial functions?
19:02 firstdayonthejob joined #perl6
19:04 domidumont joined #perl6
19:04 saki joined #perl6
19:04 timotimo what culture, mspo?
19:04 mspo timotimo: trends and fads
19:05 timotimo ah
19:05 mspo although pg isn't exactly "new"
19:05 timotimo i've been telling people "pg is so much better than mysql" for *years*
19:05 timotimo even though i never knew if that's exactly true
19:06 timotimo 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.
19:06 DrForr MadcapJake: There's the equivalent of curry(), I forget what it's called, maybe partial().
19:06 timotimo DrForr: "assuming"
19:06 jdv79 has there been a shift in the popularity of mysql and/or pg lately?
19:06 mspo pg is more popular now
19:07 mspo than it used to be, I mean
19:07 nine As far as databases go, PostgreSQL is the answer.
19:08 MadcapJake DrForr, timotimo: thanks
19:09 mspo mysql has poor data integrity
19:10 mspo pg is more complex to use
19:11 RabidGravy I think I first used pg approximately twenty years ago, mysql was almost unusable then
19:12 RabidGravy (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.
19:12 timotimo nine: adding users and stuff is, like, so hard!
19:12 mspo yeah adding users and stuff :)
19:13 mspo coming from mysql, pg seems to add extra layers of stuff to think about
19:14 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:15 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
19:15 RabidGravy :)
19:16 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...?
19:16 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.
19:16 nine timotimo: or have a server crash
19:16 mspo I have replicas go out of sync all the time
19:17 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:17 buharin joined #perl6
19:18 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:19 firstdayonthejob joined #perl6
19:19 mspo pg has 40 years of history
19:19 mspo probably just takes a long time to start getting things right :)
19:20 * 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.
19:21 RabidGravy well having had this discussion about a squillion times I'd concur
19:22 mspo DBIsh should support all possible databases with maximum awesomeness on each
19:22 mspo and translate/support ? and $1 !
19:22 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 #perl6
19:23 DrForr And _n :)
19:24 mspo who uses _n ?
19:24 El_Che _nobody?
19:25 DrForr I might be thinking of ?n which I've seen somewhere.
19:26 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:27 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.
19:28 nine 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 remmie joined #perl6
19:29 lizmat nine: I think cleaning out would be an ok approach...
19:29 timotimo ah, right
19:29 ugexe i'll throw in my opinion: get rid of it as soon as possible
19:31 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?
19:32 jdv79 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:33 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
19:33 lizmat nine: feels to me the old dirs should be nuked on an upgrade
19:33 MadcapJake .u ‹
19:33 yoleaux U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK [Pi] (‹)
19:33 jdv79 or maybe that should be part of rpm/apt/whatever's jobs
19:33 nine lizmat: that assumes that only one version of rakudo accesses those precomp stores which is not necessarily true.
19:34 lizmat nine: otoh, if an older version would access it again, wouldn't it recreate them on the fly ?
19:34 MadcapJake .u ›
19:34 yoleaux U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK [Pf] (›)
19:35 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
19:36 lizmat otherwise a lot of files will stay behind...  :(
19:36 timotimo that's true, too
19:36 timotimo a year of perl6 development will net you 12 folders full of module sources and precompiled binaries
19:36 nine Nothing's as cheap as storage these days.
19:37 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.
19:37 timotimo well, not if we have a different folder structure each month :)
19:37 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 #perl6
19:38 nine timotimo: why would we have that?
19:38 nine gfldex: I'm not sure what you're getting at?
19:38 lizmat well, I recently cleaned out my spectest dirs from .precomp dirs...  that killed ~1500 files
19:38 remmie left #perl6
19:38 lizmat i run a lot of spectest  :-)
19:40 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.
19:40 nine gfldex: blindly removing precomp files _will_ waste the user's time when those files were actually still in use.
19:40 lizmat nine: depending on the file system, 5157 files could be a drag on performance
19:41 nine lizmat: that's also 33 different rakudo versions that were spec tested. Hardly a normal user's profile.
19:43 lizmat true
19:45 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.
19:45 nine gfldex: why would Bob even want to remove such files?
19:47 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.
19:48 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:49 mspo what if I run my app as a user with no home dir?
19:50 timotimo never precompile ever
19:50 ugexe not even once
19:51 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.
19:51 * hoelzro has memories of family thinking "that Java thing is a virus"
19:52 timotimo yes, me, too, hoelzro,
19:53 yqt joined #perl6
19:53 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' ?
19:54 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...
19:54 [Coke] define "safely". all precomp files can be safely removed.
19:54 musiKk joined #perl6
19:54 [Coke] no?
19:54 [Coke] Wouldn't the worst thing that would happen be that you end up regenerating it?
19:54 gfldex that's not the question
19:55 nine gfldex: it's always safe to delete .precomp directories
19:55 gfldex "how does the user _know_" is the important part
19:55 [Coke] because it's always safe.
19:55 gfldex now i feel like talking to a child
19:55 psch so Bob from accounting somehow is running enough different Perl 6 apps to generate 100mb of precomp files
19:55 [Coke] Yes, so perhaps rephrase your question.
19:56 remmie joined #perl6
19:56 psch that is approximately 18000 files precompiled
19:56 diakopter gfldex: perhaps you mean "find out" by know
19:56 psch err, 15500 actually vOv
19:56 perlpilot gfldex: Maybe it's in the FAQ?  "What are all these .precomp directories?  Can I delete them?"
19:56 sufrostico joined #perl6
19:56 sufrosti1o joined #perl6
19:56 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 atweiden could a /etc/rakudo.conf disable precomp globally and ~/.rakudo.conf disable precomp on a per-user basis?
19:57 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" ?
19:57 perlpilot timotimo: +1  if we're going to make them, we should own them.
19:57 [Coke] timotimo: better, rakudo-moar ?
19:57 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
19:57 timotimo hmm, not 100% sure about that
19:58 [Coke] timotimo: it's kind of moot at the moment, but when we start precomping jvm, we might care.
19:59 atweiden or maybe write precomp to /tmp
19:59 timotimo well, for that we have precomp files being called barbaz.moarvm
19:59 RabidGravy shouldn't it be in ~/.cache/perl6 or some such anyway?
19:59 RabidGravy or at least be configurable to be there
20:00 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:"
20:00 timotimo if you don't know what's up with that, you might be confused %)
20:00 stmuk_ 1. make it work 2. make it work fast 3. make it not use any diskspace!
20:01 rindolf joined #perl6
20:01 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??
20:01 DrForr Denial? :)
20:01 nine stmuk_++
20:05 nine Btw. my ~/.thumbnails directory takes 220MB and contains files with lovely names like 23d74740d3d515f34172d14dab4a00c7.png
20:06 atweiden i'm wondering, `container = $value.clone` DWIM with array values here:
20:06 atweiden 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
20:06 atweiden rl; say 'Array @container[2]: ', @container[2].perl;
20:07 atweiden 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"␤»
20:07 mspo perl6 isn't the same as firefox unless you are the developer
20:07 [Coke] (confused) this is why I post these things in advance of sending them out. :)
20:07 mspo to a user it is nothing
20:07 atweiden but this doesn't (s/\.clone//):
20:07 atweiden 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;
20:07 camelia rakudo-moar 5a683a: OUTPUT«Array @container.WHAT: (Array)␤Array @container: [("zero", "one", "two"),]␤Array @container[0]: $("zero", "one", "two")␤»
20:08 atweiden i'm not clear on what cloning does. why does cloning seem like the only way to get the DWIM result?
20:09 dfcarpenterak joined #perl6
20:09 brrt joined #perl6
20:10 kolikov left #perl6
20:11 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 buharin joined #perl6
20:11 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 gfldex smoothly.
20:12 nine gfldex: then please also make a suggestion on how exactly the software could clean up automatically.
20:12 zpmorgag joined #perl6
20:14 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 #perl6
20:14 brrt to some people, damnit cutof
20:14 brrt not to me
20:15 brrt 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*
20:15 lizmat https://p6weekly.wordpress.com/2016/02/22/2016-8-yacr/
20:15 brrt at one point one throws these things into .gitignore and forgets about them
20:15 lizmat another Perl 6 Weekly hits the net
20:15 brrt \o/
20:16 brrt anyway, i fully agree with nine that 100 mb diskspace is in the same category of annoying
20:16 brrt but not in any way a real usability failure
20:16 diakopter the .Net ngen cache can get into the GB
20:17 gfldex "that pile of shit is quite big already. Lets add more!" <-- i don't like that argument
20:17 jnthn lizmat++
20:18 brrt ok, gflxdex, please explain why .precomp directories are a usability issue, for you
20:18 kurahaupo joined #perl6
20:18 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:18 ab6tract joined #perl6
20:19 brrt (nine; evil locking schemes, obviously)
20:19 xiaomiao joined #perl6
20:20 leedo joined #perl6
20:20 dpk joined #perl6
20:20 sm0x joined #perl6
20:20 diakopter joined #perl6
20:20 Bucciarati joined #perl6
20:20 konobi joined #perl6
20:20 jantore joined #perl6
20:20 nemo joined #perl6
20:20 brabo joined #perl6
20:20 jferrero joined #perl6
20:20 lucs joined #perl6
20:20 sjohnson joined #perl6
20:20 keix joined #perl6
20:20 jnthn joined #perl6
20:20 rhr joined #perl6
20:20 alnewkirk joined #perl6
20:20 erdic joined #perl6
20:20 kurahaupo joined #perl6
20:20 diegok joined #perl6
20:20 eyck joined #perl6
20:21 tharkun joined #perl6
20:21 decent joined #perl6
20:21 mls joined #perl6
20:21 cfloare joined #perl6
20:21 inokenty joined #perl6
20:21 kurahaupo joined #perl6
20:21 DarthGandalf joined #perl6
20:21 rafl joined #perl6
20:21 shadowpaste joined #perl6
20:21 jervo joined #perl6
20:21 kurahaupo joined #perl6
20:21 esh joined #perl6
20:21 huf joined #perl6
20:22 ribasushi joined #perl6
20:22 Celelibi joined #perl6
20:22 dg joined #perl6
20:23 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 gfldex how are two different versions of rakudo handled anyway?
20:23 gfldex s/their/neither/
20:23 kurahaupo joined #perl6
20:24 kurahaupo joined #perl6
20:24 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:25 peteretep joined #perl6
20:25 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?
20:25 psch m: my ($even, $odd) = ^5 .classify: { $_ %% 2 }; say $even # perlpilot++
20:25 camelia rakudo-moar 5a683a: OUTPUT«True => [0 2 4]␤»
20:25 brrt you use a wizard
20:25 avar joined #perl6
20:25 avar joined #perl6
20:25 avarab joined #perl6
20:25 avarab joined #perl6
20:25 wtw joined #perl6
20:25 literal joined #perl6
20:25 crux joined #perl6
20:25 avar joined #perl6
20:25 avar joined #perl6
20:25 [Coke] let me back up a step here. gfldex - are you suggesting we don't do precomp at all?
20:26 [Coke] Or that we continue to do it, but in some other fashion.
20:26 gfldex i do not. precomp is a massive improvement on startup time. Unless that changes it's pretty much a requirement to have it.
20:27 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 lizmat even *if* they only take a little bit of disk space
20:27 ab6tract lizmat: thanks for the p6weekly. a ton of great links this week!
20:27 mithaldu_ joined #perl6
20:28 rudi_s perlpilot: psch: Thanks. But I'd have to still extract it out of the hash.
20:28 perlpilot indeed.  lizmat++
20:28 gfldex walking 2TB of files on NTFS (small company of 20is ppl) will take 30-60 minutes
20:28 john51 joined #perl6
20:28 pyrimidine lizmat++ # p6weekly
20:28 gfldex (that's 1.5M files)
20:28 brrt lizmat: i have to cleanup after python every so often, too
20:28 gfldex brrt: should you? do you enjoy it?
20:28 lizmat brrt: that's the wrong agument  :-)
20:28 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:28 lizmat *argument
20:29 ab6tract just finished reading 'Intro to Sixy Perl'. it says many things i've wanted said :)
20:29 ab6tract not sure who Finanalyst is though?
20:29 brrt gfldex: i accept it, is what imean
20:29 lizmat ab6tract: I'm just the messenger, no idea
20:29 rudi_s I guess I'll stick with classify and then assign the two lists manually. Not perfect but works. Thanks.
20:29 psch rudi_s: well, you can do that with a .values in the assignment to the two vars for example
20:30 psch m: my ($even, $odd) = (^5 .classify: { $_ %% 2 }).values; say $even #
20:30 camelia rakudo-moar 5a683a: OUTPUT«[0 2 4]␤»
20:30 rudi_s psch: Thought about that too but the order of .values is not guaranteed, is it?
20:30 [Coke] does intro to sixy perl live anywhere other than pastebin?
20:30 psch oh, right
20:30 ab6tract lizmat: the question was intended as a wideband enquiry :)
20:30 rudi_s m: sort (True, False)
20:30 camelia rakudo-moar 5a683a: ( no output )
20:31 rudi_s m: say sort (True, False)
20:31 camelia rakudo-moar 5a683a: OUTPUT«(False True)␤»
20:31 lizmat [Coke]: again, I didn't find it, but then I didn't look for it very well
20:31 rudi_s I guess I could sort it first.
20:31 rudi_s But feels a little ugly.
20:31 ab6tract while i have your attention though, i was curious if you had encountered this behavior on os x: https://rt.perl.org/Public/Bug/Display.html?id=127587
20:32 perlpilot rudi_s: you could just pull out the True/False values explicitly (no sorting)
20:32 Tld joined #perl6
20:33 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 #perl6
20:33 RabidGravy say  $*PERL.compiler.version.parts
20:33 RabidGravy m: say  $*PERL.compiler.version.parts
20:33 camelia rakudo-moar 5a683a: OUTPUT«[2016 2 3 g 5 a 683 a 8]␤»
20:33 psch m: my ($even, $odd); my @a = ^6; $odd = @a (-) ($even = @a.grep: * %% 2); say $odd
20:33 rudi_s perlpilot: Yeah. Still I'd like something like Haskel's partition in core perl6.
20:33 camelia rakudo-moar 5a683a: OUTPUT«set(5, 3, 1)␤»
20:34 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␤␤»
20:34 ab6tract hmmm.. now that i think about it that use of an anonymous state variable in my react block is probably a race condition..
20:34 psch ah shucks
20:34 [Coke] ab6tract: why "echo" and not "/bin/echo" ?
20:34 labster joined #perl6
20:34 ab6tract shouldn't matter with a periodic supply though
20:35 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.
20:35 brrt lizmat: you can watch the perl6 mp4s with vlc
20:35 psch well, that makes a set, and it doesn't look that great either
20:35 rudi_s perlpilot: Where are changes to the language spec discussed?
20:35 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.
20:35 [Coke] rudi_s: here.
20:35 perlpilot rudi_s: Right here.  :)
20:36 [Coke] or on the language list. Or via a pull request.
20:36 brrt ah, no, you can't
20:36 brrt they're broken halfway
20:36 ab6tract .seen finanalyst
20:36 yoleaux I saw finanalyst 18 Jan 2016 08:49Z in #perl6: <finanalyst> Fair comment
20:37 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.
20:37 perlpilot s/out/one/
20:37 perlpilot weird brain-o that
20:37 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!
20:37 gfldex may want to care about them too, because adoption of Perl 6 may very well be the source of your grant.
20:37 yoleaux ab6tract: I'll pass your message to finanalyst.
20:38 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
20:38 [Coke] ab6tract: not all in one file, it doesn't.
20:38 dfcarpenterak joined #perl6
20:39 [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.
20:39 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
20:40 ab6tract [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.
20:40 ab6tract :)
20:40 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?
20:40 [Coke] ab6tract: why would you not attach them as 2 files?
20:40 perlpilot rudi_s: That happens the other way around.  You implement something to prove that it should be part of the specs
20:40 [Coke] rudi_s: the spec is roast, not the synopses.
20:40 ab6tract (and i thought i had made it as easy as possible!)
20:41 [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 :(
20:41 [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/)
20:42 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?"
20:42 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.
20:43 ab6tract [Coke]: i didn't know that RT could do attachments that way! excellent
20:44 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.
20:45 [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.
20:48 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:49 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 colomon_ joined #perl6
20:49 perlpilot rudi_s: AS a first approximation, you can do this ...
20:49 perlpilot my ($even, $odd) = (^5 .classify: { $_ %% 2 }).{True,False};  say $even; say $odd;
20:50 perlpilot oops
20:50 perlpilot m: my ($even, $odd) = (^5 .classify: { $_ %% 2 }).{True,False};  say $even; say $odd;
20:50 camelia rakudo-moar 5a683a: OUTPUT«[0 2 4]␤[1 3]␤»
20:50 perlpilot wrap that in a routine.
20:50 gfldex lizmat: vlc 2.2.2 does play the videos (sort of)
20:51 lizmat gfldex: describe "sort of" ?
20:51 nine gfldex: we already have! perl6 -I/var/cache or PERL6LIB=/var/cache perl6
20:52 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.
20:53 nine 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 #perl6
20:55 sufrosti1o joined #perl6
20:55 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.
20:55 ab6tract nine: i would want the env var for the precomp _destination_
20:56 flussence https://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
20:56 nine flussence: seems like you closed that pull request yourself
20:56 ab6tract i guess you can mix and match, eh?
20:56 flussence nine: yes, and I said there it was the wrong fix :)
20:57 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 ?
20:57 perlpilot ab6tract: putting the precomp files in some specific location is only useful if rakudo can find them  :)
20:58 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
20:59 rudi_s perlpilot: Perfect. Thank you.
21:00 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 ab6tract but it mkaes sense
21:00 ab6tract *makes
21:06 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:08 brrt what if we did store it in ~/.rakudo
21:08 brrt or even ~/.local/rakudo/precomp
21:08 pmurias nine: having a cron job remove .precomp directories would be ultra horrible
21:08 brrt why should that not work....
21:09 snarkyboojum joined #perl6
21:09 dalek rakudo/nom: 620f4e6 | lizmat++ | src/core/ (2 files):
21:09 dalek rakudo/nom: Implement Buf.pop
21:09 dalek rakudo/nom:
21:09 dalek rakudo/nom: Wish I had noticed it being missing before.  I guess the only thing
21:09 dalek rakudo/nom: still missing now, is Buf.splice.
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/620f4e6346
21:12 flussence brrt: we need two things - a $*SPEC.cachedir method, and precomp needs to use it.
21:15 Ven joined #perl6
21:21 _dolmen_ joined #perl6
21:29 autarch1 joined #perl6
21:30 cdg joined #perl6
21:33 sortiz joined #perl6
21:34 sortiz \o #perl6
21:35 pmurias o/
21:37 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:38 sortiz [Coke]++ lizmat++ moritz++ # 2016-02
21:38 sufrostico joined #perl6
21:39 sufrosti1o joined #perl6
21:45 jnthn nine: That problem actually needs brainpower. :)
21:46 jnthn 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 jnthn And whatever the equivalent mechanism is on other platforms.
21:47 mr-foobar joined #perl6
21:48 ely-se joined #perl6
21:49 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 :-)
21:49 jnthn If you don't have time to make a good design, make an easy-to-make-right-later design. :)
21:50 jnthn (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:51 jnthn *nod*
21:51 jnthn Sounds good.
21:52 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:53 nine 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:54 nine $*REPO.id changes when adding/removing repos from the repo-chain and when installing a module to one of the chain's repositories.
21:55 nine 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:56 autarch joined #perl6
21:58 sufrostico joined #perl6
21:59 sufrosti1o joined #perl6
22:00 dalek doc: 531e97f | (Simon Ruderich)++ | doc/Type/List.pod:
22:00 dalek doc: List: add example to classify to split a list based on condition
22:00 dalek doc: review: https://github.com/perl6/doc/commit/531e97fa50
22:01 Ven joined #perl6
22:01 rudi_s perlpilot: Thanks for the classify example, I've added it to the documentation: https://github.com/perl6/doc/commit/531e97fa509e75fff9920828c45f778ed1df5d72
22:05 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:09 labster joined #perl6
22:24 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:25 raiph joined #perl6
22:27 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:29 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 remmie left #perl6
22:30 rudi_s Hm. This isn't trivial. The example would need a check to prevent double frees.
22:37 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:39 dalek nqp: 7fb352c | (Pawel Murias)++ | src/vm/js/ (8 files):
22:39 dalek nqp: Implement nqp::callercode by putting extra info on Ctxs rather then using arguments.
22:39 dalek nqp:
22:39 dalek nqp: This speeds up parsing JSON.
22:39 dalek nqp: review: https://github.com/perl6/nqp/commit/7fb352c831
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.
22:41 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:42 RabidGravy well a "phaser" block, not a function
22:42 sortiz It is a phaser, see http://doc.perl6.org/language/phasers#LEAVE
22:42 rudi_s Ah, thank you.
22:42 RabidGravy m: sub foo { LEAVE { say "byee" }; say "foo" }; foo()
22:42 camelia rakudo-moar 620f4e: OUTPUT«foo␤byee␤»
22:42 alpha123 joined #perl6
22:44 rudi_s moritz: sortiz: Proposed patches: https://pbot.rmdir.de/7YdAtV3LRD4XORT8xRWBJg 0002-nativecall-add-DESTROY-to-example.patch
22:48 dh7320 joined #perl6
22:48 sortiz rudi_s, Some on the line of:  sub Dowork { my $obj = FooH.new; LEAVE { $obj.free }; #... lot of work with $obj ... };
22:49 rudi_s sortiz: Yeah, thanks.
22:50 * lizmat calls it a day
22:50 lizmat good night, #perl6!
22:52 labster joined #perl6
22:52 sortiz 'night lizmat, well deserved rest.
22:58 jnthn Sleep for me also... 'night o/
22:58 vendethiel joined #perl6
22:59 sortiz 'night jnthn
23:00 thundergnat joined #perl6
23:00 sortiz rudi_s, In your example I would add "submethod DESTROY () { self.free if $!initialized; }"
23:02 thundergnat For anyone who may be interested re http://irclog.perlgeek.de/perl6/2016-02-09#i_12009620 See http://rosettacode.org/wiki/Pathological_floating_point_problems
23:02 firstdayonthejob joined #perl6
23:03 RabidGravy right that's enough for the day. toodles.
23:04 sortiz CY RabidGravy.
23:05 rudi_s sortiz: Did you look at the second patch?
23:05 rudi_s Should I use method DESTROY() or submethod DESTROY?
23:06 rudi_s Ah, I'm stupid, forgot the second URL.
23:06 rudi_s sortiz: https://pbot.rmdir.de/r3hNiM5diZKEK4nu_WSung
23:07 sortiz rudi_s, submethod is better.
23:08 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:11 sortiz Yes, If the class does the allocation, only that class can handle the de-allocation, it's safer imo.
23:12 TEttinger joined #perl6
23:13 rudi_s sortiz: Can the subclass overwrite new without calling the new of the parent-class?
23:15 sno joined #perl6
23:18 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: https://github.com/salortiz/p6-LMDB/blob/master/lib/LMDB.pm6#L323
23:19 skids joined #perl6
23:23 timotimo grondilu: what if i told you i've reached almost 40 fps? :)
23:25 adu joined #perl6
23:28 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:34 dh7320 joined #perl6
23:36 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:39 vendethiel joined #perl6
23:40 rudi_s Ok. Then I'll push it as is. Thanks for reviewing.
23:41 dalek doc: 109febd | (Simon Ruderich)++ | doc/Language/nativecall.pod:
23:41 dalek doc: nativecall: remove trailing whitespace
23:41 dalek doc: review: https://github.com/perl6/doc/commit/109febd0e6
23:41 dalek doc: 7867eca | (Simon Ruderich)++ | doc/Language/nativecall.pod:
23:41 dalek doc: nativecall: prevent potential double free in example
23:41 dalek doc: review: https://github.com/perl6/doc/commit/7867eca97b
23:41 dalek doc: 5dab080 | (Simon Ruderich)++ | doc/Language/nativecall.pod:
23:41 dalek doc: nativecall: add DESTROY to example
23:41 dalek doc: review: https://github.com/perl6/doc/commit/5dab0802c9
23:50 rudi_s When using nativecall, how can I handle different APIs depending on the architecture? Like different time_t?
23:52 timotimo for example with a custom sub EXPORT
23:52 timotimo that gives you either one or the other bunch of subs/classes
23:53 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:55 timotimo that's how i'd do it
23:55 timotimo oh
23:56 timotimo another thing that's probably easier:
23:56 timotimo you can have constant this_api_is_broken = int32
23:56 timotimo and that can depend on $*PERL or $*VM or whatever you need to figure out the architecture
23:57 rudi_s timotimo: Can I use that constant as parameter for the sub?
23:58 Juerd https://www.reddit.com/r/dailyprogrammer/comments/46zm8m/20160222_challenge_255_easy_playing_with_light/
23:58 rudi_s Btw. what am I'doing wrong when size_t causes this error: "Invalid typename 'size_t' in parameter declaration."
23:58 Juerd ^ Another challenge where the Perl 6 code is so much more readable than all the other ones.
23:58 timotimo yes, you can
23:59 timotimo rudi_s: i suppose we just don't expose size_t?
23:59 timotimo oh
23:59 timotimo we do expose that

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

Perl 6 | Reference Documentation | Rakudo