Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-11-01

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:00 dalek roast: 6e20c59 | coke++ | S02-types/hash_ref.t:
00:00 dalek roast: fudge for jvm (more self-referential issues)
00:00 dalek roast: review: https://github.com/perl6/roast/commit/6e20c592a9
00:00 dalek roast: 2e255c0 | coke++ | S03-metaops/cross.t:
00:00 dalek roast: more JVM/GLR fudges
00:00 dalek roast: review: https://github.com/perl6/roast/commit/2e255c02da
00:15 ugexe for a role that is composed into a class, is there any difference between `self.my-classes-method($arg)` and `$.my-classes-method($arg)` ? I ran into strange behavior where the former stopped worked when threads were involved and the later fixed it, but im not sure if it was just moving a thread bug or if there was an actual difference
00:18 ShimmerFairy ugexe: unless I'm mistaken  $.meth  is short for $(self.meth) -- maybe try itemizing the self version and see what happens ?
00:22 ugexe i will have to try that. im just worried when im changing that stuff that im changing the execution/memory enough to move the problem
00:39 [Coke] r: [[2, 3], [4, [5, 6]]]».squish.gist.say
00:39 camelia rakudo-moar d98dc8: OUTPUT«((2 3) (4 [5 6]))␤»
00:39 camelia ..rakudo-jvm d98dc8: OUTPUT«((2 3 Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new…»
00:41 [Coke] r: [[2, 3], [4, [5, 6]]]».squish.say
00:41 camelia rakudo-jvm d98dc8: OUTPUT«((2 3 Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new…»
00:41 camelia ..rakudo-moar d98dc8: OUTPUT«((2 3) (4 [5 6]))␤»
00:45 kjs_ joined #perl6
00:50 softmoth joined #perl6
00:51 dalek roast: da1ab4f | coke++ | S03-metaops/hyper.t:
00:51 dalek roast: fudge for JVM, new tickets
00:51 dalek roast: review: https://github.com/perl6/roast/commit/da1ab4fabe
00:51 ugexe r: my Blob $a = "a".encode; my Blob $b = "b".encode; $a ~= $b; say $a.perl; # has socket bust on jvm https://github.com/rakudo/rakudo/blob/nom/src/core/IO/Socket.pm#L16
00:51 camelia rakudo-moar d98dc8: OUTPUT«utf8.new(97, 98)␤»
00:51 camelia ..rakudo-jvm d98dc8: OUTPUT«java.lang.RuntimeException: This type does not support positional operations␤  in block <unit> at /tmp/tmpfile:1␤␤»
00:53 mr_ron m: https://gist.github.com/ronaldxs/8e62394e7edcd407caf5
00:53 camelia rakudo-moar d98dc8: OUTPUT«3 bottles of beer on the wall, 3 bottles of beer.  Take one down and pass it around, 2 bottles of beer on the wall.␤␤2 bottles of beer on the wall, 2 bottles of beer.  Take one down and pass it around, 1 bottle of beer on the wall.␤␤1 bottle of bee…»
00:53 mr_ron fixed part of it anyway ...
00:56 dalek roast: a152f36 | coke++ | S03-metaops/zip.t:
00:56 dalek roast: fudge for rakudo.jvm
00:56 dalek roast: review: https://github.com/perl6/roast/commit/a152f36b40
01:06 ugexe looks like jvm may be trying to call the stringy infix ~ instead of the Buf infix ~
01:09 ugexe hmm thats not it
01:12 mr_ron m: https://gist.github.com/ronaldxs/9eebbf721b93bc127aac
01:12 camelia rakudo-moar d98dc8: OUTPUT«3 bottles of beer on the wall, 3 bottles of beer.  Take one down and pass it around, 2 bottles of beer on the wall.␤␤2 bottles of beer on the wall, 2 bottles of beer.  Take one down and pass it around, 1 bottle of beer on the wall.␤␤1 bottle of bee…»
01:13 mr_ron suggestions for improvements on fix welcome ...
01:25 tokuhirom_h joined #perl6
01:25 tokuhirom_h joined #perl6
01:33 zengargoyle am i alone in finding the Search box on doc.per6.org plain annoying becuse it's automatically selected so when you hit <space> expecting to page down you instead get a pause and then a dropdown.
01:34 mr_ron left #perl6
01:39 lolisa joined #perl6
01:45 tokuhirom joined #perl6
01:48 raiph joined #perl6
01:57 leont op
02:19 Ben_Goldberg r: my Num $x = 5;
02:19 camelia rakudo-{moar,jvm} d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Can't assign a Int literal (5) to a Num variable. You can try 5e0 instead or use Real␤at /tmp/tmpfile:1␤------> 3my Num $x = 7⏏5;␤»
02:20 Ben_Goldberg r: my Int $x = 5e0;
02:20 camelia rakudo-{moar,jvm} d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Can't assign a Num literal (5) to a Int variable. You can try 5.floor instead or use Real␤at /tmp/tmpfile:1␤------> 3my Int $x = 7⏏5e0;␤»
02:20 Ben_Goldberg "a Num literal (5)" ?
02:21 Ben_Goldberg timotimo++, timotimo--
02:26 masak antenoon, #perl6
02:26 masak also, "or use Real" feels not so precise. my first thought was `5e0.Real`, which doesn't help at all :)
02:27 tokuhirom joined #perl6
02:30 mst masak: maybe you were just imagining it would
02:30 japhb masak: Antenoon?  What TZ are you in today?
02:31 mst I assume 'antenoon' is meant ala 'moin' to be a tz independent greeting
02:31 masak japhb: .cn
02:31 masak mst: no, it's that thing between 10:00 and 12:00 that's not really morning anymore
02:33 masak japhb: I guess the real answer is UTC+08:00
02:33 mst masak: that's the only bit of 'morning' I normally see.
02:34 masak I suspected you'd say something like that :P
02:34 japhb mst: That's the only bit of 'morning' that I generally *want* to see ... unfortunately, I almost always see a lot more of it.
02:56 dalek doc: 8361465 | (Tokuhiro Matsuno)++ | doc/Type/Array.pod:
02:56 dalek doc: Added missing semicolon
02:56 dalek doc: review: https://github.com/perl6/doc/commit/8361465646
02:59 Oatmeal joined #perl6
03:24 dalek rakudo-star-daily: f12d49a | coke++ | log/ (8 files):
03:24 dalek rakudo-star-daily: today (automated commit)
03:24 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/f12d49a19a
03:30 masak GNU Hurd 0.7 released. https://www.gnu.org/software/hurd/news/2015-10-31-releases.html
03:30 masak I find I'm in the same situation with GNU Hurd as I imagine many are with Perl 6.
03:31 masak namely, sure, OK, I see releases being made. nice. but how realistic would it be to use this for something that I already use (say) Linux Mint for?
03:32 dalek roast: c3e1c83 | coke++ | S03-operators/buf.t:
03:32 dalek roast: fudge for jvm, new ticket
03:32 dalek roast: review: https://github.com/perl6/roast/commit/c3e1c8307e
03:32 masak all I as an outsider see as evidence one way or another is that most people have not switched to GNU Hurd yet :) despite it being "0.7", whatever that means.
03:32 AlexDaniel .u ⦿
03:32 yoleaux U+29BF CIRCLED BULLET [Sm] (⦿)
03:34 masak .u ⦾
03:34 yoleaux U+29BE CIRCLED WHITE BULLET [Sm] (⦾)
03:40 dalek roast: 0a6592c | coke++ | S03-operators/increment.t:
03:40 dalek roast: fudge for jvm, new ticket
03:40 dalek roast: review: https://github.com/perl6/roast/commit/0a6592cfa5
03:48 AlexDaniel .u ⍿
03:48 yoleaux U+237F VERTICAL LINE WITH MIDDLE DOT [So] (⍿)
04:00 AlexDaniel I wish every unicode symbol also had a short explanation why it was added… ????????????????????????????????????????????????????????
04:01 vendethiel joined #perl6
04:05 TimToady .oO("This symbol was added because VERTICAL DOT WITH MIDDLE LINE makes no sense.")
04:11 AlexDaniel .oO( BOLD GREEK CROSS was added because since it is commonly used in handwriting; VERY BOLD GREEK CR…… )
04:12 AlexDaniel oops
04:12 masak .u ⽏⾇⾥⿁
04:12 yoleaux U+2F4F KANGXI RADICAL DO NOT [So] (⽏)
04:12 yoleaux U+2F87 KANGXI RADICAL OPPOSE [So] (⾇)
04:12 yoleaux U+2FA5 KANGXI RADICAL VILLAGE [So] (⾥)
04:12 masak .u ⿁
04:12 yoleaux U+2FC1 KANGXI RADICAL GHOST [So] (⿁)
04:12 * masak grins
04:12 dalek roast: ac74e3b | coke++ | S05-mass/properties-general.t:
04:12 dalek roast: refudge for jvm
04:12 dalek roast: review: https://github.com/perl6/roast/commit/ac74e3b0b8
04:12 dalek roast: e708736 | coke++ | S05-substitution/subst.t:
04:12 dalek roast: fudge for jvm
04:12 dalek roast: review: https://github.com/perl6/roast/commit/e7087369e3
04:18 masak this has been on my mind lately: do we have an example in Perl 6, 'sides quasi blocks and unquotes, of the OUTER:: chain being messed with? as in, it's set to something other than the surrounding block?
04:19 dayangkun joined #perl6
04:23 AlexDaniel .u ????
04:23 yoleaux U+1F195 SQUARED NEW [So] (????)
04:23 AlexDaniel no squared OLD though!
04:24 [Coke] RT: 1046; tests 11: JVM: 37; Moar: 17; LTA: 86; WEIRD: 10; XMAS: 67; GLR: 7; nom: 8
04:24 AlexDaniel .u ????
04:24 yoleaux U+1F192 SQUARED COOL [So] (????)
04:26 finanalyst joined #perl6
04:28 tokuhirom joined #perl6
04:31 ugexe heh i beat you rt126530 with rt126529
04:35 AlexDaniel .u ????????
04:35 yoleaux No characters found
04:35 AlexDaniel .u ????
04:35 yoleaux No characters found
04:40 softmoth joined #perl6
05:00 bpmedley joined #perl6
05:04 mattp_ joined #perl6
05:11 smash joined #perl6
05:17 integral joined #perl6
05:18 Jonis joined #perl6
05:19 jnthn joined #perl6
05:25 dalek nqp/backlog: 261e50c | (Jimmy Zhuo)++ | src/vm/jvm/ (6 files):
05:25 dalek nqp/backlog: expose the backlog arg for listen
05:25 dalek nqp/backlog: review: https://github.com/perl6/nqp/commit/261e50c8bb
05:32 kaare_ joined #perl6
05:36 weihan joined #perl6
05:44 * Sgeo vaguely wonders how autovivification compares/contrasts with Rust's Entry APIs for maps
05:44 yoleaux 17 Aug 2015 13:46Z <Ven> Sgeo: wrt http://irclog.perlgeek.de/perl6/2015-08-17#i_11067252 - I like clojure's namespaced dynamics, what do you think?
05:44 Sgeo Oops wow it's been a while since I talked here I guess
05:48 Sgeo http://examples.perl6.org/categories/best-of-rosettacode/accumulator-factory.html
05:48 Sgeo This page seems broken
05:51 TimToady a lot of the RC entries have been updated, so you might compare with what's on RC these days
05:51 _28_ria joined #perl6
05:52 TimToady though that one hasn't been update, and doesn't appear to need an update
05:53 Sgeo The example itself only says "use v6;"
05:54 Sgeo At least as displayed on that page
05:58 telex joined #perl6
06:05 masak TimToady: I've been thinking of a way to allow quasi blocks to set the parser mode. so `quasi @ Q::Trait { ... }` would mean "parse what comes inside the block as a trait" (syntax isn't set in stone; the idea's what's important)
06:05 masak TimToady: and the default `quasi { ... }` means `quasi @ Q::Expr { ... }`, because macros expand into expression tree fragments by default.
06:06 Ben_Goldberg m: https://github.com/perl6/perl6-examples/blob/master/categories/best-of-rosettacode/accumulator-factory.pl
06:06 camelia rakudo-moar d98dc8: ( no output )
06:07 masak TimToady: thinking of it this way, I find it weird and inconsistent that we even allow semicolons inside a quasi block -- if it's an expression only. would it make sense to forbid that by default, and train people to write `quasi @ Q::StatementList { ... }` in that case?
06:10 ShimmerFairy masak: I'd find it weird to _disallow_ semicolons, honestly. It feels like we'd be adding a third interpretation of { } . (Besides, isn't  do { foo; bar; }  considered an expression, and doesn't it also have semicolons? ☺)
06:23 masak m: my $foo = do { say("OH HAI"); 42 }; say $foo
06:23 camelia rakudo-moar d98dc8: OUTPUT«OH HAI␤42␤»
06:24 masak TimToady: an exception could be make for the usual `quasi { ... }` doing what ShimmerFairy just suggested. it'd then lead to the "extract value from last statement" semantics of https://github.com/masak/007/issues/7#issuecomment-69327526
06:24 masak and if someone wanted the stricter semicolon-less variant, they could explicitly say `quasi @ Q::Expr { ... }`
06:24 ShimmerFairy masak: @a[1;2;3] is another example of an expression with semicolons, so the semicolon detector in your suggestion would have to be more careful (and even then, ideally not fail if someone just liked ending their one expression with a semicolon)
06:25 masak that one is not a concern; I don't really mean "semicolons", I mean "a statement list". :)
06:28 softmoth joined #perl6
06:28 ShimmerFairy masak: Ah, that's what I brought up do { } for, though treating quasi { } as a kind of do { } might be the way to go anyway :)
06:28 masak s/make/made/
06:47 uruwi joined #perl6
07:11 quester joined #perl6
07:22 dalek rakudo/nom: 6089b25 | TimToady++ | src/core/Exception.pm:
07:22 dalek rakudo/nom: Better message on literal assignment type mismatch
07:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6089b25fa0
07:22 dalek rakudo/nom: eea721d | TimToady++ | src/Perl6/Optimizer.nqp:
07:22 dalek rakudo/nom: also catch assignment of Rat to Int/Num/Complex
07:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eea721dfc5
07:22 dalek rakudo/nom: 86aad9d | TimToady++ | src/core/Exception.pm:
07:22 dalek rakudo/nom: protect the conjectural coercion with a try
07:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/86aad9d438
07:22 dalek rakudo/nom: 38f4869 | TimToady++ | src/Perl6/Optimizer.nqp:
07:22 dalek rakudo/nom: catch assign of complex values to non-complex too
07:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/38f4869e42
07:24 dalek roast: 66377ae | TimToady++ | S02-types/type.t:
07:24 dalek roast: all combos of Int/Num/Rat/Complex literal assign
07:24 dalek roast: review: https://github.com/perl6/roast/commit/66377aeebf
07:24 xfix joined #perl6
07:27 quester p6: sub accum2 ($n is copy) { $n += * }; $a = accum2( 17 ); say $a( .3 ); say $a( 5i )
07:27 camelia rakudo-moar d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> 3sub accum2 ($n is copy) { $n += * }; 7⏏5$a = accum2( 17 ); say $a( .3 ); say $a(␤»
07:27 quester p6: sub accum2 ($n is copy) { $n += * }; my $a = accum2( 17 ); say $a( .3 ); say $a( 5i )
07:27 camelia rakudo-moar d98dc8: OUTPUT«17.3␤17.3+5i␤»
07:28 masak m: sub accum2($n is copy) { return -> $m { $n += $m }; my $a = accum2( 17 ); say $a( .3 ); say $a( 5i )
07:28 camelia rakudo-moar d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3yGzp6lMR0␤Missing block␤at /tmp/3yGzp6lMR0:1␤------> 3accum2( 17 ); say $a( .3 ); say $a( 5i )7⏏5<EOL>␤    expecting any of:␤        postfix␤        statement end␤        statement modifier…»
07:29 masak m: sub accum2($n is copy) { return -> $m { $n += $m } }; my $a = accum2( 17 ); say $a( .3 ); say $a( 5i )
07:29 camelia rakudo-moar d98dc8: OUTPUT«17.3␤17.3+5i␤»
07:29 masak quester: I'd write it like that. somehow it doesn't feel clear enough to use a WhateverCode for a nested routine.
07:32 dalek ecosystem: 2b3b1b9 | lestrrat++ | META.list:
07:32 dalek ecosystem: Add Crust::Middleware::Session
07:32 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/2b3b1b9b74
07:32 dalek ecosystem: 94a48b6 | moritz++ | META.list:
07:32 dalek ecosystem: Merge pull request #85 from lestrrat/patch-2
07:32 dalek ecosystem:
07:32 dalek ecosystem: Add Crust::Middleware::Session
07:32 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/94a48b6728
07:34 dalek perl6-examples: b559787 | (Ronald Schmidt)++ | categories/other/bottles.pl:
07:34 dalek perl6-examples: Fix 99 bottles of beer.  Dont know if best solution to GLR but at least it works.
07:34 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/b5597879d0
07:34 dalek perl6-examples: b206725 | moritz++ | categories/other/bottles.pl:
07:34 dalek perl6-examples: Merge pull request #36 from ronaldxs/master
07:34 dalek perl6-examples:
07:34 dalek perl6-examples: Fix 99 bottles of beer.
07:34 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/b20672548a
07:34 quester masak: Yes, now that you mention it, it is kind of obscure.  Sometimes golfing your code makes it clearer.  This... really isn't one of those times.
07:46 quester p6: say so "first second" ~~ rx/first/; say $/; say [or] <first second> X~~ ( rx/second/, rx/third/ ); say $/;
07:46 camelia rakudo-moar d98dc8: OUTPUT«True␤「first」␤True␤「first」␤»
07:47 quester That's odd... the [or] ... X~~ ... can determine that there is a match, but it doesn't set $/ at all.
07:49 quester I'm actually looking for a way to check if any of several variables match any of several keywords.  That part is working, but I would also like to get the keyword that matched.
07:53 Actualeyes joined #perl6
07:57 mj41 joined #perl6
08:07 masak quester: setting $/ sounds useful in that case.
08:07 masak quester: I have no sense of whether t'is "reasonable" to want.
08:08 masak I guess implementation-wise, [or] and [||] and the like are implemented as a reduce() routine calling the appropriate operator. there's a real chance $/ is correctly set inside of that reduce() call.
08:11 quester masak: It seems to be the X~~ that doesn't set $/, as far as I can tell.  I was just wondering if anyone happened to know offhand if that was intentional or has something to do with the metaop implementation.
08:12 ShimmerFairy m: say <first second> X~~ ( rx/second/, rx/third/ ); say $/;
08:12 camelia rakudo-moar 38f486: OUTPUT«(False False True False)␤Nil␤»
08:12 ShimmerFairy yeah, it's the X~~ part, not necessarily the [or] part :)
08:12 quester I suppose I'll just write it out as two nested loops and use a simple ~~ for the match.  That is working.
08:12 darutoko joined #perl6
08:13 ShimmerFairy quester: if possible, you can also represent the choices in one regex, e.g.  rx/ @foobar / will match against any of the elements of @foobar, IIRC
08:14 quester ShimmerFairy:  Oh!  Good idea... thanks.  Let me try that...
08:14 ShimmerFairy m: my @a = <foo bar baz>; say "bar" ~~ /@a/; say $/;
08:14 camelia rakudo-moar 38f486: OUTPUT«「bar」␤「bar」␤»
08:16 softmoth joined #perl6
08:19 quester p6: my @a=<third fifth seventh>; say so <fourth fifth sixth> ~~ / @a /; say $/
08:19 camelia rakudo-moar 38f486: OUTPUT«True␤「fifth」␤»
08:20 quester ShimmerFairy++
08:21 azawawi joined #perl6
08:21 azawawi hi
08:21 yoleaux 30 Oct 2015 18:51Z <pippo> azawawi: Thank you! And thank you for this great module. :-))
08:21 yoleaux 30 Oct 2015 23:29Z <pippo> azawawi: Found an asymmetric line in WebElement.pm6. In method "selected". Should the "element/$.id/selected" be "element/$($.id)/selected". Did not go through the code. Only asymmetry is bugging me. o/
08:26 azawawi ugexe: ping
08:27 quester left #perl6
08:27 azawawi .tell ugexe I was able to use zef on windows. Thanks for creating such a great tool. Please do keep up the awesome work.
08:27 yoleaux azawawi: I'll pass your message to ugexe.
08:28 * azawawi sees many module test failures on windows 7 machine
08:29 azawawi we're back to non-file structure in C:\rakudo\share\perl6\site ?
08:29 azawawi im seeing 0, ..., n named files
08:29 tokuhirom joined #perl6
08:35 azawawi so rakudo will use flat module structure from now onwards?
08:41 firstdayonthejob joined #perl6
08:42 azawawi .tell pippo thanks. fixed in https://github.com/azawawi/perl6-selenium-webdriver/commit/2fc4176b1422a64f413b069315b10d68fc14f753 :)
08:42 yoleaux azawawi: I'll pass your message to pippo.
09:03 RabidGravy joined #perl6
09:04 vendethiel joined #perl6
09:07 azawawi slow #perl6 traffic today
09:10 RabidGravy it's foggy outside
09:11 azawawi it is sunny here
09:11 masak kind of dusky here
09:11 [Tux] test             50000    37.647    37.536
09:11 [Tux] test-t           50000    39.170    39.058
09:11 azawawi .tell ugexe what's zef solution for the following code https://github.com/retupmoca/P6-Compress-Zlib-Raw/blob/master/Build.pm ?
09:11 yoleaux azawawi: I'll pass your message to ugexe.
09:12 aristotle joined #perl6
09:12 vendethiel m: SEQ(say("hey"); say("masak"));
09:12 camelia rakudo-moar 38f486: OUTPUT«hey␤masak␤»
09:12 aristotle http://jvns.ca/blog/2015/10/31/papers-are-amazing-profiling-threaded-programs-with-coz/
09:12 azawawi masak: so no lib directories again for modules... flat structure?
09:13 grondilu joined #perl6
09:13 aristotle this might have steal-worthy ideas for anyone working on profiling Perl 6 code
09:14 azawawi so what's im seeing right now, the windows support is subpar. zef works on it but most native modules refuses to work with zef :)
09:15 azawawi and panda refuses to install .bat scripts
09:15 * azawawi sighs
09:15 masak azawawi: I have no idea. haven't been involved in those changes...
09:16 aristotle left #perl6
09:17 azawawi masak: profiling/testing threaded applications becomes a real nightmare when you need to control actual external device state.
09:18 masak I see.
09:18 azawawi masak: some devices are by definition 'slow' can slow all threaded and cause bottlnecks of all sorts...
09:19 azawawi for example, when you take an image snapshot from a camera to be analyzed for face recognition. that's easy
09:19 azawawi imagine capturing n image snapshot from n cameras...
09:20 Begi1115 joined #perl6
09:22 azawawi the 20 ms delay from one camera snapshot can eventually result in a big accumulated delay in a multi-threaded environment
09:22 masak azawawi: does this have any bearing on Perl 6 that I'm missing?
09:22 * azawawi is just complaining... ignore :)
09:24 azawawi any interesting upcoming Perl 6 events?
09:30 moritz azawawi: well, I can think of something in December :-)
09:31 azawawi moritz: good morning
09:31 azawawi moritz: What about https://fosdem.org/2016/ ? do we have anything for it?
09:32 nine azawawi: Wendy is organizing that
09:32 lizmat good *, #perl6
09:32 lizmat we have a dev room on Sunday at FOSDEM, I believe
09:33 masak good *, lizmat
09:33 lizmat well, we have a dev room for sure, and I believe it to be on Sunday
09:33 vendethiel FOSDEM is in february like last year, right?
09:33 vendethiel or, er, end-of-jan
09:33 azawawi https://fosdem.org/2016/schedule/track/perl/ ?
09:33 lizmat no, it's the last weekend of Jan this time
09:35 RabidGravy in the the S22:META6 does anyone have any objection to my changing "superseded_by" to "superseded-by" on the grounds that I guess it isn't implemented anywhere yet and when it does get implemented it will wind up kebab case anyway
09:35 synbot6 Link: http://design.perl6.org/S22.html#META6_does_anyone_have_any_objection_to_my_changing
09:35 lizmat RabidGravy++
09:35 moritz azawawi: also, German Perl Workshop in 2016-03 will have Perl 6 content
09:35 RabidGravy whaddafuq
09:36 RabidGravy http://design.perl6.org/S22.html#META6.json that iis
09:39 zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my ((@c,$d)) = r; @c.say; $d.say; ((@c,$d)) = r; @c.say; $d.say;
09:39 camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤Cannot call method 'say' on a null object␤  in block <unit> at /tmp/IoH7lYUHb3:1␤␤»
09:39 lizmat RabidGravy:  +1 from me  (to be clear)
09:39 RabidGravy :)
09:40 RabidGravy I'll do it, and apologise later if anyone objects ;-)
09:40 zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); ((@c,$d)) = r; @c.say; $d.say;
09:40 camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤[[1 2] 3]␤(Any)␤»
09:41 zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); (@c,$d) = r; @c.say; $d.say;
09:41 camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤[[1 2] 3]␤(Any)␤»
09:41 azawawi we do not have the concept of a test suite file like in JUnit and other testing frameworks (in other languages) that is, right?
09:41 azawawi im trying to map a selenium test suite (a collection of test cases) into perl 6
09:42 lizmat ah, and good * to you, masak!  :-)
09:44 RabidGravy azawawi, something quite like Test::Class (in Perl 5) has yet to emerge afaik
09:45 zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); ((@c),$d) = r; @c.say; $d.say;
09:45 camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤[[1 2] 3]␤(Any)␤»
09:45 zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); (@c),$d = r; @c.say; $d.say;
09:45 camelia rakudo-moar 38f486: OUTPUT«WARNINGS:␤Useless use of variable @c in sink context (line 1)␤[[1 2] 3]␤(Any)␤[]␤([1 2] 3)␤»
09:46 dalek rakudo/curli: 1a5a465 | (Stefan Seifert)++ | src/core/CompUnit (2 files):
09:46 dalek rakudo/curli: Migrate Repository::FileSystem's candidates code into need
09:46 dalek rakudo/curli:
09:46 dalek rakudo/curli: This allows for us to remove CompUnitRepo::Locally's need method.
09:46 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/1a5a4659c6
09:46 dalek specs: e1da64f | RabidGravy++ | S22-package-format.pod:
09:46 dalek specs: Kebab case superseded_by to superseded-by in S22
09:46 dalek specs: review: https://github.com/perl6/specs/commit/e1da64feaf
09:51 spider-mario joined #perl6
09:56 azawawi RabidGravy: thanks for the info. So basically I have to map each selenium test case into nnn-test-name.t to preserve the run order of the test suite
09:58 * RabidGravy looks at the existing testy things
10:00 RabidGravy so it seems, the tests files are definitely run in sorted order
10:00 nine azawawi: why do you need a certain order of your test files?
10:01 RabidGravy or make something like Test::Class but using traits rather than special names for the test methods
10:02 RabidGravy nine, in a web application you may not have control of the degree of isolation of the state of the application between tests
10:03 Ven_ joined #perl6
10:04 Actualeyes left #perl6
10:04 nine Not strictly isolating state between tests was a very wrong decision I've made and one that was very costly to reverse. But if we hadn't reversed it our test suites would run for hours instead of 15 minutes.
10:04 softmoth joined #perl6
10:07 dalek rakudo/curli: 382ae45 | (Stefan Seifert)++ | src/core/CompUnit/Repository/Installation.pm:
10:07 dalek rakudo/curli: Fix CompUnit::Repository::Installation::can-install
10:07 dalek rakudo/curli:
10:07 dalek rakudo/curli: The previous code has never been tested and of course contained a bogus call to Any.any
10:07 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/382ae45603
10:07 RabidGravy in my last job we had a test suite that ran for hours, largely because it twatted and rebuilt the database between every fixture for every test
10:09 nine RabidGravy: that's why it would be better to have a random grouping of tests cases where each group gets a clean and separae database. So groups may run in parallel but you don't pay the cost of database setup for every single test case.
10:10 nine While still finding implicit dependencies between test cases quickly.
10:12 RabidGravy though all this said, I do find that there is a sort of natural order that tests should run in order to make debugging easier (i.e. does it compile -> does it have the expected methods .... etc, etc)
10:14 nine Tests are only useful when they are run. Will you run those basic tests for every single change when it adds an hour to your test runs? Probably not. You will only run the tests for the area you're working in.
10:16 RabidGravy indeed, for myself in a larger system I tend to organise things such that each "thing" that can be altered separately has a test file of its own that has enough coverage to ensure that you don't break stuff making a tiny change
10:18 RabidGravy then let CI pick up any unanticpated fallout
10:22 Ven_ joined #perl6
10:23 rindolf joined #perl6
10:27 azawawi nine: sorry for being away but the short answer is my selenium test cases were written by a junior QA engineer...
10:28 nine azawawi: ok, that explains it very well :)
10:29 azawawi nine: basically in a web application, you have logged in/out states to consider. So i guess we can automate the login behavior and rerun it (at test runtime cost).
10:30 azawawi nine: also i asked because im working on translating from selenese commands into Perl 6 code :)
10:31 azawawi nine: i.e. QA edit it using selenium firefox IDE extension, and CI converts it into Perl 6 code and runs it on each test case commit
10:31 nine azawawi: just for context: at work we deal only with web applications with one exception. So we've been through a lot of these issues. That's also the reason why I wrote Test::WWW::WebKit, so we could realiably run tests in parallel and much faster then with Selenium.
10:31 * azawawi takes a look at Test::WWW::WebKit
10:32 nine azawawi: it's great for testing your Javascript code, but of course useless for cross browser testing.
10:32 azawawi nine: but i have to consider IE and firefox in my case... and windows platform (my curse lol)
10:33 azawawi nine: so basically it is phantomjs?
10:33 azawawi nine: but faster since there is no JSON HTTP bridge involved, right?
10:33 nine Pretty much, yes.
10:34 azawawi cool thanks for the info
10:34 nine Phantomjs was not yet usable when I started WWW::WebKit. Also I needed a real drop-in replacement for Test::WWW::Selenium::Catalyst because we already had loads of tests based on that.
10:35 azawawi so basically i need to make sure my selenium package has a compatibility layer with Test::WWW::Selenium to make it easier to migrate Perl into Perl 6 code
10:37 Ven_ joined #perl6
10:48 ][Sno][ joined #perl6
10:51 Ven_ joined #perl6
10:54 diana_olhovik joined #perl6
11:09 cygx joined #perl6
11:09 cygx o/
11:11 xfix joined #perl6
11:11 andreoss joined #perl6
11:17 dalek rakudo/nom: 0d82c9b | lizmat++ | src/core/IO/Handle.pm:
11:17 dalek rakudo/nom: Wean IO::Handle.Supply away from nqp::readfh
11:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0d82c9b6e2
11:23 Ven_ joined #perl6
11:24 RabidGravy right, off to the farmers market! toodlepip!
11:24 lizmat .oO( fresh farmers!! wheee!!  )
11:32 diana_olhovik joined #perl6
11:34 FROGGS__ joined #perl6
11:35 brrt joined #perl6
11:37 brrt good *
11:37 dalek rakudo/curli: d3e60c5 | (Stefan Seifert)++ | / (7 files):
11:37 dalek rakudo/curli: CompUnitRepo::Locally -> CompUnit::Repository::Locally
11:37 dalek rakudo/curli:
11:37 dalek rakudo/curli: Even though the module loading code has been migrated to the concrete
11:37 dalek rakudo/curli: implementations, the CompUnit::Repository::Locally role is still useful for
11:37 dalek rakudo/curli: sharing code between file system based implementations.
11:37 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/d3e60c5226
11:39 nine I dare say, this concludes phase 1: code restructuring :)
11:40 lizmat nine++
11:41 nine Now if only I knew how exactly this broke panda. I'd know a couple of changes that could need adjustment in panda, but it simply fails at use Test; But when I run the tests manually, everything is fine.
11:43 moritz nine: compare %*ENV and $*CWD?
11:44 yqt joined #perl6
11:45 dalek roast: e968239 | lizmat++ | S16-io/supply.t:
11:45 dalek roast: Add tests for IO::Handle.Supply
11:45 dalek roast: review: https://github.com/perl6/roast/commit/e9682396e5
11:45 leont joined #perl6
11:48 azawawi joined #perl6
11:49 nine moritz: oh, yes, panda's bootstrap.pl sets PERL6LIB
11:49 lizmat It's been a while: All tests successful.
11:49 lizmat Files=1069, Tests=49584, 237 wallclock secs (12.44 usr  3.86 sys + 1462.43 cusr 126.93 csys = 1605.66 CPU)
11:50 lizmat only 416 to go for 50K   :-)
11:50 nine lizmat: still nice to see :)
11:50 azawawi so what is curli? :)
11:50 nine Wow, where did those 1000 tests come from?
11:50 nine azawawi: https://gist.github.com/jnthn/47a42b2e86e7e552b2e2
11:51 dalek rakudo/nom: f9056c6 | lizmat++ | t/spectest.data:
11:51 dalek rakudo/nom: Run tests for IO::Handle.Supply
11:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f9056c62d7
11:51 tokuhirom_h joined #perl6
11:51 lizmat nine: I added 2 tests for each class known, checking validity of handling .gist and .perl on type object
11:51 * azawawi reads
11:52 lizmat and found 2 problems because of that  :)
11:52 nine lizmat++ # nice!
11:52 softmoth joined #perl6
12:00 azawawi nine: nice. thanks for the info
12:02 nine Oh, the panda breakage is a cute one. CompUnitRepo caches repositories by path and will give you the same repo object for the same path. Since repos are now a linked list, re-using an object from the end of the list, will give you a rather short chain.
12:02 nine And panda's bootstrap.pl does exactly that: it specifies a repo in PERL6LIB that will be automatically added by rakudo anyway.
12:03 lizmat the fact that panda adds repo's, is broken, imho
12:03 lizmat it's part of the delay of installing many modules
12:04 lizmat delay at startup I mean
12:04 nine Well during bootstrap at least it has to add its local lib dir
12:04 azawawi panda is broken also on windows for .bat scripts that is... im waiting on curli to land for it be fixed or so i was promised :)
12:05 lizmat nine: the way I remember it, panda added an INC entry for each module installed
12:05 nine lizmat: that sounds terrible
12:06 lizmat well, please double check, but that's what I remember from looking at it
12:07 azawawi any zef developers here?
12:08 nine ==> Successfully installed panda
12:08 nine :)
12:09 cygx azawawi: ugexe and tony-o have contributed to the repository
12:10 azawawi cygx: thx
12:11 azawawi so MANIFEST in my rakudo folder is a json file that shows where are the different installed module version(s), right?
12:11 dalek doc: badbf5d | lizmat++ | doc/Type/IO/Handle.pod:
12:11 dalek doc: Document IO::Handle.readchars + some cleanup
12:11 dalek doc: review: https://github.com/perl6/doc/commit/badbf5d2a6
12:11 dalek doc: c1abbc8 | lizmat++ | doc/Type/IO/Handle.pod:
12:11 dalek doc: Document IO::Handle.Supply
12:11 dalek doc: review: https://github.com/perl6/doc/commit/c1abbc8a01
12:11 dalek rakudo/curli: 3fa2369 | (Stefan Seifert)++ | src/core/Process.pm:
12:11 dalek rakudo/curli: Include every repo only once in the $*REPO chain
12:11 dalek rakudo/curli:
12:11 dalek rakudo/curli: CompUnitRepo caches repositories by path and will give you the same repo object
12:11 dalek rakudo/curli: for the same path. Since repos are now a linked list, re-using an object from
12:11 dalek rakudo/curli: the end of the list, will give you a rather short chain.
12:11 dalek rakudo/curli:
12:11 dalek rakudo/curli: Having a path represented by only a single object is still a good idea. And
12:11 dalek rakudo/curli: there should be no reason to have a path in multiple places of the repo chain,
12:11 dalek rakudo/curli: so avoid the breakage by making sure we include every repo only once.
12:11 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/3fa23695e2
12:12 * cygx should get around to documenting IO::Handle.open and adding some tests, for that matter...
12:12 bartolin m: use Test; for ^150 -> $n { is $n + 0, 42 }
12:12 camelia rakudo-moar 0d82c9: OUTPUT«(signal SEGV)not ok 1 - ␤␤# Failed test at /tmp/bamd8cvbpB line 1␤# expected: '42'␤#      got: '0'␤not ok 2 - ␤␤# Failed test at /tmp/bamd8cvbpB line 1␤# expected: '42'␤#      got: '1'␤not ok 3 - ␤␤# Failed test at /tmp/bamd8cvbpB l…»
12:14 bartolin ^^ that segfault goes away with MVM_SPESH_DISABLE. Seems to happen in src/core/Cool.pm (method ends-with) while looking up the calling file.
12:14 cygx .oO( what do you mean, undocumented? the commit message couldn't be clearer )
12:14 bartolin should I report it as an MoarVM issue or as a rakudobug?
12:14 tokuhirom joined #perl6
12:15 azawawi MANIFEST json is now 375 lines with only zef installed... what happens when we install hundreds of modules? parsing time?
12:15 nine azawawi: that's been a hot topic for months.
12:17 * azawawi hotfixes his win32 panda installation for it to work
12:17 nine I'd say let's but the data into CSV files and have [Tux]++ optimize the loader till it runs in negative time ;)
12:19 ShimmerFairy Honestly, for something performance-sensitive I'd personally gravitate towards a binary format :)
12:19 cygx personally, I think the grammar engine as a whole is in need of a major speedup
12:19 nine ShimmerFairy: yes, sqlite
12:19 cygx have a couple hundred lines of code, and startup-time is a goner
12:19 RabidGravy joined #perl6
12:21 * flussence thinks the filesystem is a pretty decent database format...
12:21 ShimmerFairy too bad the program can't choose the filesystem :P
12:22 nine flussence: until you need to find a module with version 2.1 or greater
12:22 Actualeyes joined #perl6
12:22 ShimmerFairy .oO( sqlext )
12:24 azawawi Lots of tests failures on windows 7... time to work :)
12:28 tokuhirom joined #perl6
12:31 * RabidGravy returns with a haul of locally brewed beer, strange vegetables and cheese
12:35 dalek rakudo/nom: 48570b3 | lizmat++ | src/core/Any-iterable-methods.pm:
12:35 dalek rakudo/nom: Use ternary, remove superstitious if/else
12:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/48570b373e
12:40 dalek rakudo/curli: 1aaf568 | (Stefan Seifert)++ | src/core/CompUnit/Repository/FileSystem.pm:
12:40 dalek rakudo/curli: Bring back CompUnit::Repository::FileSystem::files
12:40 dalek rakudo/curli:
12:40 dalek rakudo/curli: Apparently it's being used by panda
12:40 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/1aaf568397
12:41 cygx anyone up for adding a more helpful 404 error page to doc.perl6.org?
12:42 cygx already ticketed, I see ( https://github.com/perl6/doc/issues/129 )
12:43 nine lizmat: do you think it's worth the time to try to reduce Perl6::ModuleLoader to the absolutely needed minimum? Loading Perl 6 modules should always go through CompUnitRepo AFAICT.
12:44 lizmat yes, it would always need to go through one place, especially to take care of async issues and sentinelity  :-)
12:45 lizmat in fact, I could argue we only need Perl6::ModuleLoader for nqp modules
12:46 ^elyse^ joined #perl6
12:46 nine lizmat: yes, it seems to load Perl6::BOOTSTRAP and occasionally NQPHLL from NQP
12:47 nine lizmat: I guess we don't need much "locate an appropriate file" functionality for that
12:47 lizmat indeed  :-)
12:48 dalek rakudo/nom: ac0d1d4 | lizmat++ | src/core/Any-iterable-methods.pm:
12:48 dalek rakudo/nom: Convert as-iterable/as-iterator
12:48 dalek rakudo/nom:
12:48 dalek rakudo/nom: Since all calls to it where followed by .iterator anyway
12:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ac0d1d4a48
12:49 lizmat brb
12:52 RabidGravy so my first stupid question of the day: if I have something like "module Foo { multi sub doit(Int $t) { ... }; multi sub doit(Str $t) { ... }; sub process($t) { doit($t) } }" is it possible to inject a new multi doit() into there at runtime?
12:53 RabidGravy my initial research suggests not but I may be missing something
12:53 cognominal m:  say  $( 'a' ~~ /a/ )
12:53 camelia rakudo-moar f9056c: OUTPUT«「a」␤»
12:53 cognominal m:  .say for $( 'a' ~~ /a/ )
12:53 camelia rakudo-moar f9056c: ( no output )
12:53 cognominal strange
12:56 nine lizmat: seems like I'll have to separate loading the BOOTSTRAP a bit more from normal module loading
12:58 lizmat looks good to me  :-)
12:59 nine Right now it loads Perl6::BOOTSTRAP as if it was a Perl 6 module. It just works because it's already precompiled to a .moarvm file
12:59 lizmat yeah, didn't I already separate that ?
13:00 lizmat (or maybe tried to and failed :-)
13:00 nine If you already separated it a bit, I don't even want to know how tangled that was before :)
13:01 lizmat well, I removed the need for the "use bootstrap" at the beginning of the setting :-)
13:01 lizmat brb
13:06 psch m: proto f(|c) { }; multi f (Int $) { }; &f.dispatchees.say; &f.add_dispatchee(my sub (Str $) { "Str" }); &f.dispatchees.say; say f("foo");
13:06 camelia rakudo-moar 48570b: OUTPUT«(sub f (Int $) { #`(Sub|67822152) ... })␤(sub f (Int $) { #`(Sub|67822152) ... } sub (Str $) { #`(Sub|67822456) ... })␤Nil␤»
13:06 psch RabidGravy: ^^^ it... almost works..?
13:06 psch RabidGravy: i suspect i'm missing something .^compose like, i.e. refreshing a cache or somesuch
13:06 mrf m: grammar G { token foo {A**^4}}; G.parse('AA', :rule<foo>)
13:06 camelia rakudo-moar 48570b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7exYZNKBkF␤Quantifier quantifies nothing␤at /tmp/7exYZNKBkF:1␤------> 3grammar G { token foo {A**7⏏5^4}}; G.parse('AA', :rule<foo>)␤»
13:07 mrf m: grammar G { token foo {A**0..4}}; G.parse('AA', :rule<foo>)
13:07 camelia rakudo-moar 48570b: ( no output )
13:08 mrf m: say ^10
13:08 camelia rakudo-moar 48570b: OUTPUT«0..^10␤»
13:09 mrf whats the correct syntax to use the ^10 range form rather than 0..10 in a token?
13:10 timotimo o/
13:10 mrf or am I inventing syntax again
13:10 RabidGravy psch, hmm - the problem here is I want to do this to a module that I may or may not have control of
13:10 loren joined #perl6
13:10 mrf \o timotimo
13:10 timotimo TimToady++ # did everything i wanted to do to my error detection code from yesterday; and a bit more!
13:10 loren Evening, #perl6
13:10 colomon o/
13:11 flussence m: grammar G { token foo {A**0..4}; token bar {A**{^4}}}; say G.parse('AA', :rule<foo>); say G.parse('AA', :rule<bar>);
13:11 camelia rakudo-moar 48570b: OUTPUT«「AA」␤「AA」␤»
13:11 RabidGravy I think that approach would require a co-operating module to expose a sub or a method
13:11 flussence m: grammar G { token baz {A ** ^4} }; say G.parse('AA', :rule<baz>);
13:11 camelia rakudo-moar 48570b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2U8vyv7gd6␤Quantifier quantifies nothing␤at /tmp/2U8vyv7gd6:1␤------> 3grammar G { token baz {A **7⏏5 ^4} }; say G.parse('AA', :rule<baz>);␤»
13:12 mrf flussence++ #star thanks.
13:12 cognominal m: say "v6.b" cmp "v6.birthday"
13:12 camelia rakudo-moar 48570b: OUTPUT«Less␤»
13:12 cognominal I am confused about rakudo versionning
13:12 loren How to undef a variable ? Like undef($something) ?
13:13 nine loren: $something = Any
13:13 RabidGravy m: my $f = "foo"; say $f;  $f = Any; say $f
13:13 camelia rakudo-moar 48570b: OUTPUT«foo␤(Any)␤»
13:13 mrf flussence: I guess the 0..10 form looks cleaner...Oh well. Are you able to explain why the ^10 form only works if in {}
13:14 RabidGravy because it  wants to be interpreted as code
13:14 timotimo nine: not "$something = Nil"?
13:14 RabidGravy it's perl 6 grammar in grammar grammar
13:15 loren m: my $x = 10; undefine($x); say $x.defined;
13:15 camelia rakudo-moar 48570b: OUTPUT«False␤»
13:16 loren I found undefine can does this job
13:16 mrf RabidGravy: I am not entirely sure that I understand but I am happy to except 'you just do' at the moment
13:16 loren thks, nine timotimo
13:17 timotimo mrf: it's simply a case of the perl6 rules/regex/grammar grammar not yet understanding ^10 syntax in that position yet
13:17 timotimo we may want to introduce that for consistency's sake
13:17 nine timotimo: I guess that's one part of Perl 6 where I'm still just unsure
13:18 mrf timotimo: So its an unimplemented feature? IF so then thats fine. Its not  a bit issue.
13:18 lizmat multi sub undefine(Mu \x) is raw { x = Nil }   # undefine is just assigning Nil if not an iterable
13:20 ShimmerFairy mrf: IIRC it's out of some kind of backward-compatibility with old syntax that I believe isn't a good reason anymore
13:20 ShimmerFairy m: my $a = 3; say "AAA" ~~ / A ** { $a } /
13:20 camelia rakudo-moar 48570b: OUTPUT«「AAA」␤»
13:20 ShimmerFairy m: my $a = 3; say "AAA" ~~ / A ** $a /
13:20 camelia rakudo-moar 48570b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/swN76XzxDb␤Quantifier quantifies nothing␤at /tmp/swN76XzxDb:1␤------> 3my $a = 3; say "AAA" ~~ / A **7⏏5 $a /␤»
13:22 Oatmeal joined #perl6
13:22 mrf ShimmerFairy: Ok. Given that I am very unlikely to be able to fix that I will work around it. Any idea where I would document that inconsitency?
13:23 ShimmerFairy mrf: Not sure. I honestly think we should get rid of the issues involving supporting the old old old usage, if I'm correct on why those two cases work :)
13:25 ShimmerFairy m: my $a = 3; say "ABA" ~~ / A ** B /   # huh, apparently we don't support that 'old form of +%' anymore anyway
13:25 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GHb2tCuMbd␤Quantifier quantifies nothing␤at /tmp/GHb2tCuMbd:1␤------> 3my $a = 3; say "ABA" ~~ / A **7⏏5 B /   # huh, apparently we don't suppor␤»
13:25 psch RabidGravy: http://irclog.perlgeek.de/perl6/2011-09-11#i_4409571 maybe this gives some insight
13:25 psch RabidGravy: fwiw, "adding dispatch candidates to exported subs" feels kind of wonky to me in the first place
13:26 psch RabidGravy: especially considering the dispatche{r,ees} are local to the Routine
13:27 mrf ShimmerFairy: I agree that it would be nice to support ** ^10 formats. But the most I can likely do to help is docuemnt that it currently doesn't work.
13:28 timotimo mrf: want me to point you at the places in the code that are relevant?
13:29 psch looks like a pretty small patch from here
13:29 timotimo should be very small, aye
13:29 ShimmerFairy I think the ** ^10 case is just simply a case where the regex parser doesn't realize it's a Range too :)
13:29 timotimo yeah
13:29 timotimo mrf: you'd be looking inside the NQP repo under src/QRegex/P6Regex/
13:30 ShimmerFairy and ** $a shouldn't be too much more difficult either. Unless there's some other reason to absolutely force the closure form there.
13:30 timotimo in the Grammar.nqp file you'll be able to find the regex that parses a range after a **
13:30 mrf timotimo: I am happy to take a look if you suspect that it is a 'simple' change.
13:30 timotimo and it'll also tell you what method to look at in the Actions.nqp (same name as the token/regex/rule/whatever it parse the range so far)
13:30 timotimo and from there you should already have enough to cargo-cult
13:30 RabidGravy psch, specifically it's for something like this https://github.com/jonathanstowe/JSON-Marshal/blob/master/lib/JSON/Marshal.pm or the reverse JSON::Unmarshal, to add a _marshal_unmarshal candidate with specific logic for a specific type
13:31 * mrf has more eagerness than capability
13:31 timotimo then you can test your changes with building only an nqp and then nqp-m -e 'say("helllllllllo" ~~ / l ** ^4 /)' or something
13:31 RabidGravy (_marshal/_unmarshal) that is
13:32 lizmat cycling&
13:32 timotimo mrf: i hope you'll find your excursion to the inside of rakudo's guts to be pleasant :)
13:32 AlexDaniel joined #perl6
13:33 RabidGravy obviously in those cases they can be made to co-operate, but you see what I mean I hope
13:34 mrf timotimo: I am sure it will be enjoyable and educational.
13:34 RabidGravy or you'll never want to look at software source code again
13:35 timotimo i know a bunch about nqp, so i can help you with anything you have questions about
13:35 timotimo gladly :)
13:35 mrf RabidGravy: Having dealt with $works legacy Perl5 I am sure it can't be that bad
13:35 mrf timotimo++ Thank you. I am sure I will have questions so will let you know
13:35 timotimo nqp is a fantastic language for implementing a perl6 compiler in, except that you can't debug it sanely
13:36 psch RabidGravy: https://gist.github.com/peschwa/2d25e44bcabecf1d6ced this works, but yes, it explicitly hands out the proto for adding the dispatchee
13:39 RabidGravy psch, :) nice
13:40 softmoth joined #perl6
13:41 azawawi RabidGravy: PR submitted for HTTP::UserAgent, Travis CI testing it :)
13:41 azawawi RabidGravy: for windows compatibility
13:41 nine lizmat: it's just 18 lines of code for loading BOOTSTRAP
13:41 RabidGravy you could do another level of abstraction and it might be somewhat generally useful ;-)
13:42 RabidGravy azawawi, I'll have to take your word on the windows compatibility as I don't know where the only windows computer in the house is right now
13:42 RabidGravy ;-)
13:42 azawawi RabidGravy: it is a simple crlf problem with git.
13:43 timotimo TimToady: i had considered using the op's nodes' string accessor to get the exact thing the user typed, so that it'd also keep things like 10_000_000 intact
13:43 azawawi RabidGravy: which brings another topic, reliance on git for modules = CRLF troubles... PAUSE-like zipped releases are better
13:43 timotimo i thought git had a thing for handling CRLF?
13:44 nine timotimo: there's at least options for that
13:44 timotimo it's probably opt-in, though
13:44 RabidGravy yeah, I think there is some "native line ending thing" config
13:47 psch hrmm
13:47 psch so i have one more almost-passing test
13:47 psch but my changes somehow mucked up Test.pm..?
13:47 psch 'cause the test itself seems to work half-way, printing the final ok doesn't work because of a type object somewhere in _pop_vars...
13:48 psch but well, isolated test cases show that there's something wrong anyway, so i'll just ignore that hiccup there and try again... :S
13:49 RabidGravy azawawi, you may find "git rebase" useful to lose some of the revert/merge/etc before you push to github :)
13:50 RabidGravy it took me ages to work out how it works but now I'm a convert ;-)
13:51 spider-mario joined #perl6
13:52 timotimo bartolin: can you try that line with the loop and Test again with an up-to-date MoarVM? on my machine it at least doesn't segfault, it outputs chars requires a concrete string, but got null
13:52 timotimo bartolin: which jnthn very recently fixed
13:53 RabidGravy love me a bit of segfaulting in the morning
13:53 RabidGravy okay it's the afternoon
13:53 * timotimo has Universal Knoppers time
13:53 timotimo this shift key is ... wobbly :(
13:54 RabidGravy heisen-shift!
13:55 * RabidGravy gently prods tadzik about the PRs on JSON::Unmarshal
13:57 psch my alt-gr is sometimes a bit unresponsive :/
13:57 psch which is really annoying when i want to paste from a screen buffer, but instead switch to screen 9
13:57 timotimo every now and then, i randomly remember the horribleness that is german keyboard's placement of {} and []
13:57 RabidGravy oh, my alt-gr is mapped to <Compose>
13:58 timotimo and \
13:58 azawawi ok and another panda fix for windows https://github.com/tadzik/panda/pull/240 :)
13:58 psch timotimo: you're using neo2?
13:59 timotimo yeah
13:59 RabidGravy azawawi++ # fixorification day
14:00 azawawi interesting p6doc also fails on windows :)
14:00 psch timotimo: how long it did take you to get used to it, ooc?
14:01 timotimo good question
14:01 timotimo i remember about a week of frustration because i couldn't answer fast enough in chats and such
14:02 timotimo during at least the first month or two i had trouble finding some of the rarer specials, like $|~`
14:04 timotimo i've been on neo2 for like 6 years now, i think
14:07 timotimo there's some programs that get really confused by neo2's extra arrow keys, especially java programs
14:07 psch i guess qwertz is still around, though
14:07 psch i mean, congnitively
14:07 timotimo allegedly, it just takes a minute or two to get back into qwertz
14:07 timotimo but i struggle quite a bit whenever i'm forced to qwertz
14:08 timotimo let' try this, actually
14:08 timotimo i do have to look at the keyboard
14:08 timotimo and special chars just 100% fluster me :)
14:09 raiph joined #perl6
14:09 psch i'm always a bit weary of over-customizing my environment, tbh
14:09 timotimo i still have enough qwertz in me to type "setxk<tab>de neo"
14:09 psch that even extends to things like .bashrc or .vimrc
14:09 timotimo mhm
14:09 timotimo i can understand that
14:09 psch and a non-standard keyboard layout is pretty much as far as one can drive customization... :)
14:10 timotimo if you're allowed to carry a little autohotkey exe file around with you and onto other computers, neo2 is easy on windows, though
14:11 timotimo amusingly, qt and gtk programs tend to spectacularly fail with neo2 on windows
14:11 RabidGravy I've tried (custom kb layouts,) but I've been using qwerty for ~40 years and the reward is too little for the struggle
14:11 timotimo gtk file open dialog not being able to handle the special chars layer, which includes / for example
14:11 timotimo qt is a whole lot better, usually just the extra arrow keys not working
14:12 timotimo qwerty is a ton less atrocious than qwertz is
14:12 timotimo no clue about azerty
14:12 timotimo except azerty is super weird to me
14:12 timotimo not that i looked at it a lot
14:13 RabidGravy fortunately for me whenever I worked somewhere that has differing layouts I've always had my own laptop
14:14 timotimo i tend to carry my laptop around everywhere
14:14 timotimo if i have to work on a windows machine i'm screwed anyway
14:15 timotimo if i can get a linux machine, i'm golden, because neo2 is on every linux machine that has X
14:15 moritz at work I have two keyboards, one with US layout (for writing code), one with German layout (for emails, documentation)
14:15 moritz and I noticed that I can press the "shift" button on one, and a normal key on the other, and still get an upper-case letter :-)
14:16 timotimo does having a physical switching action help get confused with z/y lessß
14:16 moritz timotimo: it helps that they have a different physical shape
14:16 timotimo mhm
14:16 moritz timotimo: one is ergonomic / curved, the other is straight
14:16 moritz that helps me a lot
14:16 timotimo i have a MS sculpt 2 here and an external thinkpad usb keyboar
14:17 timotimo the sculpt has the wobbly shift key and the tab key straight up fell out
14:18 timotimo but it is more comfortable to type with compared to the flat and a tiny bit cramped TP keyboard
14:18 dalek rakudo/curli: 521ac70 | (Stefan Seifert)++ | src/ (3 files):
14:18 dalek rakudo/curli: Remove Perl6 module loading code from Perl6::ModuleLoader
14:18 dalek rakudo/curli:
14:18 dalek rakudo/curli: Perl6::ModuleLoader is despite its name actually used only for loading NQP
14:18 dalek rakudo/curli: modules, most notably Perl6::BOOTSTRAP. Loading real Perl6 modules should
14:18 dalek rakudo/curli: only be done by CompUnit::Repositorys.
14:18 dalek rakudo/curli:
14:18 dalek rakudo/curli: We special case Perl6::BOOTSTRAP for now and leave NQP loading capabilities
14:18 dalek rakudo/curli: in place. We may want to move the latter to Perl 6 code, though.
14:18 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/521ac708a1
14:18 nine .tell lizmat you might like https://github.com/rakudo/rakudo/commit/521ac708a1
14:18 yoleaux nine: I'll pass your message to lizmat.
14:19 timotimo psch: it seems like i was able to cope with qwertz
14:19 nine 216 lines of redundant module loading code removed :)
14:19 timotimo psch: but i did have to look at the keyboard a bunch; didn't really feel like i was searching for keys, though
14:20 psch yeah, i'm wondering if i should try switching again tbh
14:21 * ShimmerFairy is far too used to good ol' american QWERTY, with compose key of course :P
14:21 psch but the most problematic move for my joints is hitting left alt with my thumb, which neo2 doesn't help with afaict...
14:22 timotimo i hold left alt with my thumb all the time :|
14:22 psch well, i had a few fractures in my left wrist a bunch of years ago
14:22 timotimo ugh, not good
14:22 psch so it's probably rooted in those at least a bit
14:23 timotimo unfortunately the pinky's way too far away to be used as a replacement
14:23 timotimo how do you feel about getting a foot pedal and using that for alt?
14:23 timotimo like "vim clutch" or what it's called
14:24 psch that feels pretty ridiculous to me, tbh
14:24 psch i mean, it makes sense from a comfort and all perspective, but...
14:24 ShimmerFairy just thinking about it, I believe my habit is to move my hand enough to the left that my thumb isn't under my hand when pressing left alt :)   (and I never use the right side modifiers, except for where I put compose)
14:24 timotimo psch: you could use a microphone, so that while you whistle, it'll hold alt for you
14:25 azawawi m: say $*SPEC.path.perl;
14:25 camelia rakudo-moar ac0d1d: OUTPUT«("/home/camelia/perl5/perlbrew/bin", "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin").Seq␤»
14:25 psch timotimo: that's really just silly :/
14:26 azawawi on windows $*SPEC.path.perl is returning (".", ("C:\\ProgramData\\Oracle\\Java\\javapath", "C:\\Windows\\system32", ...).Seq)) . Is that correct?
14:26 psch i guess some kind of ergo keyboard, or maybe one of those split ones would be great, but that's again the whole "overly customized" thing
14:26 psch so eh, i'll just silently suffer :P
14:26 psch i mean, it's not bad bad, just sometimes a little bad-ish
14:27 ShimmerFairy psch: caps-lock as alt, problem solved! :P
14:28 psch ShimmerFairy: caps-lock is compose when i have it :P
14:29 psch (i don't, at the moment, because i'm too lazy to figure it out on windows)
14:29 azawawi $*SPEC.path => ('.', (..).Seq) on windows?
14:29 tokuhirom joined #perl6
14:33 timotimo you could go the neo2 route and put compose on capslock + tab
14:35 psch hm, that actually sounds like a good idea
14:36 psch eh, almost at least
14:36 psch if capslock becomes alt, capslock + tab becomes alt+tab
14:36 timotimo when do you ever use that! :)
14:37 kjs_ joined #perl6
14:39 psch i think compose as capslock + rshift would work
14:39 psch i guess that should be possible with xmodmap
14:46 psch now, why does r-j try to unbox a Nil...
14:47 RabidGravy azawawi, looks okay to me
14:48 xpen joined #perl6
14:49 azawawi RabidGravy: i flat-tened it to make File::Which work :)
14:49 RabidGravy flattening also works :)
14:52 azawawi now phantomjs selenium web driver are working on windows. Firefox and chrome web drivers have some issues. Oh well :)
14:52 RabidGravy flatteny will get you everywhere
14:53 mrf timotimo: Do you have any idea how you debug NQP. I have what I think should be a working solution but I am still getting the same error from a 'say("hello" ~~ /l ** ^2/)'
14:54 timotimo please tell me what the error is?
14:54 timotimo i'd probably have an easier time helping you if you upload your diff, too
14:54 psch nqp-m: say("aa" ~~ /l ** ^2/)
14:54 camelia nqp-moarvm: OUTPUT«Quantifier quantifies nothing. at line 2, near " ^2/)"␤   at gen/moar/stage2/NQPHLL.nqp:521  (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPP6QRegex.nqp:83  (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPP6QRegex.mo…»
14:54 mrf timotimo: yes that one ^
14:54 * psch seconds the request for a diff
14:54 timotimo mhm
14:54 mrf timotimo: will do
14:55 timotimo thanks :)
14:55 bartolin timotimo: yes, with a more recent moar (2015.10-21-g47bb37e) the segfault I showed earlier today is gone.
14:55 Alina-malina joined #perl6
14:56 bartolin timotimo: the new error message goes away with MVM_DISABLE_SPESH, btw
14:56 timotimo yeah, things like that are usually spesh-related
14:56 mrf timotimo: psch: https://gist.github.com/ungrim97/47b970ed15ed629d9a49
14:56 nine m: for 1..1000000 { }; say now - INIT now;
14:56 camelia rakudo-moar ac0d1d: OUTPUT«1.49898778␤»
14:56 timotimo a little bit more context please? :S
14:58 timotimo oh
14:58 timotimo mrf: when you get $<min>=['^'], $min won't be '^'
14:59 timotimo mrf: there's nothing in there that'd set a .ast on the $<min> in the ^ case
14:59 timotimo i suggest you check $<min>.Str eq '^'
15:00 khw joined #perl6
15:00 mrf timotimo: is .ast only set for <> captures?
15:00 timotimo the action method is responsible for setting the .ast
15:00 timotimo that's what the "make" keyword does
15:01 mrf timotimo: ah ok
15:03 timotimo i expect that'll get you far
15:03 mrf timotimo: ?
15:03 timotimo the change for $<min> eq '^'
15:03 timotimo i expect that'll give you a working implementation
15:05 psch heh, that might give us < $tkn ** ^ > as a funny way for "match 0 times", though
15:05 timotimo oh; that would be weird, too
15:06 mrf psch: yes I did notice that. I am not sure if that is a bad thing or not.
15:06 timotimo that's for when you don't know that comments work inside regexes
15:06 timotimo huh, <max=.integer> would also be able to match ""?
15:06 psch timotimo: oh, no, of course not!
15:07 psch i looked too closely at the actions there apparently
15:07 timotimo :)
15:09 timotimo AFK for a bit
15:14 espadrine joined #perl6
15:14 b2gills m: sub flipper { $ .=&prefix:<!> }; say flipper for ^5
15:14 camelia rakudo-moar ac0d1d: OUTPUT«True␤False␤True␤False␤True␤»
15:16 mrf timotimo: psch: https://gist.github.com/ungrim97/98a8ca3d252215b544ca
15:17 mrf still no dice. Not sure why?
15:18 psch mrf: oh
15:20 mrf psch: the gist has 20 lines of context FYI
15:23 nine timotimo: seems like optimize_for_again is mostly working already?
15:23 psch nqp-m: say("a" ~~ /$<min>=['a']/)
15:23 camelia nqp-moarvm: OUTPUT«a␤»
15:24 nine timotimo: looks like correct sink context detection is the only bit left
15:24 timotimo that's right
15:26 psch mrf: your patch works for me, did you forget to rebuild nqp?
15:26 timotimo i was about to say; that patch looks perfect to me
15:27 timotimo the [ ] around '^' are unnecessary, but other than that it looks good
15:27 mrf psch: I reran make which I thought was enough. Is it not?
15:27 timotimo "make install"
15:27 timotimo probably
15:27 timotimo otherwise you'd have to explicitly ./nqp-m
15:27 psch i usually run '. config.status'
15:27 mrf thats my issue. I am using nqp-m for thois not ./nqp-m
15:27 mrf *sigh*
15:27 psch mrf++
15:28 mrf Will submit a pull request.
15:28 mrf :D. Look at me doing work on NQP
15:28 * mrf feels like a real programmar :D
15:28 timotimo cool :)
15:29 softmoth joined #perl6
15:30 mrf OOI what is the difference between <min='^'> and $<min>='^' ?
15:31 timotimo oh, <min='^'> works?
15:31 mrf No but I am curious why.
15:31 mrf would <min=^> look for a rule/token called ^
15:33 psch nqp-m: say("a" ~~ /<min=^>/)
15:33 camelia nqp-moarvm: OUTPUT«Unable to parse expression in metachar:sym<assert>; couldn't find final '>'  at line 2, near "=^>/)"␤   at gen/moar/stage2/NQPHLL.nqp:521  (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPHLL.nqp:528  (/home/camelia/…»
15:33 psch nqp-m: say("a" ~~ /<min='^'>/)
15:33 camelia nqp-moarvm: OUTPUT«Unable to parse expression in metachar:sym<assert>; couldn't find final '>'  at line 2, near "='^'>/)"␤   at gen/moar/stage2/NQPHLL.nqp:521  (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPHLL.nqp:528  (/home/cameli…»
15:33 psch the rhs expects a routine
15:34 psch for the enclosed form
15:34 mrf also I have added suport for ^* as well as that wasn't covered by <max=.integer>
15:34 psch so, yes, it would look a for a token named ^, if ^ would parse as an identifier
15:36 timotimo i don't expect it not to, but does the patch survive spec tests? :)
15:37 psch and nqp qregex tests too, probably
15:37 mrf Hmm thats a point I should add a test for this
15:37 psch although i don't know off-hand how to run those
15:37 mrf It passes make test in nqp. Do I need to run other tests?
15:38 timotimo make spectest (usually with TEST_JOBS=4 or more depending on CPU cores) is a good idea
15:38 psch i don't know if make test makes the qregex tests, t/qregex/rx_quantifier doesn't look particularly test-file-ish
15:38 psch ah, make qregex-test exists
15:38 timotimo it should
15:40 mrf psch: looks like I just need to add a line or two in the rx_quantifiers file and it should get tested by 01-qregex.t
15:48 mrf PR created for NQP
15:48 mrf :D
15:48 tokuhirom_h joined #perl6
15:49 mrf all tests seem to pass for me
15:51 pmurias joined #perl6
15:51 s_kilk joined #perl6
15:53 timotimo looks good to me
15:53 timotimo though "^*" seems weird
15:54 timotimo m: say ^*
15:54 camelia rakudo-moar ac0d1d: OUTPUT«WhateverCode.new␤»
15:54 psch <foo> ** ^* should be equivalent to <foo>*, no?
15:54 timotimo yeah
15:55 psch it does look weird, yeah, but consistent to my eyes at least
15:55 timotimo weird as in: ^* isn't in perl6 - at least not the same way it would be in the grammars
15:55 timotimo i'm unwilling to decide on this :)
15:55 psch m: my @a = ^10; say @a[^*]
15:55 camelia rakudo-moar ac0d1d: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
15:55 psch timotimo: it is :)
15:55 psch i think the analogy fits, snark aside
15:56 psch as in, bare ranges aren't quite the same as quantifier-rhs ranges
15:57 psch +either
15:57 timotimo they are in the context of smartmatch :)
15:58 psch m: say (0,1,2,3) ~~ ^*
15:58 camelia rakudo-moar ac0d1d: OUTPUT«0..^4␤»
15:58 psch m: say (0,1,2,3) ~~ (^*)
15:58 camelia rakudo-moar ac0d1d: OUTPUT«0..^4␤»
15:58 psch m: say (0,1,2,3) ~~ 0..*
15:58 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
15:58 psch ah, the first one does ^(lhs.elems)
15:59 psch m: say (0,1,2,3) ~~ { 0..$_ }
15:59 camelia rakudo-moar ac0d1d: OUTPUT«0..4␤»
15:59 psch m: say (0,1,2,3) ~~ { 0..$_ }($_) # this is what we do with mrfs path for the quantifier
15:59 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
15:59 psch yeah, that kind of pushes me further towards undecided, too
16:00 psch the notable difference between quantifier ^* and rhs-Whatever is that the letter depends on the lhs to get meaning, and the former doesn't
16:00 psch i don't know if "we are the Regex language" is a strong enough context switch to allow it
16:01 psch m: say (0,1,2,3) ~~ (^*)($_) # more explicit
16:01 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
16:02 psch hm, it turns out i don't even know what a Range on the rhs of ~~ does
16:03 psch m: say (1,2,3) ~~ 0..2 # ?
16:03 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
16:03 psch vOv
16:03 timotimo m: say 5 ~~ 1..10
16:03 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
16:03 timotimo m: say 99 ~~ 1..10
16:03 camelia rakudo-moar ac0d1d: OUTPUT«False␤»
16:04 psch m: (1,2,3) cmp 0
16:04 camelia rakudo-moar ac0d1d: OUTPUT«WARNINGS:␤Useless use of "cmp" in expression "(1,2,3) cmp 0" in sink context (line 1)␤»
16:04 psch m: say (1,2,3) cmp 0
16:04 camelia rakudo-moar ac0d1d: OUTPUT«More␤»
16:04 psch m: say (1,2,3) cmp 2
16:04 camelia rakudo-moar ac0d1d: OUTPUT«Less␤»
16:04 uruwi m: say (1, 2, 3) cmp 1
16:04 camelia rakudo-moar ac0d1d: OUTPUT«More␤»
16:04 * mrf didn't intend to cause controversy
16:05 timotimo hehehe
16:05 uruwi m: say (1, 2, 3) cmp 1.5
16:05 camelia rakudo-moar ac0d1d: OUTPUT«Less␤»
16:05 uruwi So it checks only the first element.
16:05 timotimo that's a bit strange
16:05 mrf ^* seemd consitent to me and seemed like a thing people might use
16:05 uruwi m: say (1, 2, 3) «cmp« 2
16:05 camelia rakudo-moar ac0d1d: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<cmp> are not of the same length␤left: 3 elements, right: 1 elements␤  in block <unit> at /tmp/1eBwZ_Faai:1␤␤»
16:05 uruwi m: say (1, 2, 3) »cmp» 2
16:05 camelia rakudo-moar ac0d1d: OUTPUT«(Less Same More)␤»
16:05 uruwi This is what you are seeking.
16:06 psch yeah, that's below Range.ACCEPTS
16:06 psch m: say (3,2,1) ~~ 1..3
16:06 camelia rakudo-moar ac0d1d: OUTPUT«False␤»
16:06 psch m: say (3,2,1).reverse ~~ 1..3
16:06 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
16:06 psch that's just misleading
16:07 uruwi m: say (3, 2, 1) «~~« 1 .. 3
16:07 camelia rakudo-moar ac0d1d: OUTPUT«(False True False)␤»
16:07 uruwi m: say (5, 4, 3, 2, 1) «~~« 1 .. 5
16:07 camelia rakudo-moar ac0d1d: OUTPUT«(False False True False False)␤»
16:07 uruwi What the hell happened here
16:08 psch exactly :D
16:08 psch Range.ACCEPTS doesn't handle List on the lhs sensibly, in my understanding
16:08 psch which might be because of infix:<cmp>
16:08 uruwi m: say 1 .. 5 for (5, 4, 3, 2, 1)
16:08 camelia rakudo-moar ac0d1d: OUTPUT«1..5␤1..5␤1..5␤1..5␤1..5␤»
16:08 uruwi m: say $_ ~~ 1 .. 5 for (5, 4, 3, 2, 1)
16:08 camelia rakudo-moar ac0d1d: OUTPUT«True␤True␤True␤True␤True␤»
16:09 psch m: my @a = ^10; @a ~~ 0..1
16:09 camelia rakudo-moar ac0d1d: ( no output )
16:09 psch m: my @a = ^10; say @a ~~ 0..1
16:09 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
16:09 psch m: ^1000 ~~ 0..1
16:09 camelia rakudo-moar ac0d1d: ( no output )
16:10 psch m: say ^1000 ~~ 0..1
16:10 camelia rakudo-moar ac0d1d: OUTPUT«False␤»
16:10 psch that special-cases to Range.ACCEPTS(Range)
16:10 psch m: say ^1000 .list ~~ 0..2
16:10 camelia rakudo-moar ac0d1d: OUTPUT«True␤»
16:10 psch and *that* is just confusing
16:10 uruwi m: say gather { take $_ ~ 1 .. 5 for (1, 9, 8, 3, 2, 7, 5, 6, 4); }
16:10 camelia rakudo-moar ac0d1d: OUTPUT«("11"..5 "91"..5 "81"..5 "31"..5 "21"..5 "71"..5 "51"..5 "61"..5 "41"..5)␤»
16:11 uruwi m: say gather { take $_ ~~ 1 .. 5 for (1, 9, 8, 3, 2, 7, 5, 6, 4); }
16:11 camelia rakudo-moar ac0d1d: OUTPUT«(True False False True True False True False True)␤»
16:17 llfourn m: module A::B { }; module A { module B { } }; say A.WHAT # bug?
16:17 camelia rakudo-moar ac0d1d: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol B␤»
16:18 psch llfourn: looks like a missed check for repossession;  the second module B declaration should be illegal
16:19 llfourn there are some situations when module A::B { } and module A { module B { } } work the same but others where they are not
16:19 llfourn they are meant to be exactly the same yes?
16:19 RabidGravy as I understand it yes
16:19 psch llfourn: not quite, the former stubs A, the latter finalizes it to only contain B
16:20 psch llfourn: i suspect that's also where the CT error above comes from
16:20 psch (at least that's what the code looked like the last time i looked at it...)
16:20 psch m: module A::B { our sub f { }; module A { our sub g { } }; say A::g
16:20 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/i7RrcAPWuD␤Missing block␤at /tmp/i7RrcAPWuD:1␤------> 3 }; module A { our sub g { } }; say A::g7⏏5<EOL>␤    expecting any of:␤        postfix␤        statement end␤        statement modifier…»
16:20 psch m: module A::B { our sub f { } }; module A { our sub g { } }; say A::g
16:20 camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
16:21 psch m: module A::B { our sub f { } }; module A { our sub g { "foo" } }; say A::g
16:21 camelia rakudo-moar ac0d1d: OUTPUT«foo␤»
16:21 psch m: module A::B { our sub f { } }; module A { module B { }; our sub g { "foo" } }; say A::g, A::B::f
16:21 camelia rakudo-moar ac0d1d: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol B␤»
16:21 psch m: module A::B { our sub f { } }; module A { our sub g { "foo" } }; say A::g, A::B::f
16:21 camelia rakudo-moar ac0d1d: OUTPUT«fooNil␤»
16:21 llfourn I noted this RT a little while ago seems to be same thing: https://rt.perl.org/Public/Bug/Display.html?id=126317
16:21 psch so, overwriting the first B should die
16:22 llfourn EXPORTHOW::Foo dooesn't work but EXPORTHOW { Foo { } } does work
16:22 psch and die more meaningful, probably...
16:23 llfourn psch: yep sometimes it does catch the redeclaration properly and sometimes not
16:24 llfourn also last time I checked if you load module like 'use Foo' you will get any sub-package defined like 'module Foo::bar' but you won't get 'module Bar'
16:24 llfourn even if they are bother under 'unit module Foo'
16:25 vendethiel joined #perl6
16:29 TEttinger joined #perl6
16:32 BenGoldberg joined #perl6
16:33 psch llfourn: it's around package_def in Perl6::Grammar and ::Actions, in case you wanna dig in
16:34 psch llfourn: mostly Grammar, afaict
16:35 llfourn psch: kk will take a look
16:47 psch m: my $x; ++++$x; CATCH { default { .perl.say } }
16:47 camelia rakudo-moar ac0d1d: OUTPUT«X::Parameter::RW.new(got => 1, symbol => "\$a")␤»
16:47 psch j: my $x; ++++$x; CATCH { default { .perl.say } }
16:47 camelia rakudo-jvm ac0d1d: OUTPUT«X::AdHoc.new(payload => "Cannot assign to a readonly variable or a value")␤»
16:48 psch somewhat misleading that moar points at $a, which is the param to prefix:<++>
16:48 psch but i think we have that in a few spots...
16:50 atweiden joined #perl6
16:52 skids joined #perl6
17:11 kjs_ joined #perl6
17:12 s_kilk joined #perl6
17:13 dalek perl6-roast-data: 0d23564 | coke++ | / (9 files):
17:13 dalek perl6-roast-data: today (automated commit)
17:13 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/0d23564b9b
17:16 grondilu joined #perl6
17:17 softmoth joined #perl6
17:21 Ben_Goldberg joined #perl6
17:21 dalek nqp: 44c92e4 | (Pawel Murias)++ | src/vm/js/ (7 files):
17:21 dalek nqp: [js] Wrap nqp integers in objects so that they can be distinguished from floating point numbers.
17:21 dalek nqp:
17:21 dalek nqp: Implement nqp::isint, nqp::isnum.
17:21 dalek nqp: Pass test 85.
17:21 dalek nqp: review: https://github.com/perl6/nqp/commit/44c92e47d7
17:22 psch hrm, if have that almost patched, the ++++$x case on jvm
17:22 psch but i have no reliable way for getting the parameter name
17:22 psch it's still hanging around in tc.native_s, but that seems really brittle to rely on
17:24 grondilu joined #perl6
17:24 pmurias_ joined #perl6
17:26 tm joined #perl6
17:28 grondilu Hello everyone
17:28 RabidGravy erp
17:29 softmoth joined #perl6
17:35 psch oh my wat
17:36 psch okay, so i patched r-j to pass the tests in S03-operators/increment.t again
17:36 psch the i pulled roast, and reran the fudged file
17:36 psch just because i realized i was behind there
17:37 psch and then i again get the AdHoc thrown, but only if it's ran with #TODO for those tests
17:37 psch if i unfudge the tests, they all pass
17:37 psch please send help :P
17:38 nine m: for 1..1000000 { }; say now - INIT now;
17:38 camelia rakudo-moar ac0d1d: OUTPUT«1.4924420␤»
17:39 nine m: (1..1000000).map(-> {}); say now - INIT.now;
17:39 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cV_2hP_2Gw␤Whitespace required after keyword 'INIT'␤at /tmp/cV_2hP_2Gw:1␤------> 3(1..1000000).map(-> {}); say now - INIT7⏏5.now;␤»
17:39 nine m: (1..1000000).map(-> {}); say now - INIT now;
17:39 camelia rakudo-moar ac0d1d: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in block <unit> at /tmp/Zq1b9tCekS:1␤␤»
17:39 nine m: (1..1000000).map(-> $x {}); say now - INIT now;
17:39 camelia rakudo-moar ac0d1d: OUTPUT«1.66662376␤»
17:39 [Sno] joined #perl6
17:40 nine m: (1..1000000).map({;}); say now - INIT now;
17:40 camelia rakudo-moar ac0d1d: OUTPUT«1.65256667␤»
17:46 Actualeyes left #perl6
17:47 [Coke] JVM test run today down to 468 failures from 2562 yesterday
17:48 bartolin [Coke]++ # roast/RT work
17:49 psch what the...
17:50 psch the fudge output in isolation works
17:50 bartolin this is the spesh bug I tried to golf today:
17:50 bartolin m: sub foo () { say callframe(1).file }; for 1..199 -> $n { next if $n < 199; foo; }
17:50 camelia rakudo-moar ac0d1d: OUTPUT«/tmp/Xyh_ADuc9i␤»
17:50 bartolin m: sub foo () { say callframe(1).file }; for 1..200 -> $n { next if $n < 200; foo; }
17:50 camelia rakudo-moar ac0d1d: OUTPUT«concatenate requires a concrete string, but got null␤  in sub foo at /tmp/RgEIqcrCGc:1␤  in block <unit> at /tmp/RgEIqcrCGc:1␤␤»
17:51 uruwi Why isn't p6 reading environment variables correctly?
17:51 dalek doc: cd2afab | (Lloyd Fournier)++ | doc/Language/modules.pod:
17:51 dalek doc: require,use and now searchable
17:51 dalek doc: review: https://github.com/perl6/doc/commit/cd2afab1ec
17:53 [Coke] uruwi: do you have code to demonstrate your problem?
17:54 uruwi I have the following at the top: constant USE-ANSI = so $*ENV<USE_ANSI>;
17:54 [Coke] m: say %*ENV<HOME>
17:54 camelia rakudo-moar ac0d1d: OUTPUT«/home/camelia␤»
17:54 uruwi And on bash I type export USE_ANSI=1
17:54 [Coke] It's %*, not $*
17:54 uruwi deeeeeeeeeeeeeeeeeerp
17:55 zengargoyle any Mathy folks around?
17:55 vendethiel depends the kind of math :p
17:55 Ben_Goldberg uruwi, You've got too much p5 in your brain ;)
17:55 uruwi Surprisingly enough, I've programmed too little p5
17:56 uruwi It was just a brain fart :P
17:56 * uruwi is not used to sigils
17:56 [Coke] rakudo-moar is failing 432 tests; nonjit 350.
17:56 [Coke] dynamic variables don't seem to have suggestive error messages, unfortunately.
17:57 [Coke] m: my $array; say %array;
17:57 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fuOsAEEBqz␤Variable '%array' is not declared. Did you mean any of these?␤    $array␤    array␤␤at /tmp/fuOsAEEBqz:1␤------> 3my $array; say 7⏏5%array;␤»
17:57 zengargoyle taking a swing at fixing up the rosetta code perl 6 gaussian elimination entry which is old and pre-multi-dimensional arrays.
17:57 zengargoyle https://gist.github.com/zengargoyle/9a72db15ab8c70049bcf
17:58 cognominal joined #perl6
17:58 zengargoyle just what is proper when matrix is singular?
17:59 zengargoyle otherwise, code is pretty much just modifiying original to use multi-dimensional array instead of the hack.
18:02 dalek roast: a4721fe | (Lucas Buchala)++ | S16-filehandles/argfiles.t:
18:02 dalek roast: Add test for lines() with more than one file #126494
18:02 dalek roast: review: https://github.com/perl6/roast/commit/a4721fe09d
18:02 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=126494
18:12 bartolin m: for ^200 { next if $_ < 199; say callframe } # golfed it a bit further
18:12 camelia rakudo-moar ac0d1d: OUTPUT«concatenate requires a concrete string, but got null␤  in block <unit> at /tmp/YecVtdR3D4:1␤␤»
18:14 bartolin ^^ this can happen in Test.pm (sub proclaim) while looking for the line number for error reports
18:19 jojotus joined #perl6
18:29 psch hah, apparently my patch broke the simples of cases of postfix:<++>, < my $x; $x++ >, which made Test.pm die in proclaim...
18:31 tokuhirom joined #perl6
18:36 psch oh, the actual problem appears to be that Routine.analyze_dispatch doesn't even know if the arguments are containers or not..?
18:39 sunnavy joined #perl6
18:40 sunnavy joined #perl6
18:46 pmurias joined #perl6
18:52 ChoHag joined #perl6
18:58 Ven_ joined #perl6
18:59 ^elyse^ joined #perl6
19:00 Ben_Goldberg joined #perl6
19:02 Ben_Goldberg joined #perl6
19:08 kjs_ joined #perl6
19:08 sprocket joined #perl6
19:08 sprocket hello, #perl6!
19:08 lizmat sprocket o/
19:08 yoleaux 14:18Z <nine> lizmat: you might like https://github.com/rakudo/rakudo/commit/521ac708a1
19:08 sprocket has anybody had any success building p6 on raspberry pi?
19:08 sprocket i’m getting a build error
19:09 Ven_ joined #perl6
19:09 sprocket and wondering if there are any workarounds i might try
19:10 lizmat sprocket: I've heard of MoarVM having been built on raspberry pi, but not nqp or rakudo
19:10 sprocket lizmat: it’s moar that’s failing for me
19:10 lizmat but I didn't pay much attention to that, so may well be totally wrong
19:10 sprocket it looks as though it’s a compiler error
19:11 sprocket or at least that’s what’s reported. :)
19:11 lizmat could you gist the error ?
19:11 psch sprocket: i think grondilu tried at least
19:11 psch sprocket: although i can't see anything regarding how far they got
19:12 sprocket here’s the gist: https://gist.github.com/anonymous/754198e8ae44fe9a3993
19:12 RabidGravy sprocket yeah it works fine for me
19:13 sprocket RabidGravy: were you checking out the latest from git, or using a specific version?
19:13 psch clog reveals grondilu has an rPi 2, fwiw
19:13 RabidGravy rakudobrew (whch gets the latest from git)
19:14 lizmat sprocket perhaps you need a more recent gcc ?
19:14 RabidGravy let me try here
19:14 sprocket lizmat: could be it - i’ll try updating raspbian
19:14 RabidGravy it could be something recent
19:17 sprocket RabidGravy - what version of gcc does yours have?
19:17 zengargoyle is  my $new = $old.perl.EVAL  the best way to make a deep copy of some structure?
19:17 RabidGravy gcc version 4.6.3 (Debian 4.6.3-14+rpi1)
19:18 sprocket hmmm…same as mine then
19:18 RabidGravy let me try to build it, may take some time
19:18 sprocket sure
19:21 Sqirrel joined #perl6
19:22 RabidGravy I have two an RPi2 wth debian and a Rev 2 B with pidora
19:22 mj41 joined #perl6
19:23 sprocket Looks like this error pops up from time to time when x-compiling to ARM cpus
19:23 Ven_ joined #perl6
19:24 sprocket I’ll upgrade to gcc 4.8 and retry
19:25 RabidGravy yep get the same as you, looks like a codegen bug in gcc
19:27 RabidGravy how shit is that
19:31 sprocket I installed gcc 4.8 and it seems to be making urther in the build - that wil likely solve the problems, i think :)
19:32 lizmat m: class A { }; class B { multi method foo(A:) { say "foo" } }; A.foo   # shouldn't this work ?
19:32 camelia rakudo-moar ac0d1d: OUTPUT«Method 'foo' not found for invocant of class 'A'␤  in block <unit> at /tmp/M87UNfsqjm:1␤␤»
19:32 pmurias joined #perl6
19:33 psch m: class A { }; class B { multi method foo(A:) { say "foo" } }; B.can('foo')(A)
19:33 camelia rakudo-moar ac0d1d: OUTPUT«Invocant requires a type object of type List, but an object instance was passed.  Did you forget a 'multi'?␤  in block <unit> at /tmp/c1RfNZ9uxJ:1␤␤»
19:33 psch m: class A { }; class B { multi method foo(A:) { say "foo" } }; B.^can('foo')(A)
19:33 camelia rakudo-moar ac0d1d: OUTPUT«Invocant requires a type object of type List, but an object instance was passed.  Did you forget a 'multi'?␤  in block <unit> at /tmp/RrDWXbaPE6:1␤␤»
19:33 psch huh
19:33 psch oh, list
19:33 psch m: class A { }; class B { multi method foo(A:) { say "foo" } }; B.^can('foo')[0](A)
19:33 camelia rakudo-moar ac0d1d: OUTPUT«foo␤»
19:33 psch lizmat: i don't think yours should work, there's no method foo in A
19:34 lizmat m: use MONKEY-TYPING; augment class Any { proto method foo(|) { * } }; class A { }; class B { multi method foo(A:) { say "foo" } }; A.foo   # should this work ?
19:34 camelia rakudo-moar ac0d1d: OUTPUT«Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/tjycoMnZPG:1␤Cannot call foo(A); none of these signatures match:␤  in block <unit> at /t…»
19:34 lizmat I mean, I put the proto in Any, A and B inherit from Any
19:35 lizmat still the proto doesn't see the method in B with the A: sig
19:35 psch m: use MONKEY-TYPING; augment class Any { proto method foo(|) { say "protoing";  {*} } }; class A { }; class B { multi method foo(A:) { say "foo" } }; A.foo
19:35 camelia rakudo-moar ac0d1d: OUTPUT«protoing␤Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in method foo at /tmp/rZfRm3CR1N:1␤Cannot call foo(A); none of these signatures match:␤  in method fo…»
19:35 psch hm
19:35 ugexe joined #perl6
19:36 lizmat I think I've uncovered a place where jnthn cheated  :-)
19:36 psch m: class A { proto f {*} }; class B is A { multi f(C:) { "C" } }; class C { }; say B.can('f').dispatchees
19:36 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0OjBLOfaIN␤Invalid typename 'C' in parameter declaration.␤at /tmp/0OjBLOfaIN:1␤------> 3 proto f {*} }; class B is A { multi f(C7⏏5:) { "C" } }; class C { }; say B.can('f'␤»
19:36 lizmat what I'm trying to do, is to put a Supply method in Any
19:37 psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } };  say B.can('f').dispatchees
19:37 camelia rakudo-moar ac0d1d: OUTPUT«Method 'dispatchees' not found for invocant of class 'List'␤  in block <unit> at /tmp/pzEOf5KeJ2:1␤␤»
19:37 psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } };  say B.can('f')[0].dispatchees
19:37 camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
19:37 lizmat but Supply and other stuff is not known there then... and the fact that Supply is a *role* is not helping
19:38 lizmat because if I specify it as a return type, it gets punned, but there is nothing to pun yet  :-(
19:38 psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } };  say B.can('f')[0].candidates
19:38 camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
19:38 lizmat at that stage in the core setting
19:38 psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } };  say B.can('f')[0]
19:38 camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
19:38 psch oh ffs
19:40 baest_ joined #perl6
19:42 psch lizmat: i don't think that SubA.f should call SubB.f, even if they both got an f-proto from the same parent
19:42 psch lizmat: i'm having trouble formalizing why, though...
19:43 psch something about action-at-a-distance and encapsulation...
19:44 bitmap joined #perl6
19:44 lizmat well, I've put it in a gist for someone ( jnthn?) to look at and explain to my why that doesn't work
19:44 lizmat https://gist.github.com/lizmat/0492103c6680fe6d2ec3
19:46 RabidGravy sprocket, hasn't finished yet but compiling moar works fine with 4.8
19:47 sprocket RabidGravy: yep, that’s what I’ve found out too - it’s just finished building NQP now
19:49 psch m: class A { proto f(|c) {*} }; class B is A { multi method f($) { "B" } }; B.can('f')[0].multi.say # uh, not sure if there's insight here...
19:49 camelia rakudo-moar ac0d1d: OUTPUT«False␤»
19:51 AlexDaniel m: say '̚';
19:51 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/xXrRHqT_rd:1␤------> 3say7⏏5 '̚';␤Bogus postfix␤at /tmp/xXrRHqT_rd:1␤------> 3say 7⏏5'̚';␤    expecting any of:␤        infix␤        infix stopper␤       …»
19:53 AlexDaniel hm, how can I switch back to operations on codepoints?
19:54 lizmat AlexDaniel: you mean in NFC or NFD ?
19:54 AlexDaniel lizmat: yeah
19:55 AlexDaniel like, here I want to store a combining character in a variable, what would be the easiest way to do it?
19:56 AlexDaniel not that I really need it, but I still wonder what would be the solution
19:56 lizmat perhaps t/spec/S15-string-types/NF-types.t and similar test files can be of inspiration?
19:57 psch .u diaresis
19:57 yoleaux No characters found
19:57 psch .u diaeresis
19:57 yoleaux U+00A8 DIAERESIS [Sk] (¨)
19:57 psch m: my $x = "\c[DIAERESIS]"; say "a" ~ $x
19:57 camelia rakudo-moar ac0d1d: OUTPUT«a¨␤»
19:57 psch that's not combining :/
19:57 psch m: my $x = "\c[COMBINING DIAERESIS]"; say "a" ~ $x
19:57 camelia rakudo-moar ac0d1d: OUTPUT«ä␤»
19:57 cygx AlexDaniel: there's also the Uni type
19:57 AlexDaniel oh nice
19:58 psch m: my $x = "\c[COMBINING DIAERESIS]"; say uniname("a" ~ $x)
19:58 camelia rakudo-moar ac0d1d: OUTPUT«LATIN SMALL LETTER A WITH DIAERESIS␤»
19:59 AlexDaniel m: my $x = "\c[COMBINING DIAERESIS]"; say $x
19:59 camelia rakudo-moar ac0d1d: OUTPUT«̈␤»
19:59 AlexDaniel I wonder if there should be a warning about this
20:00 [Coke] how does it know you didn't already print out something it could combine with?
20:02 AlexDaniel good point! Yeah. Though who is going to be printing characters one by one…
20:02 moritz AlexDaniel: would you also warn for printing a carriage return on linux?
20:03 AlexDaniel moritz: No idea. But it also depends on whether you use &say or &print
20:03 AlexDaniel if you are trying to print a combining character with &say, it does not make enough sense, really
20:04 psch m: my $x = "\c[COMBINING DIAERESIS]"; print $x
20:04 camelia rakudo-moar ac0d1d: OUTPUT«̈»
20:04 psch m: my $x = "\c[COMBINING DIAERESIS]"; print "a"; say $x
20:04 camelia rakudo-moar ac0d1d: OUTPUT«ä␤»
20:06 sprocket RabidGravy, lizmat - got it up and going on the pi - the solution was indeed to upgrade gcc to something newer than 4.6.  thanks for the help!
20:06 lizmat sprocket: glad to hear it worked out!
20:07 RabidGravy I usually test on like 5.1.1 and haven't built on arm for ages
20:07 sprocket lizmat: perhaps you can give me another nudge in the right direction, i was going to look at playing around with some bindings onto the RPi GPIO C libs.  i know that XS isn’t around anymore, what’s the best way of getting started?
20:07 lizmat NativeCall
20:08 sprocket thanks, will look into it )
20:08 sprocket :)
20:08 lizmat it comes with the core, already installed
20:08 RabidGravy it is possible that this is linked to someone implementing jit on arm
20:08 RabidGravy sprocket, do it - make my life easier as I have two RPi specific modules I want to part at some point
20:08 lizmat sprocket: testfiles of make test have some examples
20:09 sprocket RabidGravy: i’ll keep you posted as to my progress!
20:11 kjs_ joined #perl6
20:11 RabidGravy I looked at it, the other possibility is using using the kernel modules that add /dev entries and us the appropriate ones of those like tsome library does
20:12 sprocket aah ok, right
20:12 sprocket i’ve only just recently started doing much with RPi, so i’m not familiar with all the methods of doing things just yet
20:13 [Coke] oh, RPi = Raspberry Pi, not my alma mater.
20:13 RabidGravy the http://search.cpan.org/~shantanu/Device-SMBus/ also might give you some clues
20:17 kmel joined #perl6
20:18 TEttinger [Coke]: Rockin' Perl Institute?
20:20 bartolin [Coke]: you reported some dying tests with RT #126523. I'm unable to reproduce the problem (testing S02-names/pseudo.t in isolation)
20:20 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=126523
20:21 zakharyas joined #perl6
20:21 bartolin [Coke]: on the other hand I saw those "Method 'Int' not found for invocant of class 'Any'" happen seemingly at random in different places
20:21 bartolin [Coke]: most notably S32-num/complex.t
20:22 yqt joined #perl6
20:26 [Coke] bartolin: I'll rebuild and retest.
20:28 pmurias joined #perl6
20:30 b2gills m: say &[+].name.perl; say &[X+].name.perl;
20:30 camelia rakudo-moar ac0d1d: OUTPUT«"infix:<+>"␤""␤»
20:30 geraud joined #perl6
20:30 [Coke] bartolin: you know I already fudged stuff, yes?
20:31 bartolin [Coke]: yes, I reverted your commit and got a clean run on that test file.
20:31 atweiden m: my Rat:D $r = 1.0; say so $r ~~ Num
20:31 camelia rakudo-moar ac0d1d: OUTPUT«False␤»
20:31 atweiden i have a method with return type of Rat:D http://ix.io/lL2
20:32 atweiden even though i have taken steps to coerce anything and everything to Rat, this method is managing to return Num when called from another class
20:32 atweiden it returns Num in the other class even when I coerce the result of the call there with Rat(call)
20:32 bartolin [Coke]: commit 109f31fdeb is what I talk about
20:32 [Coke] do you have the commit id handy?
20:32 [Coke] danke.
20:32 atweiden how is this possible?
20:32 bartolin *g*
20:32 [Coke] bartolin: I get the same failure on moar I did yesterday.
20:33 [Coke] bartolin: https://gist.github.com/coke/17dd59a3fe66133632da
20:35 lizmat #126383
20:35 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=126383
20:35 retupmoca are there any known moar jitbugs?
20:35 [Coke] you might want to ask in #moar
20:36 lizmat you should probably ask that on #moar
20:36 [Coke] er, #moarvm
20:36 lizmat :)
20:36 lizmat indeed
20:36 lizmat :-)
20:36 retupmoca oh, right
20:36 * retupmoca wanders off
20:37 Ven_ joined #perl6
20:38 bartolin [Coke]: hm, but thats' a 'all tests successful'
20:38 bartolin [Coke]: you fudged test 114 ('indirect CALLER:CALLER works') and its passing now
20:39 bartolin [Coke]: on the other hand, I just got the error you mentioned in the ticket now on that test file.
20:39 bpmedley joined #perl6
20:39 bartolin [Coke]: So I conclude that it happens randomly :-/
20:48 bartolin [Coke]: however, thanks for looking!
20:49 rabie joined #perl6
20:50 rabie hi stefan
20:50 yoleaux 30 Oct 2015 15:32Z <lizmat> rabie: welcome!
20:50 lizmat hi rabie
20:50 rabie i need your help
20:51 lizmat let's see if we can give you that  :-)
20:51 rabie ok
20:52 rabie sudo zypper in monodevelop mono-complete with this order not working there is an error
20:53 Ven_ joined #perl6
20:53 sprocket lizmat: this NativeCall library is awesome!  So much better than spending days wrestling XS
20:54 rabie he told me the installing is complete but with error so i could not understand where is the problem
20:55 lizmat rabie: I'm afraid that doesn't ring any bell to me...  could you gist the error ?
20:58 telex joined #perl6
21:00 rabie No update candidate for 'mono-complete-4.0.4-1.8.x86_64'. The highest available version is already installed.
21:00 rabie 'monodevelop' not found in package names. Trying capabilities.
21:00 rabie No provider of 'monodevelop' found.
21:00 rabie Resolving package dependencies...
21:00 rabie this is the message i have got
21:01 RabidGravy rabie, not sure where monodevelop comes in to this?
21:01 lichtkind joined #perl6
21:02 RabidGravy sprocket, yeah you may not even have to write any C code even
21:02 sprocket RabidGravy: it’s dreamy - i’m already calling the various library functions in libwiringPi
21:02 rabie yeah that is right
21:02 RabidGravy I've made about six modules using NativeCall and all work great
21:03 rabie i did not write any codes
21:03 sprocket is there a cpan for perl6?
21:03 sprocket where would i be able to push stuff out to?
21:03 RabidGravy er eight
21:04 lizmat sprocket: at the moment, we have http://modules.perl6.org
21:04 RabidGravy right now it's http://modules.perl.org
21:04 RabidGravy basic instructions at http://doc.perl6.org/language/modules
21:06 RabidGravy basically it's stick the source on github with a META.info and add the url of the raw META.info to the big list of modules
21:06 jdv79 cpan, specifically pause and cpan, function fine at teh moment
21:06 jdv79 no installers work though
21:06 jdv79 and metacpan is 3/4 baked
21:06 jdv79 *almost*
21:06 sprocket great, thanks!
21:06 jdv79 "in the works" basically
21:09 rabie quit
21:10 lizmat rabie: if you want to leave, you probably need "/quit"
21:13 s_kilk joined #perl6
21:15 sprocket how might i defined a function alias to another already defined function?
21:16 Ven_ joined #perl6
21:16 psch m: my &talk = &say; talk "ok"
21:16 camelia rakudo-moar ac0d1d: OUTPUT«ok␤»
21:17 psch sprocket: the minimal case works as above, potential considerations are EXPORT-iness and such, those you have to handle on the new name as well if they matter
21:17 sprocket psch: gotcha, thanks :)
21:22 RabidGravy where do Slip objects come from?
21:23 RabidGravy i.e if I have one unexpectedly where to start looking
21:23 moritz from a slip() or .Slip call or a prefix |
21:23 nine .tell rabie sorry, on your openSUSE version you'll have to do: sudo zypper ar -r http://download.opensuse.org/repositories/Mono:/Factory/openSUSE_Leap_42.1/Mono:Factory.repo ; sudo zypper in monodevelop
21:23 yoleaux nine: I'll pass your message to rabie.
21:24 nine @all: sorry for the off topic discussions. rabie is a first time IRCer and we have lots of language barriers and I'm glad to have at least this line of communication.
21:26 rabie joined #perl6
21:27 nine hi rabie
21:28 lizmat hmmm... why didn't yoleaux pass the message ?
21:28 lizmat ah, duh  :-)
21:28 Ven_ joined #perl6
21:28 jdv79 RabidGravy: you got one unexpectedly?
21:29 nine rabie: say something, then you'll get the message
21:31 RabidGravy jdv79, in asmuch as I'm getting "Type check failed in assignment to $!license; expected Str but got Slip" and can't see where it came from
21:31 rabie ja das geht jezt vielen dank und gute nacht
21:31 yoleaux 21:23Z <nine> rabie: sorry, on your openSUSE version you'll have to do: sudo zypper ar -r http://download.opensuse.org/repositories/Mono:/Factory/openSUSE_Leap_42.1/Mono:Factory.repo ; sudo zypper in monodevelop
21:31 lizmat rabie: gute Nacht!
21:32 RabidGravy something built a hash and then  did Foo.new(|%hash)
21:32 jdv79 rabie: unfortunately most of us don't speak german but more english;  i believe
21:33 jdv79 RabidGravy: neat
21:34 jdv79 I thought a | in a sig was different.  does that trans to a slip?
21:34 vendethiel no, it's a capture
21:34 vendethiel m: sub foo(|a) { say a.perl }; foo(3, 4);
21:34 camelia rakudo-moar ac0d1d: OUTPUT«\(3, 4)␤»
21:34 RabidGravy yeah, which is why the slip is unexpected ;-)
21:34 jdv79 hmm.  yes...
21:39 lizmat .tell TimToady I'm having a hard time describing your work on autogen the past week.  Could you summarize that in a line of 1,2,3 (or more) for the Perl6 Weekly?
21:39 yoleaux lizmat: I'll pass your message to TimToady.
21:40 timotimo i managed to cut into the tip of my finger while preparing food :(
21:40 RabidGravy :(
21:40 jdv79 is it in the bone?
21:41 jdv79 http://memecrunch.com/meme/AYV8/ace-ventura/image.png
21:44 timotimo the cut doesn't seem deep
21:44 jdv79 if it make you feel any better i cut into the tip of my thumg with a table saw when i was in my teens 
21:44 jdv79 that was bleh
21:45 jdv79 didn't hit hte bone though!
21:45 lizmat timotimo: just make sure you disinfect it well
21:46 lizmat especialy on an old / dirty knife
21:46 jdv79 my thumb was "deflated" for a long time since that type of blade removes material:(
21:46 RabidGravy erk
21:47 jdv79 whatever.  just trying to make timo's incident seem less troubling.
21:49 lizmat .oO( maybe I should not tell about the plastic saucer used as a frisbee incident when I was a kid: a lot of blood was involved :-)
21:50 RabidGravy and I promise not to explain why I have no middle joint in my right little finger either ;-)
21:51 jdv79 nice
21:54 Ven_ joined #perl6
21:59 [Coke] S32-str/comb.t has tests that could be written to use throws-like
22:00 lizmat [Coke]: it's now using dies-ok ?
22:01 [Coke] explicit try/catch and checking exception messages.
22:01 lizmat ah, ancient then :-)
22:01 avuserow joined #perl6
22:01 [Coke] super.
22:03 itz_stmuk http://pl6anet.org/stats/
22:03 itz_stmuk w00t!
22:04 cognominal joined #perl6
22:04 lizmat itz_stmuk++  :-)
22:08 dalek roast: 636e4d6 | coke++ | / (72 files):
22:08 dalek roast: prefer RT #ticket
22:08 dalek roast:
22:08 dalek roast: (not RT ticket)
22:08 dalek roast: review: https://github.com/perl6/roast/commit/636e4d6eef
22:08 dalek rakudo/nom: fd8c986 | lizmat++ | src/core/ (2 files):
22:08 dalek rakudo/nom: Make permutations about 25% faster
22:08 dalek rakudo/nom:
22:08 dalek rakudo/nom: This is achieved by using native int (arrays).  Because of this, the sub
22:08 dalek rakudo/nom: needed to be moved *after* the native array support was compiled.  It's
22:08 dalek rakudo/nom: an odd place for this sub, but otherwise I couldn't get this to work.
22:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fd8c9866cc
22:08 Ven_ joined #perl6
22:09 lizmat still thinking about an algorithm that wouldn't need gather/take
22:10 timotimo itz_stmuk: damn, november has been our worst month ever BY FAR! what have we been doing wrong all those day???
22:10 [Coke] lizmat: you mention native arrays but say my Int @i ?
22:10 lizmat huh?
22:10 lizmat argh
22:11 lizmat fixing  :-)
22:11 itz_stmuk :)
22:11 BenGoldberg joined #perl6
22:17 tokuhirom joined #perl6
22:18 espadrine joined #perl6
22:22 jdv79 why can't i say "TypeObj.attr" and get back the type obj of attr?
22:23 psch jdv79: you're saying <class A { has Int $.foo }; A.foo> should give you an Int?
22:24 jdv79 or, is there an easy way to get the type obj for an attr off a type obj like that?
22:24 jdv79 i could instantiate a throw away i guess - seems unnecessary though
22:26 psch m: class A { has Int $.x }; A.^attributes.grep({ $_.name ~~ /x/ })[0].type.say
22:26 camelia rakudo-moar ac0d1d: OUTPUT«(Int)␤»
22:29 jdv79 yeah.  i guess blocking attrs 100% on type objs is simpler.  though in an alternate universe allowing fetching of the associcated type obj might be cool.
22:30 tokuhirom joined #perl6
22:30 psch jdv79: well, A.x actually means "call the autogenerated rw method that returns the container for the Attribute x"
22:31 psch s/rw/and potentially rw/
22:31 psch jdv79: it sounds like an interesting thing to realize with some MOP-fumbling, though, if that interests you
22:33 jdv79 maybe.  i'm fumbling on a related note.  maybe tomorow.  thanks.
22:34 jdv79 i'm getting "undeclared routine" on an instance for some accessors.  idk what i did?!
22:36 jdv79 oh, just my idiocy.  used %h{k} instead of %h<k>.  cool error.  can we get more specific error locations?  add column maybe?
22:37 psch m: my %h; %h{k}
22:37 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dJfsgDGJlJ␤Undeclared routine:␤    k used at line 1␤␤»
22:38 psch yeah, that could maybe use an eject
22:38 psch m: my $x; $y
22:38 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WVm88D1ouS␤Variable '$y' is not declared␤at /tmp/WVm88D1ouS:1␤------> 3my $x; 7⏏5$y␤»
22:39 jdv79 do ejects work for multiple?
22:39 psch multiple what?
22:39 jdv79 errors
22:39 psch m: my $x; $y; $z;
22:39 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kz67nuwH88␤Variable '$y' is not declared␤at /tmp/kz67nuwH88:1␤------> 3my $x; 7⏏5$y; $z;␤»
22:40 psch compile time errors bail at the first i guess
22:40 jdv79 nope
22:40 jdv79 i got multiple 
22:40 psch m: my %h; %h{a}; %h{b}
22:40 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5isYgnr0Ft␤Undeclared routines:␤    a used at line 1␤    b used at line 1␤␤»
22:40 psch well, that's one error
22:40 psch that might be why there's no eject yet, we're not carrying the offending lines around long enough
22:41 jdv79 m: my %h; %h{a} = 1; %h{b} = 1;
22:41 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QYEU69FCiZ␤Undeclared routines:␤    a used at line 1␤    b used at line 1␤␤»
22:41 jdv79 gotta go...
22:43 lizmat m: a; a; a; a; a;
22:43 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lUMrm7FT7R␤Undeclared routine:␤    a used at line 1␤␤»
22:43 psch lizmat++
22:44 psch that's probably a good argument against ejects
22:44 lizmat m: EVAL "a;\na;\na;\na;\n"
22:44 camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Undeclared routine:␤    a used at lines 1, 2, 3, 4␤␤»
22:44 psch having each line in the error with color and all i mean
22:44 uruwi Question: are there that many use cases for permutations?
22:44 lizmat not sure  :-)
22:44 uruwi As it's an O(n!) operation
22:45 uruwi Appreciate the speedup anyway.
22:45 nowan joined #perl6
22:46 lizmat $ 6 'class A { has Int $.a }; say A.^attribute<$!a>.type'
22:46 lizmat (Int)
22:46 lizmat jdv79 ^^^  would that work for you ?
22:49 lizmat https://gist.github.com/lizmat/d01f35e64b648578e3a4   # adding that, not sure if it is a good idea or not
22:52 * psch .oO( this clearly means we need wanthash..! )
22:58 abaugher joined #perl6
23:00 raiph joined #perl6
23:11 adu joined #perl6
23:19 BenGoldberg m: my $excl = 42; sub foo(%_) { %_.say }; foo(:$excl);
23:19 camelia rakudo-moar fd8c98: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤  in sub foo at /tmp/PimM4Iqkh5:1␤  in block <unit> at /tmp/PimM4Iqkh5:1␤␤»
23:19 BenGoldberg m: my $excl = 42; sub foo(%_) { %_.say }; foo($:excl);
23:19 camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VoxSAr05ag␤Cannot use placeholder parameter $:excl in the mainline␤at /tmp/VoxSAr05ag:1␤------> 3= 42; sub foo(%_) { %_.say }; foo($:excl7⏏5);␤»
23:19 BenGoldberg m: my $excl = 42; sub foo() { %_.say }; foo($:excl);
23:19 camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VE0r0uNqcE␤Placeholder variable '%_' cannot override existing signature␤at /tmp/VE0r0uNqcE:1␤------> 3my $excl = 42; sub7⏏5 foo() { %_.say }; foo($:excl);␤»
23:20 BenGoldberg lizmat, IIRC, you can write :excl($excl) as :$excl.  I think.
23:21 lizmat I guess, I just copy pasted it from method attributes above that
23:22 lizmat BenGoldberg: fwiw, it's nqp code, not Perl 6
23:22 BenGoldberg Hmm, nvmind then.
23:26 psch nqp-m: sub f(:$excl) { }
23:26 camelia nqp-moarvm: ( no output )
23:26 psch nqp-m: sub f(:$excl) { $excl }; say(:excl("foo"))
23:26 camelia nqp-moarvm: OUTPUT«Unexpected named parameter 'excl' passed␤   at gen/moar/stage2/NQPCORE.setting:685  (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPCORE.setting.moarvm:say:3)␤ from /tmp/rUPtyPdO_d:1  (<ephemeral file>:<mainline>:29)␤ from gen/moar/stage2/NQPHLL.nqp:1303  (/ho…»
23:37 BenGoldberg joined #perl6
23:42 dalek rakudo/nom: 1051fcc | lizmat++ | src/core/ (2 files):
23:42 dalek rakudo/nom: Move TRANSPOSE to Rakudo::Internals
23:42 dalek rakudo/nom:
23:42 dalek rakudo/nom: Also: greatly simplify it, making it between 1.8 (if no matches) and
23:42 dalek rakudo/nom: 2.2 (only matches) as fast as before.  This also meant that TRANSPOSE-ONE
23:42 dalek rakudo/nom: was now outrun by TRANSPOSE, so there was no special version for that
23:42 dalek rakudo/nom: needed anymore.
23:42 dalek rakudo/nom:
23:42 dalek rakudo/nom: Affected Rakudo level code:
23:42 dalek rakudo/nom: - Str.subst("from","to",:global) (aka s:g/from/to/)
23:42 dalek rakudo/nom: - Str.trans(o => "foo")          (aka tr/o/foo/)
23:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1051fcc248
23:43 raiph joined #perl6
23:44 dayangkun joined #perl6
23:46 lizmat good night, #perl6
23:47 cognominal m: class A { method a is export { say 'a'}}; a
23:47 camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QHjqAOx5my␤Undeclared routine:␤    a used at line 1␤␤»
23:49 psch m: class A { method a is export { say 'a'}}; import A; a
23:49 camelia rakudo-moar fd8c98: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤  in method a at /tmp/eeow6kjT70:1␤  in block <unit> at /tmp/eeow6kjT70:1␤␤»
23:49 cognominal not sure what "in scope by default" mean here :  https://github.com/perl6/specs/blame/master/S12-objects.pod#L323
23:54 psch cognominal: note that IO is already imported in mainline code
23:55 psch cognominal: "[...], which - in addition to the method - puts a multi sub in scope by default" is how i understand it with the behavior that's shown
23:57 cognominal 'method ... is export' not used in the setting
23:58 RabidGravy .tell tadzik it would be a great boon to me if you could take a look at https://github.com/tadzik/JSON-Unmarshal/pull/9 :)
23:58 yoleaux RabidGravy: I'll pass your message to tadzik.
23:58 timotimo that's right. because the user's program behaves like it's in an inner lexical scope compared to the setting
23:58 cognominal I see it in roast though
23:59 timotimo oh, sorry, i didn't realize you were talking about methods
23:59 jantore joined #perl6
23:59 cognominal ... but skipped

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

Perl 6 | Reference Documentation | Rakudo