Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-12-23

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:02 geraud m: say ૪ + ৪;
00:02 camelia rakudo-moar f0c546: OUTPUT«8␤»
00:04 [Coke] lizmat: I thought you just said that was problematic?
00:04 [Coke] m: say 8/૪
00:04 camelia rakudo-moar f0c546: OUTPUT«2␤»
00:05 lizmat m: say (^3.5 .. ^7.5).minmax
00:05 camelia rakudo-moar f0c546: OUTPUT«Range objects are not valid endpoints for Ranges␤  in block <unit> at /tmp/MwrbQZx10K:1␤␤»
00:05 lizmat m: say (^3.5..^7.5).minmax
00:05 camelia rakudo-moar f0c546: OUTPUT«Range objects are not valid endpoints for Ranges␤  in block <unit> at /tmp/rWEJpqjRNe:1␤␤»
00:06 mscha p6: for -Inf^..^Inf { .say }
00:06 lizmat m: say (3.5^..^7.5).minmax
00:06 camelia rakudo-moar f0c546: OUTPUT«(timeout)-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-I…»
00:06 camelia rakudo-moar f0c546: OUTPUT«4.5..6.5␤»
00:06 lizmat [Coke]: ^^^ not incorrect result
00:06 lizmat *note
00:07 lizmat $ 6 'say (3.5^..^7.5).minmax'
00:07 lizmat Cannot return minmax on Range with excluded ends
00:07 lizmat $ 6 'say (-Inf..Inf).minmax'
00:07 lizmat (-Inf Inf)
00:07 pochi m: class Foo { has $!secret = 42; method magic(Foo $other) { return $!secret + $other!secret } }; say )
00:07 camelia rakudo-moar f0c546: OUTPUT«5===SORRY!5=== Error while compiling /tmp/85EG25zOmP␤No such private method 'secret' for invocant of type 'Foo'␤at /tmp/85EG25zOmP:1␤------> 3(Foo $other) { return $!secret + $other!7⏏5secret } }; say␤»
00:07 _nadim timotimo: I was serious, hapilly broken AKA, I can do something with it. Compared to unhapilly broken and I don't understand what's going on :)
00:07 mscha What's the diff between -Inf^..^Inf and -Inf..Inf?  ;)
00:08 pochi how do I access the private variable secret for an object other than the invocant?
00:08 lizmat mscha: the ^ indicates that the endpoint is to be excluded
00:08 timotimo _nadim: ok, that's good!
00:08 mscha I know, but how do you exclude -Inf?
00:08 lizmat mscha: in the case of Inf, in practice it doesn't make any difference
00:09 dalek rakudo/nom: 0b80308 | lizmat++ | src/core/
00:09 dalek rakudo/nom: Implement basic Range.minmax, so ^Inf won't hang
00:09 dalek rakudo/nom:
00:09 dalek rakudo/nom: Also fail if any of the endpoints are excluded *and* we don't have an
00:09 dalek rakudo/nom: integer range.
00:09 dalek rakudo/nom: review:
00:09 lizmat [Coke]: ^^^
00:10 lizmat and on that note, I wish #perl6 a good night!
00:10 [Coke] lizmat++
00:12 mscha p6: my $r1 = -Inf^..^Inf; my $r2 = -Inf..Inf; say -Inf ~~ $r1; say -Inf ~~ $r2; for |$r1 { .say; last; }
00:12 camelia rakudo-moar b69aa5: OUTPUT«False␤True␤-Inf␤»
00:13 mscha I hate math with infinites...
00:17 labster m: say Inf + 1;
00:17 camelia rakudo-moar b69aa5: OUTPUT«Inf␤»
00:23 mscha m: say 2×Inf - Inf;
00:23 camelia rakudo-moar b69aa5: OUTPUT«NaN␤»
00:24 MadcapJake joined #perl6
00:25 mscha m: say ∞;
00:25 camelia rakudo-moar b69aa5: OUTPUT«Inf␤»
00:26 [Coke] m: say ∞**∞
00:26 camelia rakudo-moar b69aa5: OUTPUT«Inf␤»
00:27 [Coke] anyone know how to update rakudobrew on hack?
00:27 mscha m: say 2.9999999 ≈ 3;
00:27 camelia rakudo-moar b69aa5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BEd32TN4rv␤Confused␤at /tmp/BEd32TN4rv:1␤------> 3say 2.99999997⏏5 ≈ 3;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statemen…»
00:27 mscha m: say 2.999999 ≈≈ 3;
00:27 camelia rakudo-moar b69aa5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1LihM8ZQVT␤Confused␤at /tmp/1LihM8ZQVT:1␤------> 3say 2.9999997⏏5 ≈≈ 3;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statem…»
00:28 mscha say π ≠ e;
00:28 mscha m: say π ≠ e;
00:28 camelia rakudo-moar b69aa5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eiVAUWkbap␤Confused␤at /tmp/eiVAUWkbap:1␤------> 3say π7⏏5 ≠ e;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement modif…»
00:29 mscha m: sub infix<≠> { $^a != $^b }; say π ≠ e;
00:29 camelia rakudo-moar b69aa5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oUNB9M29XK␤Missing block␤at /tmp/oUNB9M29XK:1␤------> 3sub infix7⏏5<≠> { $^a != $^b }; say π ≠ e;␤    expecting any of:␤        new name to be defined␤»
00:29 mscha m: sub infix<≠>($a, $b) { $a != $b }; say π ≠ e;
00:29 camelia rakudo-moar b69aa5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/s107E8hJhy␤Missing block␤at /tmp/s107E8hJhy:1␤------> 3sub infix7⏏5<≠>($a, $b) { $a != $b }; say π ≠ e;␤    expecting any of:␤        new name to be defined␤»
00:29 mscha m: sub infix:<≠>($a, $b) { $a != $b }; say π ≠ e;
00:29 camelia rakudo-moar b69aa5: OUTPUT«True␤»
00:30 mscha m: sub infix:<≠> { $^a != $^b }; say π ≠ e;
00:30 camelia rakudo-moar b69aa5: OUTPUT«True␤»
00:30 mohae_ joined #perl6
00:36 AlexDaniel mscha: actually, I've always wondered if these should be built in
00:37 AlexDaniel m: say 2.999999 ≅ 3
00:37 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:37 AlexDaniel m: say 2.999999e0 ≅ 3
00:37 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:37 AlexDaniel m: say 2.99999999999999e0 ≅ 3
00:37 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:37 AlexDaniel m: say 2.9999999999999999999e0 ≅ 3
00:37 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:37 AlexDaniel m: say 2.9999999999999999999 ≅ 3
00:37 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:37 timotimo [Coke]: it seems like every user has their own .rakudobrew
00:37 AlexDaniel m: say 2.999999999999999 ≅ 3
00:37 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:37 AlexDaniel m: say 2.999999999999 ≅ 3
00:37 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:38 AlexDaniel mscha: approx is there though
00:38 mscha Cool
00:38 AlexDaniel ≤ ≥ ≠ hmm
00:39 skids joined #perl6
00:39 mscha m: say 3 ≤ π;
00:39 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mD0rz8isCF␤Confused␤at /tmp/mD0rz8isCF:1␤------> 3say 37⏏5 ≤ π;␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement modif…»
00:39 [Coke] timotimo: there is a /home/rakudobrew though
00:39 AlexDaniel .u ≛
00:39 yoleaux U+225B STAR EQUALS [Sm] (≛)
00:39 AlexDaniel what a neat symbol :D
00:40 AlexDaniel .u ⩲
00:40 yoleaux U+2A72 PLUS SIGN ABOVE EQUALS SIGN [Sm] (⩲)
00:40 mscha .u ????
00:40 yoleaux No characters found
00:40 timotimo oh?
00:40 AlexDaniel too bad there's no MINUS SIGN ABOVE EQUALS SIGN
00:41 AlexDaniel mscha: yoleax is a bit old in that sense
00:41 timotimo huh. i can't seem to sudo on hack
00:42 AlexDaniel mscha: there are also ⩵ and ⩶ but nobody knows how these are supposed to look like with fixed-width fonts :)
00:42 timotimo must have changed my password and forgotten to update it in the password database?
00:43 mscha .u ????
00:43 yoleaux U+1F4A9 PILE OF POO [So] (????)
00:43 [Coke] timotimo: I can.
00:44 timotimo i wouldn't just go into /home/rakudobrew and rakudobrew self-upgrade or something
00:45 timotimo since i don't know if it's part of any kind of setup
00:45 timotimo like a cron job or something
00:50 [Coke] m: say $*PERL;
00:50 camelia rakudo-moar 0b8030: OUTPUT«Perl 6 (6.b)␤»
00:50 [Coke] . ask TimToady - you want to change our version to be 6.c ? I'd like to have it running for a day at least before release.
00:53 [Coke] .ask TimToady - you want to change our version to be 6.c ? I'd like to have it running for a day at least before release.
00:53 yoleaux [Coke]: I'll pass your message to TimToady.
00:53 mohae joined #perl6
00:54 TimToady sure, we can do that
00:54 yoleaux 00:53Z <[Coke]> TimToady: - you want to change our version to be 6.c ? I'd like to have it running for a day at least before release.
00:54 mohae joined #perl6
00:54 TimToady maybe call it 6.c.RC1 first?
00:55 BenGoldberg joined #perl6
00:55 mscha sub infix:<≤> { $^a <= $^b }; 3 ≤ 7 ≤ 5; # oops
00:55 mscha p6: sub infix:<≤> { $^a <= $^b }; 3 ≤ 7 ≤ 5; # oops
00:55 camelia rakudo-moar 0b8030: ( no output )
00:55 mscha p6: sub infix:<≤> { $^a <= $^b }; 3 ≤ 7 ≤ 5;
00:55 camelia rakudo-moar 0b8030: ( no output )
00:56 TimToady say?
00:56 geekosaur need a say in there
00:56 mscha p6: sub infix:<≤> { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
00:56 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:56 TEttinger p6: sub infix:<≤> { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
00:56 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:56 TimToady and you probably want 'is equiv(&[<=]) or so
00:56 TEttinger neat
00:56 TimToady otherwise it has no hope of chaining
00:56 BenGoldberg p6: sub infix:<≤> is assoc('List') { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
00:56 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:56 TimToady it's not doing what you think
00:56 TimToady nor is that
00:57 TimToady all you're testing is that True <= 5
00:57 BenGoldberg p6: say True <= 5
00:57 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:57 mscha p6: sub infix:<≤> is equiv(&[<=]) { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
00:57 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Routine given to equiv does not appear to be an operator␤at /tmp/tmpfile:1␤»
00:57 TimToady or some such
00:57 BenGoldberg p6: say True <= -3
00:57 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:58 BenGoldberg p6: sub infix:<≤> { $^a <= $^b }; say -3 ≤ -2 ≤ -1;
00:58 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:58 BenGoldberg p6: say -3 <= -2 <= -1;
00:58 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:59 BenGoldberg p6: say [<=] -3, -2, -1;
00:59 camelia rakudo-moar 0b8030: OUTPUT«True␤»
00:59 BenGoldberg p6: sub infix:<≤> { $^a <= $^b }; say [≤] -3, -2, -1;
00:59 camelia rakudo-moar 0b8030: OUTPUT«False␤»
00:59 TimToady m: sub infix:<≤> is equiv(&infix:«<=») { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
00:59 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RcXZiuBhDP␤Routine given to equiv does not appear to be an operator␤at /tmp/RcXZiuBhDP:1␤»
00:59 TimToady hmm, bug
01:00 TimToady m: say &[<=>].prec
01:00 camelia rakudo-moar 0b8030: OUTPUT«Method 'prec' not found for invocant of class 'Sub+{<anon|63995968>}'␤  in block <unit> at /tmp/nMzURGtrjB:1␤␤»
01:00 TimToady m: say &[<=].prec
01:00 camelia rakudo-moar 0b8030: OUTPUT«Method 'prec' not found for invocant of class 'Sub+{<anon|63995968>}'␤  in block <unit> at /tmp/PNAJEGHx6u:1␤␤»
01:01 TimToady that's also buggy
01:01 lichtkind perlhist is down, you know wo runs it?
01:02 TimToady m: sub infix:<≤> is prec('m=') is assoc('chaining') { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
01:02 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vt7gOhwIZ1␤Can't use unknown trait 'is prec' in a sub+{precedence} declaration.␤at /tmp/vt7gOhwIZ1:1␤    expecting any of:␤        rw raw hidden-from-backtrace hidden-from-USAGE␤        pure default D…»
01:02 mscha p6: sub infix:<≤> is assoc:<chain> { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
01:02 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Can't use unknown trait 'is assoc:<chain>' in a sub+{precedence} declaration.␤at /tmp/tmpfile:1␤    expecting any of:␤        rw raw hidden-from-backtrace hidden-from-USAGE␤        pure defaul…»
01:02 TimToady m: sub infix:<≤>($a,$b) is prec('m=') is assoc('chaining') { $a <= $b }; say 3 ≤ 7 ≤ 5;
01:02 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/19Orkmcxvm␤Can't use unknown trait 'is prec' in a sub+{precedence} declaration.␤at /tmp/19Orkmcxvm:1␤    expecting any of:␤        rw raw hidden-from-backtrace hidden-from-USAGE␤        pure default D…»
01:03 ShimmerFairy TimToady: any particular reason we don't have ≤ and ≥ in core? We've got lots of other nifty Unicode things stuffed in there already :P
01:03 mscha p6: proto sub infix:<≤>($, $) returns Bool:D is assoc:<chain>; sub infix:<≤> { $^a <= $^b }; say 3 ≤ 7 ≤ 5;
01:03 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤A unit-scoped sub definition is not allowed except on a MAIN sub;␤Please use the block form.␤at /tmp/tmpfile:1␤------> 3>($, $) returns Bool:D is assoc:<chain>;7⏏5 sub infix:<≤> { $^a <= …»
01:04 TimToady looks like whoever implemented it did so with a :pasttype<chain> to hardwire it, hmmm...
01:04 mscha p6: proto sub infix:<≤>($, $) returns Bool:D is assoc:<chain>; sub infix:<≤>($a, $b) { $a <= $b }; say 3 ≤ 7 ≤ 5;
01:04 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤A unit-scoped sub definition is not allowed except on a MAIN sub;␤Please use the block form.␤at /tmp/tmpfile:1␤------> 3>($, $) returns Bool:D is assoc:<chain>;7⏏5 sub infix:<≤>($a, $b) {…»
01:04 TimToady ShimmerFairy: well, especially since it seems impossible to add them at the moment after the fact...
01:05 TimToady which is a bug, but I don't know if we'll get to it before 6.c
01:05 ShimmerFairy true, it's proving a nice test of what's possible with custom ops at the moment :)
01:06 ShimmerFairy TimToady: Other operator things that bug me is how unary precedence stuff is faked by NQP (last I checked), and how, at least in rakudo core, it's hard to set up "aliases" like  constant &infix:<texas> := &infix:<☃>  or however
01:06 TimToady m: constant &infix:<≤> = &infix:«<=»; say 3 ≤ 7 ≤ 5;
01:06 camelia rakudo-moar 0b8030: OUTPUT«True␤»
01:07 TimToady well, at least that works
01:07 * TimToady fondly remembers the days when the saying was: "It's good that there's more than one way to do it, because most of them don't work."
01:07 yeahnoob joined #perl6
01:07 mscha TimToady: it works ... incorrectly.
01:08 timotimo that's true, hah
01:08 raiph joined #perl6
01:08 BenGoldberg m: constant &infix:<≤> = &infix:«<=»; say -3, -2, -1;
01:08 camelia rakudo-moar 0b8030: OUTPUT«-3-2-1␤»
01:08 mscha m: constant &infix:<≤> = &infix:«<=»; say 3 ≤ 7 ≤ 5; say 3 <= 7 <= 5;
01:08 camelia rakudo-moar 0b8030: OUTPUT«True␤False␤»
01:08 timotimo it probably ends up giving 3 <= 7 -> True, then True <= 5
01:08 BenGoldberg m: constant &infix:<≤> = &infix:«<=»; say -3 ≤ -2 ≤ -1;
01:08 camelia rakudo-moar 0b8030: OUTPUT«False␤»
01:08 TimToady yeah, it's applying it as a binary, i guess
01:10 ShimmerFairy something like that, even if it needs a special construct, would be the best way to handle texas/unicode variant stuff, I feel.
01:10 BenGoldberg m: sub infix:<≤> is assoc<list> { [<=] @_ }; say -3 ≤ -2 ≤ -1;
01:10 camelia rakudo-moar 0b8030: OUTPUT«True␤»
01:11 timotimo i'd almost say get a different prefix (like "operator") in there so the assignment knows to also move stuff like precedence and such over into the grammar
01:11 BenGoldberg m: sub infix:<≤> is assoc<list> { $^a <=> $^b }; say -3 ≤ -2 ≤ -1;
01:11 camelia rakudo-moar 0b8030: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RiYkPYdzLQ␤Calling infix:<≤>(Int, Int, Int) will never work with declared signature ($a, $b)␤at /tmp/RiYkPYdzLQ:1␤------> 3ssoc<list> { $^a <=> $^b }; say -3 ≤ -2 7⏏5≤ -1;␤»
01:11 TimToady we already know it's an operator
01:11 TimToady that's not the problem
01:11 timotimo ah, ok
01:12 BenGoldberg m: sub infix:<≤> is assoc<list> { [<=] @_ }; say [≤] -3, -2, -1;
01:12 camelia rakudo-moar 0b8030: OUTPUT«True␤»
01:12 BenGoldberg I think that works
01:12 TimToady it only works for cascaded <=, but won't interact well with chaining ops at the right precedence
01:12 mscha m: sub infix:<≤> is assoc<list> { [<=] @_ }; say 3 ≤ 7 ≤ 5;
01:12 camelia rakudo-moar 0b8030: OUTPUT«False␤»
01:12 timotimo m: say 1 < 10 > 5
01:12 camelia rakudo-moar 0b8030: OUTPUT«True␤»
01:12 timotimo ^- that, for example
01:13 mscha m: sub infix:<≤> is assoc<list> { [<=] @_ }; say 3 ≤ 7 < 5;
01:13 camelia rakudo-moar 0b8030: OUTPUT«True␤»
01:13 BenGoldberg m: sub infix:<≤> is assoc<list> { [<=] @_ }; say 1 ≤ 10 > 5;
01:13 camelia rakudo-moar 0b8030: OUTPUT«False␤»
01:13 mscha m: sub infix:<≤> is assoc<list> { [<=] @_ }; say 3 ≤ 7 < 5; say 3 <= 7 < 5;
01:13 camelia rakudo-moar 0b8030: OUTPUT«True␤False␤»
01:15 TimToady it has to be at chain precedence with chain associativity for it to work right, and there's just no way to get there from here at the moment
01:15 BenGoldberg m: say 1 R, 2 R, 3
01:15 camelia rakudo-moar 0b8030: OUTPUT«(2 1)␤»
01:15 TimToady that looks like a buglet of some sort
01:16 TimToady m: say [R,] 1,2,3
01:16 camelia rakudo-moar 0b8030: OUTPUT«(3 2 1)␤»
01:16 stmuk whats happening with git post Xmas? will there be two branches?
01:16 TimToady presumably
01:17 TimToady or at least, once we want to start making language changes for 6.d.alpha
01:18 mohae joined #perl6
01:18 TimToady also, rakudo doesn't have to branch the same as roast
01:18 TimToady there might well be buglets we could patch in a 6.c roast without compromising backward compat
01:19 yqt joined #perl6
01:20 TimToady and if we're forced to issue a maintenance release based on 6.c due to a security flaw, then we'd certainly need to branch
01:20 TimToady so we might as well plan for it at some point
01:21 TimToady but we can probably decide that rather more post-xmas than we are now
01:21 TimToady we can branch lazily when we need to
01:21 stmuk is it Xmas UTC or PST? :)
01:21 timotimo timotired
01:21 TimToady that will depend on who does the release when, I imagine
01:22 adu joined #perl6
01:22 timotimo good night perl6 people!
01:24 timotimo i'd really be interested to see a good example where the line between "this is a buglet. we'll fix it in roast and in rakudo" and "this is a feature. it'll go into the next language version." is
01:26 skids Well one criterion would probably be "is it reasonable for someone to have relied on behavior we are about to change?"
01:27 BenGoldberg R, losing arguments is surely a buglet.
01:28 AlexDaniel skids: what if it is a new feature that nobody could have possibly relied on in the past
01:28 TimToady indeed, nobody in their right mind, with the possible exception of BenGoldberg++, would even try to do that :)
01:28 BenGoldberg On the other hand, the specific order of the results of 1 R, 2 R, 3 is probably something which shouldn't be relied on.  I recall an earlier version of rakudo producing truly scrambled results ;)
01:28 skids AlexDaniel: then we'd have too rely on other criteria.
01:29 timotimo oh, and: how legit is it to push a few tests just before 6.c into roast for bugs we've discovered in the last day?
01:29 TimToady in new features, it tends to come down to whether we're going to pollute a namespace that someone has already put something else into
01:29 timotimo like my $foo =; $foo += 1; being supposed to throw the failure
01:29 TimToady fortunately, our lexical setting allows us to add things that will automatically be shadowed in user code
01:30 TimToady yeah, that's more something we have t ofix
01:30 TimToady *to fix, even
01:30 timotimo er. if i keep being awake, i'm not going to be sleeping any time soon.
01:30 ShimmerFairy btw, how do feel about pack/unpack ? Should we hide it behind that same "experimental" thing that stuff like macros are under, or move it to a separate module entirely? I really don't want to find ourselves maintaining backward-compat with a weird subset of P5-era functionality.
01:30 TimToady good night, timotimo, we promise not to talk about anything interesting now :)
01:30 flussence IMO, pack/unpack = ewww.
01:30 havenwood left #perl6
01:31 timotimo no. talk about interesting things! it's far too close to christmas to look out for little me's backlog size
01:31 flussence but there isn't really a good substitute right now, so I'm not sure about hiding it
01:31 TimToady we'll just have to play the bits of pack/unpack by ear
01:31 skids Well, how easy is it to use P5 pack/unpack via Inline::Perl5 from perl6, maybe we don't need a P6 version of it quite yet?
01:31 ShimmerFairy flussence: my concern is having to do backward-compat for something that's not designed for P6's strengths and needs :)
01:32 ShimmerFairy there was talk before of moving it out to a module, but I guess it hasn't happened yet.
01:32 thomax joined #perl6
01:32 TimToady we can always name them something else
01:32 TimToady I mean, the new shiny ones
01:32 * flussence tried writing binary-network-IO stuff a week or two ago, and it ended up being an absolute trainwreck
01:33 TimToady I don't think we can fix that trainwreck before xmas
01:33 flussence thing is, I'm not sure *what* I want for that type of code. :(
01:33 ShimmerFairy TimToady: yeah, I had a binary grammar idea where I referred to them as "formats" (cf. file formats), so they could theoretically be .format/.deformat, or something like that.
01:33 BenGoldberg Maybe instead of pack/unpack we should have something resembling javascript's DataView... (just an idea).
01:33 stmuk pack/unpack sounds like ecosystem to me and I would prefer a nicer API to it
01:33 skids flussence: you mean packet dissection/construction?
01:33 TimToady we can talk about it...after xmas...
01:33 ShimmerFairy Of course, then the question is if (un)pack really deserve to be in core, if they're just going to forever be a P5-ish thing :)
01:34 * TimToady is gonna go fix bugs...
01:34 AlexDaniel skids: hah, though hiding qqx in Inline::Perl5 sounds like a great idea :D
01:35 flussence skids: yeah, along with some variable-width integer parsing to get blob lengths.
01:35 ShimmerFairy Like I said, I'm only concerned about the "having to support a subset of a P5-era design in core as backwards compatibility" aspect. If that's not much of an issue, then I'm OK :)
01:35 stmuk "use JUNKIE-EVIL" for qqx injections!
01:36 skids flussence: I've run into that as well, and there's a gist out there with some vague ideas.
01:36 Juerd In my opinion, current Perl 6 eval is barely useful, and it will be impossible to maintain backwards compatibility with it.
01:36 Juerd s/eval/pack and unpack/
01:36 ShimmerFairy flussence: in case you're interested, here's my incomplete idea on binary grammars I pasted a while back:
01:36 ShimmerFairy (could be done as a slang, perhaps)
01:37 flussence .oO( pack is just a roundabout way of eval'ing machine code into boxed datatypes... )
01:37 dalek rakudo/nom: 9a01b4b | TimToady++ | src/Perl6/Actions.nqp:
01:37 dalek rakudo/nom: make sure >>[=]>> and X= want their base ops
01:37 dalek rakudo/nom: review:
01:37 Juerd I actively used pack and unpack, wrote a wrapper to deal with *some* of the missing functionality, got a great feel for how hard it is to parse those templates.
01:38 Juerd It would be good if this were explicitly marked as experimental
01:38 mohae joined #perl6
01:38 Juerd Note that currently, they simply *ignore* unsupported things in templates
01:38 Juerd If they're not marked as experimental, it should at least croak on unsupported stuff so there's some unicode left for future implementations.
01:39 ShimmerFairy Juerd: yeah, which is why I'd like to at least hide it behind "experimental", so you know that it's fragile to be using it.
01:39 Juerd Could not agree more strongly.
01:40 TimToady please rakudobug the chaining issue; I think I should work on making 'while' work better instead when a return value is wanted
01:41 TimToady that is, I should work on #126005 now
01:43 TimToady and if anyone here feels like trying to narrow down #123272, or install some instrumentation by which we might narrow it down, by all means feel free
01:43 TimToady otherwise we're likely to have to distribute with that unfixed
01:44 TimToady another approach would be to figure out how to detect when it goes wrong, and compensate somehow, but that's if we can't find the actual bug soon
01:44 skids Uhm isn't that one fixed?
01:45 TimToady not resolved in RT
01:45 skids Well, I added tests, and if run_alt has decided to shift to other places, they might be passing now.
01:46 TimToady but anyway, please be aware that last-minute bikeshedding is a little counterproductive to getting the release out
01:46 skids I'll run a spectest and see.
01:46 TimToady the RT seems to indicate the test for it is fudged?
01:46 administ1ator joined #perl6
01:47 TimToady anyway, Not My Bug Right Now
01:47 Juerd Camelia will be your bug right now :)
01:47 grondilu J-2 huh? is everything going well for the Xmas release?
01:47 cxreg seems sometimes a panda install fails with "Cannot unbox a type object" and then works on retry.  known behavior?
01:50 uruwi joined #perl6
01:50 muraiki joined #perl6
01:54 mohae joined #perl6
01:54 flussence ShimmerFairy: that text sounds interesting. It doesn't seem to have any way of handling variable things besides simple null-terminated strings (e.g. UTF-8, p5's «pack 'w*'»), but I'm not going to suggest any syntax for that cause I'm no designer :)
01:55 ShimmerFairy flussence: yeah, it ends right where I was going to write about dealing with specific byte positions (checking them and such), but back when I posted the thing as-is. So it's certainly not a complete, much less final, design :)
01:56 skids RT #123272 tests are currently not fudged and passing, adding note to that effect to RT.
01:56 flussence (now that I've looked at what w* does, it sounds like I really wanted exactly that for writing that net code the other day...)
02:00 raiph joined #perl6
02:04 pnu joined #perl6
02:06 * flussence is reading masak++'s advent post and sees WP mutilated the HTML *again*... (infix:{missing-thing})
02:06 goblinJRT joined #perl6
02:06 goblinJRT left #perl6
02:07 * skids is happy to see the loop/while return value thing being worked on pre-xmas, btw
02:07 skids It was perhaps my biggest remaining concern.
02:10 ShimmerFairy flussence: and just so you know, my idea was pretty regex-like, so e.g. <u8>+ would theoretically capture variable amounts of unsigned bytes. Problem is, in binary grammars a lot of things are pretty much different kinds of /./, at least how I've thought of it so far :)
02:10 flussence well you've put more thought into it than I have, so I'll let you be the expert :)
02:13 Juerd ShimmerFairy: I'm thinking along the lines of signatures, much like NCI
02:14 Juerd ShimmerFairy: They can be nested, and I can imagine that with some creativity a syntax could be invented for repetition
02:15 ShimmerFairy sure, that's why I went along the regex route when I wrote that, since those do well with repetition and nesting :)
02:15 Juerd Yes, but regexes don't do well with value types, and that's where signatures shine
02:15 Juerd Regexes already have repetition, signatures already have types. Argh :)
02:16 Juerd Note that (un)pack also needs typed repetition. It's not enough to know that something has a length of *, it also matters that the * itself is encoded as e.g. a uint32
02:18 ShimmerFairy Juerd: yeah, that's how I handled the idea of strings with a length beforehand; specify the type of the length prefix, and then the type of the string's characters.
02:18 Juerd Well, strings are relatively easy
02:19 Juerd But you may need to encode the length of a group of things, e.g. n(n/a* n n x z*)
02:19 Juerd er, with a / after the first n
02:21 ShimmerFairy there's also the <,u8 a b c> syntax I dreamt up to handle a field of three bytes (for example), though it didn't come designed to handle different types in one construct.
02:25 Juerd I have a feeling that much of the repetition syntax isn't needed, by the way
02:25 Juerd There are length prefixes and there's repetition. But would it be bad to lose the n4 syntax as a shortcut for nnnn?
02:26 FROGGS_ joined #perl6
02:26 Juerd Length suffixes are usually *, and used for strings
02:26 ShimmerFairy Juerd: yeah, <,u8 ...> for example is a case of me going "hey, I get annoyed with writing  info1 = stuff[0x06]; info2 = stuff[0x07]; in C++, so how's about shortening that?"
02:26 ShimmerFairy Juerd: I'm not sure what you're referring to with n4 and stuff, though
02:27 Juerd C4 in Perl 5 pack is C C C C
02:27 Juerd In most cases that I've been using pack or unpack, I've never needed those at all
02:27 Juerd And I have the feeling that string encoding like hex and binary aren't in the right place in pack anyway
02:28 Juerd You tend not to use those when you're dealing with actual binary data
02:28 ShimmerFairy yeah, I don't see the worth in that, if needed it should be something like C**4 (that is, like in regexes)
02:28 Juerd When dealing with binary data, you usually have a template that describes a protocol or file format
02:28 Juerd And that's typically struct-like, except it has length prefixes
02:29 ShimmerFairy A lot of my rough ideas were designed precisely for the fact that binary, unlike textual, data is more position- and size-oriented than it is "syntax"-oriented :)
02:30 Juerd Signature literals could really do this, e.g. :(uint32 = :(int16, uint32 = Blob, uint32 = Str))
02:30 Juerd Where I'm stealing default assignments to indicate length prefix types
02:31 Juerd So uint32 = Blob is like n/a*
02:31 Juerd Er, n/a
02:31 Juerd Missing from signatures (and types) are things like endianness, but I have the feeling that most of what's needed is already there
02:33 cognominal joined #perl6
02:33 ShimmerFairy Yeah, the endianness is interesting. My thoughts are to go with written order (i.e. big endian, if you wrote it down that way), and require special constructs to "mangle" written order as needed.
02:34 Juerd Maybe it can even do  Str is encoded("latin1")  and  uint32 is long-endian
02:34 Juerd I wouldn't mind a verbose template language, because I keep ending up using perldoc -f pack now anyway
02:35 ShimmerFairy yes, I definitely don't want the cryptic mess that is pack's syntax :)
02:35 Juerd Building on the type system may make it easier to introduce your own (number) encodings
02:36 Juerd For MQTT I needed to support a variable width length prefix type
02:36 Juerd It's just a number, though, and if I had my own type I could write my own blobification routine
02:36 Juerd m: my uint32 $foo = 42; say $foo.Blob
02:36 camelia rakudo-moar 9a01b4: OUTPUT«Method 'Blob' not found for invocant of class 'Int'␤  in block <unit> at /tmp/mUL10SCY5U:1␤␤»
02:36 ShimmerFairy true, though for certain number (and otherwise) encodings they could possibly want to handle the data in a more regex-y than data-type-y way.
02:37 ShimmerFairy Certainly something to work out in an external module, for sure :)
02:37 Juerd I can imagine that .Blob should just do a single-item pack.
02:39 Juerd Or maybe it's .encode instead of .Blob
02:40 Juerd After all, "32 bit signed long endian" is just an encoding. Not for strings, but for numbers.
02:40 raiph joined #perl6
02:40 Juerd Maybe even, .unpack should instead be part of Blob.decode
02:41 Juerd Or maybe I shouldn't write braindumps on IRC so close to Christmas. Not productive towards a release.
02:41 Juerd In any case It's almost 4am here and I'm going to bed. Good night!
02:46 vendethiel joined #perl6
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: or | UTF-8 is our friend!
02:53 Juerd And then suddenly I realise I said "long-endian". Hah. Should have been "big-endian" of course :)
02:55 BenGoldberg . o O (my $u =$some-blob, $starting-offset, $auto-advance, $endianess); my $i = $u.uint32; my $l = $u.sint64; ... )
02:59 kaare_ joined #perl6
03:05 rickbike joined #perl6
03:06 labster joined #perl6
03:09 Ben_Goldberg joined #perl6
03:11 kanishka joined #perl6
03:14 mohae__ joined #perl6
03:16 Ben_Goldberg joined #perl6
03:20 noganex joined #perl6
03:21 mohae joined #perl6
03:23 AlexDaniel “When selecting a text with your mouse, double-click on the first word, hold down the mouse on the second click and then select your text. It will now select text by words, not characters.”
03:24 TimToady what mouse?
03:24 BenGoldberg_ joined #perl6
03:24 AlexDaniel oh wow… how come I did not know this. Not that it is extremely useful since most of the stuff I do is keyboard-only, but hey!
03:27 * TimToady just has to figure out now how to transform 'while ++$ < 3 { dostuff }' into 'for Nil xx * -> $ { last unless ++$ < 3; dostuff }' using nothing but QAST trees...
03:27 TimToady just a Small Matter Of Cargoculting
03:30 diakopter TimToady: why do you need the for Nil
03:30 TimToady either that, or figure out exactly where 'while' discards its return values...
03:30 TimToady which I've tried to do before
03:30 skids Are while/loop results going to be eager?
03:31 TimToady depends on context, but statementlist-level loops are always in sink context
03:31 diakopter is the for Nil edition a lot faster?
03:31 TimToady probably not
03:32 TimToady getting while to keep its return values long enough to test UNDO, or even longer, to work in an I-want-the-list context, is tricksy
03:33 TimToady but if you have a good idea how to do that, feel free
03:33 grondilu while ++$ < 3 {...} is a weird idiom.  Isn't it simpler to do for ^3 {...}?
03:33 * TimToady was looking to transform it to a for loop just to get the semantics right
03:33 Juerd Okay, I couldn't sleep. Here's my proposal for an unpack template language:
03:33 TimToady the point is that while is misbehaving wrt for
03:33 Juerd ShimmerFairy, BenGoldberg_: ^^
03:34 TimToady so just telling people to write 'for' instead doesn't fix 'while'
03:34 grondilu ok, I must have missed the context
03:34 Juerd Is perl6-language still active or does everything go on IRC now?
03:34 TimToady this is about fixing
03:35 TimToady but if we fix that right then probably while loops will return values in a context where the values are wanted too, without much extra effort
03:36 * grondilu did not even know UNDO was a thing
03:36 * diakopter did not even
03:36 ShimmerFairy Juerd: looks good at first glance; I'll give it a closer read later :)
03:36 TimToady and I'm leary of futzing with the implementation of while, which is probably pretty well tuned for working in contexts where you merely want the side effects
03:37 Juerd ShimmerFairy: Thanks. Please let me know whatever feedback you may have :)
03:37 TimToady hence, the remap to 'for' approach
03:37 * grondilu guess he'll have to read S04 again someday
03:37 Juerd For now, good night//* #perl6
03:37 grondilu *guesses
03:37 TimToady o/
03:39 TimToady the for Nil xx * {} is just a proxy for loop {}, but that's just a while in disguise, which doesn't help
03:40 TimToady m: while ++$ < 3 { UNDO say "undo"; say "done" }
03:40 camelia rakudo-moar 9a01b4: OUTPUT«done␤undo␤done␤undo␤»
03:41 TimToady m: for Nil xx * -> $ { last unless ++$ < 3; { UNDO say "undo"; say "done" } }
03:41 camelia rakudo-moar 9a01b4: OUTPUT«done␤done␤»
03:41 TimToady you see that map (well, really the p6for variant) is giving the desired semantics, but it also allows us to return stuff from the loop if that is desired
03:42 secwang joined #perl6
03:42 TimToady and I already know exactly where we decide whether the loops values are wanted, so it's just a matter of doing the substitution
03:42 TimToady easy, peasy, except cargo culting QAST is never quite that...
03:44 TimToady if it were just the return values that were wanted, a gather/take would work, but that wouldn't help with KEEP/UNDO, since take bypasses the return
03:44 diakopter TimToady: well, you can create a QAST dump of the structure template you want
03:44 TimToady so it has to be some sort of map variant, methinketh
03:44 TimToady sure, already have that, but there are...indirections...
03:45 TimToady you have to generate new blocks and hide them from the mainline
03:45 TimToady so it needs to perform the same sequence of closure-making calls that the 'for' loop does
03:46 TimToady it's not all just
03:46 TimToady that's really the only hard part...
03:46 TimToady (I hope)
03:47 diakopter if only you had macros
03:47 TimToady I had hoped to be able to just write a macro, but that didn't pan out
03:47 TimToady heh
03:47 TimToady great minds...
03:48 TimToady the parser got very confused for some reason
03:48 TimToady well, i was trying it with a map, maybe it wouldn't get so confused for a 'for', but I think I'm not going to try to depend on macros
03:49 TimToady after all, they're experimental :)
03:49 TimToady and I'm pretty sure that if I just mutter the right incantations, I can do the tranformation
03:49 BenGoldberg joined #perl6
03:50 TimToady m: my $x; say (while ++$x < 3 { UNDO say "undo"; say "done"; $x })
03:50 camelia rakudo-moar 9a01b4: OUTPUT«done␤undo␤done␤undo␤3␤»
03:50 TimToady just to be clear, trying to make this work too
03:51 TimToady m: my $x; say (for Nil xx * -> $ { last unless ++$x < 3; { UNDO say "undo"; say "done"; $x } })
03:51 camelia rakudo-moar 9a01b4: OUTPUT«done␤done␤(3 3)␤»
03:51 TimToady so you see it fixes this too
03:54 TimToady well, I suppose I could also fake a macro by calling the grammar incestuously
03:54 TimToady that would be...wicked...but might be the easiest way to get the semantics right before xmas
03:56 BenGoldberg joined #perl6
03:57 Calibellus joined #perl6
03:58 TimToady testing...I see at least that nothing in the setting calls a while in non-sink context, which is relieving
04:02 skids A quick look around some ecosystem showed fewer while/loop than I expected.  I only found one as last statement of a sub.
04:03 molaf joined #perl6
04:03 skids But there could be authors with styles that are exceptionally affected.
04:06 CQ2 joined #perl6
04:08 TimToady nobody will be using something that doesn't work yet, I suspect
04:09 * skids wonders how "gather { while { ... } }" pans out
04:13 TimToady doesn't work for UNDO
04:13 skids Oh I meant whether the while would be sunk, not as a solution.
04:14 TimToady gather always sinks
04:14 TimToady m: gather 43
04:14 camelia rakudo-moar 9a01b4: OUTPUT«WARNINGS for /tmp/awrJQ2sr45:␤Useless use of constant integer 43 in sink context (line 1)␤»
04:14 skids Just used to seeing "gather while"
04:15 TimToady which is fine
04:15 davercc` left #perl6
04:17 kid51 joined #perl6
04:25 cpage_ joined #perl6
04:32 stmuk_ joined #perl6
04:39 [Coke] So, what's the plan for making a roast release? Last I saw jnthn had a thing that was plan-shaped.
04:40 [Coke] Is this something that we can hope to accomplish in a day?
04:45 skids mostly the possibly-affected loop/while I am seeing in the ecosystem are runloops in ".start" methods or such.  Which should probably be fixed but are likely to be called in sink context.
04:50 adu TimToady: hey
04:51 Quantum joined #perl6
04:57 BenGoldberg joined #perl6
05:00 Ben_Goldberg joined #perl6
05:14 ugexe m: class X::Y { }; my $foo = ::("X::Y"); say $foo.gist; # why not (X::Y)?
05:14 camelia rakudo-moar 9a01b4: OUTPUT«(Y)␤»
05:17 TimToady well, I'll be jiggerd, it worked
05:18 TimToady because "gist" means just enought suggest something?
05:18 TimToady m: class X::Y { }; my $foo = ::("X::Y"); say $foo.perl;
05:18 camelia rakudo-moar 9a01b4: OUTPUT«X::Y␤»
05:18 PerlJam For those people that like Perl 5's Test::Class, have a look at
05:19 * PerlJam .zZ
05:19 AlexDaniel I am getting errors about EVAL during build-panda, any solution?
05:20 [Coke] (perlhist website) whois will give you an email address and a familiar looking name.
05:21 TimToady > p6 'my $x; say (while ++$x < 3 { UNDO say "undo"; say "done"; +$x })'
05:21 TimToady done
05:21 TimToady done
05:21 TimToady (1 2)
05:21 TimToady now I just need to make sure UNDO puts the loop into non-sink context
05:22 skids TimToday++
05:22 ugexe i know .perl gives (X::Y), but im wondering why (Y) is considered more human readable
05:23 TimToady in context, you usually know what Y is
05:24 TimToady m: say True
05:24 camelia rakudo-moar 9a01b4: OUTPUT«True␤»
05:24 TimToady m: say True.perl
05:24 camelia rakudo-moar 9a01b4: OUTPUT«Bool::True␤»
05:24 TimToady do you really want it to print Bool::True everywhere?
05:25 AlexDaniel the problem is in this file:
05:26 AlexDaniel hmm
05:28 TimToady you have an old precompile of something, and probably need to blow away install/share/perl6
05:29 skids
05:30 AlexDaniel skids: hmm why not grep the whole ecosystem?
05:31 Actualeyes joined #perl6
05:32 secwang joined #perl6
05:35 skids AlexDaniel: it wasn't as simple as "grep", I had to go look at surrounding code.
05:35 AlexDaniel skids: ah
05:39 regreg joined #perl6
05:50 sammers joined #perl6
05:57 gauss joined #perl6
06:02 labster joined #perl6
06:04 AlexDaniel hm. So let's say I do this: .say for run(‘curl’, ‘’, :out).out.lines.race
06:05 AlexDaniel I get a segfault about half of the times I run it
06:05 AlexDaniel is it a known issue? Or can anybody confirm it?
06:09 awwaiid llfourn: I fixed/pushed a fix for Pod::To::HTML
06:09 awwaiid (re-enabled the test)
06:09 llfourn awwaiid: sweet thanks. Sorry about that :(
06:13 llfourn awwaiid: it seems that my pod bug fix perl6 was being tested rather than master which *was* passing the tests. Though I thought they both passed.
06:13 awwaiid no problem. Nothing like a failing test to force a fix :) . I kinda think this is working around an upstream issue though -- the meta on the link switches from [] to [""] -- but that data is provided in the $=pod
06:14 llfourn awwaiid: yep and my yet to be applied patch fixes that empty string being there :)
06:16 awwaiid ah! where is that at (for educational purposes)?
06:16 awwaiid what does "post-curli" mean (looking at recent doc commit)?
06:17 llfourn awwaiid: yes give me 10mins and I'll make my PR
06:17 llfourn post-curli means post precompilation
06:17 * llfourn can't remember what it stands for
06:17 awwaiid there was a recent rakudo change reguarding that?
06:18 awwaiid oh, caching compiled bits?
06:19 llfourn I have no idea. It seems it might have been broken for ages (the cli doc cmd).
06:21 awwaiid in textual bits of the docs, "Perl 6" is used a lot more than "Perl6" -- on purpose, ya?
06:21 llfourn yes Perl 6 is the name of Perl 6 :)
06:21 llfourn m: say "$*PERL"
06:21 camelia rakudo-moar 9a01b4: OUTPUT«Perl 6␤»
06:22 llfourn see even Perl 6 says so!
06:22 awwaiid good, I'll use s/Perl6/Perl 6/ as my commit to force a build that will hopefully pull in the fixed Pod::To::HTML :)
06:22 llfourn sounds good :)
06:24 dalek doc: 8a134ae | (Brock Wilcox)++ | doc/Language/ (3 files):
06:24 dalek doc: Mass change Perl6 -> Perl 6
06:24 dalek doc: review:
06:24 awwaiid hmm. one of those is wrong. oh well
06:25 labster Sometimes it's good to use the non-breaking space in Perl 6, too.
06:25 llfourn mmm good point
06:26 labster m: "\xa0".uniname
06:27 camelia rakudo-moar 9a01b4: ( no output )
06:27 labster m: "\xa0".uniname.say
06:27 camelia rakudo-moar 9a01b4: OUTPUT«NO-BREAK SPACE␤»
06:27 dalek doc: 07a3825 | (Brock Wilcox)++ | doc/Language/5to6-nutshell.pod:
06:27 dalek doc: No space in reference to an actual module name
06:27 dalek doc: review:
06:27 awwaiid There a POD6 for that?
06:27 llfourn awwaiid: I think you can do E<..> for unicode
06:28 llfourn E<x0a> (maybe?)
06:28 llfourn s/0a/a0/
06:29 awwaiid Looks like might still not build until someone tries to install Pod::To::HTML again
06:30 llfourn it looks like it has also broken: # pod design docs
06:31 * llfourn thinks it is somewhat ironic
06:35 awwaiid llfourn: maybe there is something less unslightly, like a S<Perl 6>
06:35 awwaiid yeah, I was just tring to reads S26.html also :)
06:36 * llfourn wonders if S<> is implemented
06:36 llfourn I don't think it is :\
06:38 awwaiid My panda is mad at trying to install the new Pod::To::HTML because it already has version "*" installed :(
06:39 awwaiid alright. well, I give up for tonight -- will bang the a bit more tomorrow :)
06:39 awwaiid gnight!
06:39 llfourn hmm it should probably be versioned
06:39 llfourn awwaiid: gnight :)
06:39 llfourn awwaiid++ thanks for fixing my goofs
06:39 awwaiid yes... should probably be a version other than "*" :)
06:41 dayangkun joined #perl6
06:42 dayangkun joined #perl6
06:44 yeahnoob joined #perl6
06:46 llfourn .tell moritz I merged a PR with a failing test in Pod::To::HTML -- the fallout seems to be that is gone and docs aint recompiling -- Yikes! Sorry :(
06:46 yoleaux llfourn: I'll pass your message to moritz.
06:47 lustlife joined #perl6
06:57 tmw1 joined #perl6
07:02 thomax will p6.c released tomorrow or the day after??
07:03 AlexDaniel thomax: hmm it also depends on the timezone I think
07:03 AlexDaniel thomax: but I'm curious, what would be the difference? :)
07:06 thomax the difference is a big exclamation mark behind p6.
07:07 thomax i hope there will be a wave of reviews
07:11 AlexDaniel “use MONKEY-SEE-NO-EVAL to override, but only if you're VERY sure your data contains no injection attacks” – ehh… What a nice warning. Well, indeed, another solution to qqx problem is to introduce MONKEY-SEE-NO-QQX or something like that. Shell injection is about equal to eval injections, with the only difference that we usually say “everyone forgets to escape their stuff when passing it to shell but it's all their fault, they sho
07:11 AlexDaniel have known better” and thus no protection…
07:14 hankache joined #perl6
07:14 AlexDaniel By the way, the startup time of my program that is using a bunch of modules has been reduced by half in the last few days. (Some angel)++
07:14 AlexDaniel which is about ⅓ of what it was a month ago
07:15 [Tux] test             50000    24.682    24.565
07:15 [Tux] test-t           50000    14.302    14.185
07:15 [Tux] csv-parser       50000    52.309    52.192
07:15 hankache morning #perl6
07:15 yoleaux 22 Dec 2015 17:52Z <TimToady> hankache: see for how to put spaces around the replacement
07:17 hankache masak++ #advent post
07:18 hankache .tell TimToady thanks boss
07:18 yoleaux hankache: I'll pass your message to TimToady.
07:24 hankache Tis the season to be jolly, Fa la la la la, la la la la
07:24 jczeus joined #perl6
07:24 CIAvash joined #perl6
07:28 moritz \o
07:28 yoleaux 06:46Z <llfourn> moritz: I merged a PR with a failing test in Pod::To::HTML -- the fallout seems to be that is gone and docs aint recompiling -- Yikes! Sorry :(
07:29 nwc10 joined #perl6
07:30 nwc10 good *, #perl6
07:31 dalek mu: 5657282 | moritz++ | util/
07:31 dalek mu: rebuild: avoid clobbering .html files on failure
07:31 dalek mu: review:
07:32 moritz .tell llfourn I've installed a new Pod::To::HTML, and made the build process more robust as to avoid emtpy S26.html in future (
07:32 yoleaux moritz: I'll pass your message to llfourn.
07:32 hankache hello moritz nwc10
07:32 moritz good morning hankache, nwc10, *
07:33 nine Good morning!
07:33 nwc10 days are getting longer (in some parts of the world)
07:33 nwc10 all-nighter hacking sessions are getting shorter :-)
07:34 hankache morning nine
07:35 vv3 joined #perl6
07:36 _nadim joined #perl6
07:36 [Tux] m: my @x = ^10; for ^@x.elems -> $idx { say $idx }
07:36 camelia rakudo-moar 9a01b4: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
07:36 dalek doc: 2cc8c2f | moritz++ | doc/Language/ (4 files):
07:36 dalek doc: SSLify some links
07:36 dalek doc: review:
07:38 TimToady moritz++ SSL++
07:38 yoleaux 07:18Z <hankache> TimToady: thanks boss
07:44 RabidGravy joined #perl6
07:46 pierre-vigier joined #perl6
07:49 [Tux] All tests successful.
07:49 [Tux] Files=27, Tests=21962, 35 wallclock secs ( 3.06 usr  0.17 sys + 89.73 cusr  1.83 csys = 94.79 CPU)
07:50 [Tux] but I still want a :don't-be-smart option for \r\n (or have that implicit on :!chomp)
07:52 _nadim God morning all
07:52 hahainternet do we have anything equivalent to f#'s forward pipe operator?
07:52 hahainternet i can't imagine it'd be common, but a friend is asking
07:53 pierre-vigier joined #perl6
07:55 llfourn joined #perl6
07:57 [Sno] joined #perl6
08:01 adhoc joined #perl6
08:05 nine hahainternet: what does that operator do?
08:05 hahainternet nine: it passes the parameter on the left, to the function on the right
08:05 hahainternet i don't really quite get why they have it tbqh
08:05 hahainternet a random example: [1..10] |> add1
08:05 hahainternet (and yes i know about », but i couldn't find any equivalent to that specific operator)
08:08 hankache
08:09 hahainternet they're neat operators, but i have to say i don't quite 'get it'
08:09 hahainternet i guess it's for the super functional nerds to describe a program on a single line and then get annoyed when you ask them to explain it ;)
08:10 hankache i think chaining in Perl6 does the same thing no?
08:10 TimToady m: 1..10 => say
08:10 camelia rakudo-moar 9a01b4: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/cE__j9wVCk:1␤------> 1..10 => say7⏏5<EOL>␤Other potential difficulties:␤    Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit in…»
08:10 TimToady m: 1..10 ==> say
08:10 camelia rakudo-moar 9a01b4: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/4g8RfTSZ6S:1␤------> 1..10 ==> say7⏏5<EOL>␤Other potential difficulties:␤    Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit i…»
08:10 TimToady m: 1..10 ==> say()
08:10 camelia rakudo-moar 9a01b4: OUTPUT«1..10␤»
08:10 TimToady something like that?
08:10 hahainternet nice, so that's the operator i was missing
08:10 * hahainternet goes back to operators doc page
08:11 hahainternet i did read through it first! i swear!
08:11 CIAvash
08:11 hahainternet ok no need to show me up further ;)
08:11 hahainternet interestingly, it only appears once on the operators page, as a 'Sequencer'
08:11 hahainternet but is not documented fully
08:13 CIAvash
08:13 hahainternet thanks for your help TimToady; nine; CIAvash
08:13 CIAvash
08:14 darutoko joined #perl6
08:14 eone joined #perl6
08:17 TimToady m: given 1,2,3 { say |$_ }
08:17 camelia rakudo-moar 9a01b4: OUTPUT«123␤»
08:17 TimToady another way
08:18 hahainternet interesting, i guess i'll have to look that up
08:18 hahainternet didn't realise you could flatten like that
08:22 RabidGravy early morning dumb question: is it safe to assume that the "size" of a Str passed to a char * in a native sub is Str.encode.bytes?  libgdbm wants to know
08:24 hahainternet RabidGravy: to my ignorant eyes, that seems logical
08:24 RabidGravy I think it's try and delete the coredumps afterwards ;-)
08:26 timotimo joined #perl6
08:26 vv3 joined #perl6
08:27 vv3 joined #perl6
08:28 vv3 joined #perl6
08:29 vv3 joined #perl6
08:32 rafl joined #perl6
08:35 vv3 joined #perl6
08:36 vv3 joined #perl6
08:36 vv3 joined #perl6
08:37 shmibs joined #perl6
08:37 vv3 joined #perl6
08:42 dalek rakudo/nom: 3dec5c8 | TimToady++ | src/core/
08:42 dalek rakudo/nom: useless use of 1
08:42 dalek rakudo/nom: review:
08:42 dalek rakudo/nom: 0258819 | TimToady++ | src/Perl6/ (3 files):
08:42 dalek rakudo/nom: while/until loops can now return values
08:42 dalek rakudo/nom:
08:42 dalek rakudo/nom: A loop that has KEEP or UNDO, or that is used in a spot indicating
08:42 dalek rakudo/nom: that a return value is expected (such as in parens), will now be
08:42 dalek rakudo/nom: translated to a map (well, a for loop) that knows how to deal with
08:42 dalek rakudo/nom: blocks returning values correctly.  In the case that a loop has a
08:42 dalek rakudo/nom: KEEP/UNDO but is not in a context wanting the return value, it still
08:42 dalek rakudo/nom: does the transformation to all KEEP/UNDO to have a value to test, but
08:42 dalek rakudo/nom: then sinks the results of the loop as a whole.
08:42 dalek rakudo/nom:
08:42 dalek rakudo/nom: Fixes #126005
08:42 dalek rakudo/nom: review:
08:42 dalek roast: 2f126a3 | TimToady++ | S04-statements/while.t:
08:42 dalek roast: tests for returns from while/until, RT #126005
08:42 dalek roast: review:
08:43 vv3 joined #perl6
08:44 dalek rakudo/nom: 0734842 | (Stefan Seifert)++ | src/core/CompUnit/Repository/
08:44 dalek rakudo/nom: Include dist-id in names of installed files
08:44 dalek rakudo/nom:
08:44 dalek rakudo/nom: The hash used for generating unique file names now contains:
08:44 dalek rakudo/nom: * the relative path of the source file including file name
08:44 dalek rakudo/nom: * the dist's id (name, version, auth, api)
08:44 dalek rakudo/nom: * the repo chain at time of installation
08:44 dalek rakudo/nom:
08:44 dalek rakudo/nom: Including the dist's id should fix name collissions when two distros contain
08:44 dalek rakudo/nom: a lib/Foo/Bar.pm6.
08:44 dalek rakudo/nom:
08:44 dalek rakudo/nom: As a side effect, the precompiled file will now have the same name as the
08:44 dalek rakudo/nom: source file which could make debugging easier.
08:44 dalek rakudo/nom: review:
08:44 vv3 joined #perl6
08:45 vv3 joined #perl6
08:45 abraxxa joined #perl6
08:45 vv3 joined #perl6
08:46 abraxxa hi!
08:46 TimToady hullo
08:47 abraxxa everything going well for the Christmas release?
08:48 hankache hALO
08:48 TimToady we're down to one ticket
08:48 CIAvash TimToady: /(\w)<{$0.Str.succ}><{$0.Str.succ.succ}>/ is eating a lot of memory in:
08:48 abraxxa i'm trying to get DBDish::Oracle pod finished and merged into DBIish
08:48 hankache ho ho ho ho ho
08:48 CIAvash $_ = "abcdefgh"; say ++$_ until /(\w)<next_char={$0.Str.succ}><{$<next_char>.Str.succ}>/ and !/i|o|l/ and /(\w)$0.*(\w)$1/;
08:48 abraxxa awesome!
08:48 RabidGravy is that being saved for midnight tomorrow?
08:48 CIAvash Am I doing something wrong?
08:49 TimToady RabidGravy: I have to write an advent posting tomorrow, so if someone else doesn't fix it, it probably won't get fixed
08:49 RabidGravy what's the ticket?
08:49 baest_ joined #perl6
08:50 abraxxa where can I find docs for Perl 6 pod?
08:50 stmuk
08:50 firstdayonthejob joined #perl6
08:51 abraxxa i'm having a hard time with S26 synopses
08:51 TimToady CIAvash: alas, I cannot really help you tonight, it's already almost 1am here...
08:51 abraxxa i there a module with known good perl 6 pod which I can use as example?
08:52 nwc10 TimToady++ # fixing the last blocker bug
08:52 vv3 joined #perl6
08:52 stmuk has been closed
08:52 dakkar joined #perl6
08:52 * TimToady ⟶  ????
08:53 CIAvash TimToady: OK
08:53 vv3 joined #perl6
08:53 TimToady oh, it's fixed?  \o/
08:53 nwc10 er, OK, closing it in RT :-)
08:54 stmuk :D
08:54 vv3 joined #perl6
08:54 nwc10 technically it does seem that it should be "tests needed"
08:54 TimToady well, whatever, we're sittin' pretty now
08:54 abraxxa Advent day 10 is pod, will take a look at that
08:54 nwc10 or atcually, "There are no tests there for with or whenever, but those did not appear to misbehave when I tried them on the command line. Feel free to add more tests for those." seems to be "more tests please"
08:55 TimToady now if only we still didn't have tests that hang when run in parallel...
08:55 nwc10 there's still one day before Christmas :-)
08:55 TimToady I'm not sure those ever misbehaved, so didn't think it really mattered for this bug
08:55 TimToady but it wouldn't hurt to have tests for 'em, is all
08:55 RabidGravy I never like these things that "just go away"
08:57 TimToady if anyone is at loose ends for something to think about, we can figure out how to freeze a set of tests for 6.c without fudges
08:58 TimToady Poor Man's Version: we save a fudged version, and 6.c has to keep passing that
08:58 thomax wait, will this be the christmas eve release or the christmas day release?
08:58 rindolf joined #perl6
08:59 TimToady I suspect we'll generate a release on the 24th and someone will officially announce it on the 25th
08:59 TimToady but of course this depends on availability of voluntolds
08:59 abraxxa returns forbidden
08:59 RabidGravy that's what I was going to suggest, doesn't there need to be at least two fudged versions though - one for rakudo and one for jvm?  (and also aren't there other fudges for architecture and  OS and so forth?)
08:59 thomax cool. thats a big thing!
09:00 znpy joined #perl6
09:00 * RabidGravy goes back to making coredumps
09:01 TimToady 6.c is whatever the moarvm fudges produce, so that also has to be taken into account.  jvm doesn't get to use a different standard for 6.c, it'll just take a while to catch up, as we anticipated all year
09:01 RabidGravy right
09:02 thomax do you expect that the js implementation (of not only nqp) will be fast enough to get things done?
09:02 TimToady it will be fast enough to get some things done
09:03 TimToady it will not be fast enough to get other things done, likely, without further optimization
09:03 TimToady but same is true for all the other backends
09:03 TimToady just to differing degrees on differing work
09:03 thomax TimToady: yeah, my question is very unspecific..
09:04 hankache m: @array ==> sort() ==> map { $_ ** 2} ==> my @final-array; say @final-array;
09:04 camelia rakudo-moar 073484: OUTPUT«5===SORRY!5=== Error while compiling /tmp/p1H6_dybOf␤Variable '@array' is not declared. Did you mean any of these?␤    Array␤    array␤␤at /tmp/p1H6_dybOf:1␤------> 3<BOL>7⏏5@array ==> sort() ==> map { $_ ** 2} ==>␤»
09:04 vv3 joined #perl6
09:04 hankache m: my @array = <7 8 9 0 1 2 4 3 5 6>; @array ==> sort() ==> map { $_ ** 2} ==> my @final-array; say @final-array;
09:04 camelia rakudo-moar 073484: OUTPUT«[0 1 4 9 16 25 36 49 64 81]␤»
09:05 thomax i just think, it would be cool to use p6 in the browser environment to get a nice UI framework done
09:05 hankache hein?? why is this ^^ not working on my local rakudo :(
09:05 rindolf TimToady: what are "voluntolds"?
09:05 yoleaux 22 Dec 2015 22:34Z <nine> rindolf: your share/perl6 really doesn't contain anything but panda's modules and the CORE dist. And lots of pre-curli files. I really wonder where panda installed Shell::Command to
09:06 TimToady it's a recent neologism, "I was voluntold to do this."
09:06 nwc10 rindolf: I'm assuming that they're the plural of
09:06 Deepak_ joined #perl6
09:06 rindolf nwc10: ah, I see.
09:07 nwc10 (um, which is only given as a verb. but I think works as a noun)
09:07 nwc10 I had not met it before. It amuses me.
09:07 rindolf TimToady: thanks!
09:07 RabidGravy "one who is volunteered"
09:08 TimToady m: say (+$_ when *.is-prime while ++$_ < 100)
09:08 camelia rakudo-moar 073484: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97)␤»
09:08 TimToady m: say ($_ when *.is-prime while ++$_ < 100)
09:08 camelia rakudo-moar 073484: OUTPUT«(100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100)␤»
09:08 TimToady maybe wants an automatic decont in there somewhere
09:09 timotimo o/
09:09 TimToady but it now really is past 1am
09:09 * TimToady ⟶  ????   # This time fershure!
09:09 timotimo hah
09:09 thomax TimToady: hands of the keyboaard
09:09 timotimo the same dance i did last night
09:09 RabidGravy 9:09 am
09:09 timotimo anyway, BBL :)
09:10 vv3 joined #perl6
09:10 abraxxa moritz: are you around?
09:10 hankache ca someone try putting this on multiple lines: my @array = <7 8 9 0 1 2 4 3 5 6>; @array ==> sort() ==> map { $_ ** 2} ==> my @final-array; say @final-array;
09:10 hankache and see if it works
09:11 hankache not working if each ==> is on a new line
09:18 pierre-vigier joined #perl6
09:18 vv3 joined #perl6
09:18 abraxxa i've just compiled moar using rakudobrew which defaults to the nom branch and now get an error with DBDish::Oracle: Cannot import symbol size_t from DBDish::Oracle::Native, because it already exists in this lexical scope
09:18 jczeus it fails for when i add the map
09:19 jczeus for me
09:19 RabidGravy abraxxa, probably yes, the size_t was just added to NativeCall in the last few days IIRC
09:20 abraxxa RabidGravy: I define it in DBDish::Oracle::Native;
09:20 abraxxa constant size_t       is export = long;
09:20 Begi joined #perl6
09:21 hankache jczeus indeed unless you write the map like this: map({ $_ ** 2})
09:21 abraxxa does this mean I have to remove my definition?
09:21 nine abraxxa: seems like you can just remove it. Exporting such a generic name doesn't sound like the best idea anyway.
09:21 hankache no idea why though
09:21 abraxxa nine: i've taken over the names from the OCI header files
09:21 RabidGravy abraxxa, yeah it went in with 61f085ca92ba9221fa38ac753509e5285f88cacb
09:22 abraxxa RabidGravy: thanks
09:22 jczeus hankache: it also works when the closing brace is on the same line as the pipe operator
09:22 nine abraxxa: but size_t is a very standard C type. It's bound to be used by others, too.
09:22 abraxxa nine: got it
09:22 hankache my @array = <7 8 9 0 1 2 4 3 5 6>;
09:22 hankache @array ==> sort()
09:22 hankache ==> map({ $_ ** 2})
09:22 hankache ==> reverse()
09:22 hankache ==> my @final-array;
09:22 hankache say @final-array;
09:23 * hankache likes the feed operator
09:23 nine I wonder why exactly we don't precompile scripts. With all the automatic precompilation logic already in place, it should actually be quite manageable.
09:24 vv3 joined #perl6
09:25 vv3 joined #perl6
09:25 jczeus hankache: that also works: ==> map { $_ ** 2 } \
09:25 vv3 joined #perl6
09:25 hankache what happening with vv3? joining and quitting
09:26 TEttinger that's not uncommon with a bad connection on IRC
09:26 hankache bot?
09:26 hankache ah ok
09:26 vv3 joined #perl6
09:26 TEttinger might be a snowstorm or windstorm or whatever messing with power lins
09:27 abraxxa and NativeCall doesn't find the lib any more
09:28 hankache jczeus yes
09:31 nine abraxxa: we had a change there last night. Removing the "lib" in the libname should fix it.
09:31 RabidGravy abraxxa, it may be omit the 'lib' from the front
09:31 abraxxa nine: I've guessed that from the debug output
09:31 abraxxa also added the version like Skarsnik did here
09:32 abraxxa nine: is that wise? it will break all modules using nativecall
09:32 vv3 joined #perl6
09:32 abraxxa the version causes this error: Connect failed with error Type check failed in binding $version; expected Version but got Int
09:32 nwc10 left #perl6
09:32 nine abraxxa: better break them before christmas than afterwards. The goal is to abstract away platform conventions. What's on Linux may be oracle.dll on Windows or liboracle.5.3.dylib on OS X
09:33 abraxxa i see
09:33 vv3 joined #perl6
09:33 RabidGravy the version thing is just use v1.5 or whatever
09:33 abraxxa it's ;)
09:33 jczeus is this intended behavior? i'm looking at s04 to see if that's the case
09:33 pierre-vigier joined #perl6
09:33 abraxxa RabidGravy: then Skarsnik's commit is wrong too, maybe that's why it hasn't been merged so far
09:33 RabidGravy so "is native('clntshcore', v12.1)"
09:33 vv3 joined #perl6
09:34 hankache same question as RabidGravy ?
09:34 RabidGravy dunno, I'm going to have to fix eight modules today
09:34 abraxxa i'd prefer to not specify the exact version or a minimum version, is that possible?
09:34 vv3 joined #perl6
09:34 hankache how do you specify the ver now?
09:35 rindolf nine: here? I see Shell__Command in /home/shlomif/Download/unpack/perl/p6/rakudobrew/moar-nom/panda/ext .
09:35 abraxxa i now get # Connect failed with error Unknown type 'size_t' used for native call
09:36 abraxxa hankache: v12.1
09:36 nine abraxxa: does Oracle install a symlink?
09:36 nine abraxxa: just specifying the major version could be enough
09:36 abraxxa sorry, wrong name before and yes
09:36 nine rindolf: that's the source where it should be installed from.
09:37 abraxxa nine: version 11 should work fine too
09:37 nine rindolf: do you find any trace of it in your ~/.perl6?
09:37 abraxxa so if I specify v11 does it search only for .11 or will the symlink be used if it can't be found?
09:38 rindolf nine: grep -ri Shell ~/.perl6/ does not return anything.
09:38 pierre-vigier joined #perl6
09:38 nine abraxxa: usually there is a file and a symlink pointing to the file and maybe a symlink.
09:39 virtualsue joined #perl6
09:39 nine abraxxa: AFAIK we do not have any automatic fallback in NativeCall
09:39 abraxxa nine: the Oracle InstantClient doesn't have any symlink, DBD::Oracle (the Perl 5 one) did create one as far as I remember
09:39 nine rindolf: that's...really odd. It should at least be found in some precomp files
09:40 AlexDaniel “As a side effect, the precompiled file will now have the same name as the rakudo/nom: source file which could make debugging easier.” – YESSSSS
09:40 AlexDaniel if I read it correctly
09:41 xfix joined #perl6
09:42 vv3 joined #perl6
09:43 nine AlexDaniel: you probably didn't
09:43 timotimo hankache: a } at the end of a line gets a ; for free. that's what gives you trouble with the feed operator
09:43 nine AlexDaniel: it's still a SHA1 hash. It's just that both the source file and the precomp file will be called 6F2671BB083EFD2E16FD682C7A9D8498E3816ED0
09:44 timotimo i imagine we can special-case a check for that in the grammar that gives you a helpful hint if you're starting a line with a ==>, that perhaps the previous line ended in a } and needs an unspace
09:44 AlexDaniel nine: f…
09:44 nine AlexDaniel: otherwise my commit message would have been a lot more enthusiastic than "could make it easier" :)
09:45 dalek roast: 9d3e3c3 | labster++ | S17-promise/allof.t:
09:45 dalek roast: add test for RT #122802: non-invokable object is non-invokable
09:45 dalek roast: review:
09:45 hankache timotimo: ah!
09:45 nine AlexDaniel: I do believe that we can make those backtraces more useful. It's just nothing we can squeeze in this side of christmas.
09:45 AlexDaniel nine: by the way, although you've probably thought about that, is it possible to use SHA1 hash for directories while still keeping the same filename inside?
09:46 hankache timotimo i wrapped them in parens. what is the unspace?
09:46 abraxxa nine: any idea where that size_t error comes from?
09:46 abraxxa --ll-exception didn't help
09:46 nine AlexDaniel: the trouble with file names is that not all file systems support Unicode which is the reason why Perl 5 for example doesn't allow Unicode module names.
09:47 nine AlexDaniel: we do give you much more freedom in Perl 6 but have to make sure we can actually store those files.
09:47 nine abraxxa: not without knowing anything about the code.
09:47 timotimo hankache: ending your line in "\" gives you an unspace
09:48 AlexDaniel nine: I'm not sure that I want to be affected by this if my filesystem does handle it correctly
09:48 AlexDaniel nine: perhaps make it opt-in? :)
09:48 timotimo unspace lets you put something that looks a lot like spaces in places where spaces are otherwise not allowed
09:48 hankache thanks timotimo
09:48 timotimo so you can line up some stuff with that, like the parens of a function call
09:48 vv3 joined #perl6
09:49 timotimo m: say("hi", "how", "are", "you"); say ("hi", "how", "are", "you"); say\    ("hi", "how", "are", "you")
09:49 camelia rakudo-moar 073484: OUTPUT«hihowareyou␤(hi how are you)␤hihowareyou␤»
09:49 timotimo you see how the first and second are the same, but not the one in the middle?
09:49 abraxxa nine: I've commented out the CATCH in the test file so I see the error: Method 'prepare' not found for invocant of class 'Any'
09:49 nine AlexDaniel: if any people had joined the effort, I may have found some time to find a nicer solution. As it is, I will still work on the necessary on the evening before the release.
09:49 vv3 joined #perl6
09:50 hankache oki
09:50 vv3 joined #perl6
09:50 nine AlexDaniel: in other words: what you want or not really doesn't matter. What matters is what you do to make it happen.
09:50 abraxxa nine: ok, that happens because connect doesn't return
09:50 AlexDaniel nine: sure
09:50 espadrine joined #perl6
09:51 vv3 joined #perl6
09:51 Ulti m: say 8 ??
09:51 camelia rakudo-moar 073484: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xByXbim1ie␤Confused␤at /tmp/xByXbim1ie:1␤------> 3say 8 ??7⏏5<EOL>␤»
09:51 dalek roast: 03e62e2 | lizmat++ | S02-types/range.t:
09:51 dalek roast: Add tests for Range.minmax
09:51 dalek roast: review:
09:52 cpage_ joined #perl6
09:52 abraxxa nine: why can size_t be unknown?
09:52 AlexDaniel nine: by the way I've submitted a rakudobug about this hoping to see any movement
09:53 AlexDaniel nine: though I didn't feel like diving in because I didn't know why it was implemented in first place
09:53 AlexDaniel and not that I know now…
09:54 nine abraxxa: does the module that uses this type import NativeCall?
09:54 abraxxa nine: yes
09:55 jczeus hankache: haven't found anything conclusive in s04, but a line ending with a closing brace apparently terminates the expression. that's why your solution with the parens also worked
09:56 nine AlexDaniel: all the reasoning is there:
09:56 vv3 joined #perl6
09:57 vv3 joined #perl6
09:57 hankache jczeus as timotimo said a closing brace will give you a ";" for free. so we should either use an unspace "\" like you proposed or wrapping them in parens
09:58 pierre-vigier joined #perl6
09:58 vv3 joined #perl6
09:58 timotimo jczeus, hankache
09:58 timotimo hankache: alternatively put the ==> on the end of the previous line
09:59 vv3 joined #perl6
09:59 abraxxa nine: i have only two occurrences of size_t, both in Oracle::Native.pm6
10:00 abraxxa for the failing one I pass 0 to the parameter
10:01 abraxxa nine:
10:01 cpage joined #perl6
10:02 AlexDaniel nine: oh nice! Thanks for the link
10:02 mohae joined #perl6
10:03 woolfy joined #perl6
10:03 jczeus timotimo: i read that bit, but it says only "if an end of statement can occur there" - not sure about that
10:04 timotimo combine that sentence with the global want for "single-pass parsing" and you'll see why it's the way it is
10:04 timotimo we're not going to re-parse the end-of-line as "not supposed to be a ;" when we discover the next line has a feed operator, for example
10:04 vv3 joined #perl6
10:05 pierre-vigier joined #perl6
10:05 stmuk dd seems to have lost the variable name
10:05 vv3 joined #perl6
10:05 dalek rakudo/nom: 8266a1f | timotimo++ | src/ (2 files):
10:05 dalek rakudo/nom: METAOP_ASSIGN shall use .DEFINITE instead of .defined
10:05 dalek rakudo/nom:
10:05 dalek rakudo/nom: this will correctly let Failure objects in a variable
10:05 dalek rakudo/nom: blow up when the variable is +='d or so, rather than
10:05 dalek rakudo/nom: defusing and replacing the Failure object.
10:05 dalek rakudo/nom:
10:05 dalek rakudo/nom: The optimization for METAOP_ASSIGN in the optimizer has
10:05 dalek rakudo/nom: sadly become a casualty, as it unexplicably leads to a
10:05 dalek rakudo/nom: "Cannot modify immutable *" error in many places.
10:05 dalek rakudo/nom:
10:05 dalek rakudo/nom: That's also why the implementation uses if/else rather
10:05 dalek rakudo/nom: than a ?? !!. That leads to the same error.
10:05 dalek rakudo/nom: review:
10:06 timotimo m: dd my $x = <hi what's up>
10:06 camelia rakudo-moar 073484: OUTPUT«List $var = $("hi", "what's", "up")␤»
10:06 timotimo huh, interesting
10:06 vv3 joined #perl6
10:06 lizmat m: dd :a(42)   # stmuk: can use nameds to indicate the name
10:06 camelia rakudo-moar 073484: OUTPUT«Int a = 42␤»
10:07 kanishka joined #perl6
10:07 vv3 joined #perl6
10:08 stmuk ah
10:10 lizmat I wanted to be able to use nameds for dd
10:10 lizmat but that broke the positional introspection :-(
10:12 pierre-vigier joined #perl6
10:13 vv3 joined #perl6
10:14 vv3 joined #perl6
10:14 abraxxa nine: interesting that this syntax error didn't cause the module to fail until now:
10:14 mohae joined #perl6
10:15 abraxxa but this doesn't fix the size_t error ;(
10:15 vv3 joined #perl6
10:16 vv3 joined #perl6
10:16 abraxxa nine: it's the OCIEnvNlsCreate call that causes the error
10:18 kjs_ joined #perl6
10:19 lizmat stmuk: naming the positionals depended on being able to do nqp::p6argvmarray();
10:19 lizmat stmuk: and that apparently only works with a (|) signature
10:19 lizmat stmuk: and *that* doesn't allow named params
10:20 abraxxa nine: it shouldn't come down there because %type_map contains size_t:
10:21 vv3 joined #perl6
10:22 Begi2 joined #perl6
10:22 vv3 joined #perl6
10:23 vv3 joined #perl6
10:24 vv3 joined #perl6
10:27 lizmat ok, I'm going to revert supporting nameds with dd
10:30 vv3 joined #perl6
10:30 iH2O joined #perl6
10:30 abraxxa m: use NativeCall; my size_t $foo; say $foo.^shortname;
10:30 vv3 joined #perl6
10:30 camelia rakudo-moar 8266a1: OUTPUT«Int␤»
10:30 abraxxa haha!
10:31 iH2O left #perl6
10:31 abraxxa nine: the ^shortname is used for the type_map lookup and Int maps to longlong
10:31 vv3 joined #perl6
10:31 rurban joined #perl6
10:32 vv3 joined #perl6
10:34 lizmat nine: confirm that all Inline::Perl5 tests now pass on OS X
10:35 lizmat nine: alas, install still fails with: Failed to copy '/Users/liz/Github/panda/.panda-work/1450866723_2/resources/' to '/Users/liz/Github/rakudo.moar/install/share/perl6/site/resources/': Failed to copy file: no such file or directory
10:35 lizmat nine: feels like some of the new lib name guessing has not been applied yet ?
10:38 vv3 joined #perl6
10:38 vv3 joined #perl6
10:39 dalek rakudo/nom: 9308de3 | lizmat++ | src/core/
10:39 dalek rakudo/nom: No longer look at nameds in dd
10:39 dalek rakudo/nom:
10:39 dalek rakudo/nom: It was a nice idea, but it broke the introspection on positionals.
10:39 dalek rakudo/nom: And since nqp::p6argvmarray only knows about positionals, and that is
10:39 dalek rakudo/nom: needed to introspect (afaics), dropping the nameds support was needed
10:39 dalek rakudo/nom: to reinstate positional introspection
10:39 dalek rakudo/nom: review:
10:39 vv3 joined #perl6
10:40 abraxxa am I allowed to push a commit adding a test to nom?
10:40 abraxxa shows that size_t isn't working
10:40 vv3 joined #perl6
10:40 lizmat as in the t/ directory?
10:40 lizmat sure
10:41 lizmat if you have a commit bit ?
10:41 abraxxa lizmat: not sure
10:41 lizmat otherwise a PR will do fine
10:41 abraxxa i don't
10:41 abraxxa forking
10:44 RabidGravy right, all the methods added to GDBM::File off out to pub -> farm shop etc, don't go breaking anything ;-)
10:44 Juerd Looking for feedback on my unpack idea:
10:46 timotimo lizmat: it doesn't work with (|c) signature? p6vmargarray, that is
10:46 timotimo argvmarray*
10:47 hankache joined #perl6
10:48 lizmat nope, any other sig than (|) eats it
10:48 lizmat by the looks of it
10:48 timotimo hm, OK
10:49 mohae joined #perl6
10:49 timotimo really all p6argvmarray does is grab a slurpy positional argument and hllize each entry
10:49 kjs_ joined #perl6
10:50 labster m: my $promise = start { fail 42 }; await $promise; say $promise.status #RT #123204
10:50 camelia rakudo-moar 8266a1: OUTPUT«42␤  in block <unit> at /tmp/LB3q0tp6Dx:1␤␤»
10:50 lizmat I guess that's what any sig other than (|) also does, hence I can't get at them anymore after that
10:51 labster j: my $promise = start { fail 42 }; await $promise; say $promise.status irc:// irc://
10:51 vv3 joined #perl6
10:51 camelia rakudo-jvm 6c0f93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0blLkRtO2b␤Two terms in a row␤at /tmp/0blLkRtO2b:1␤------> 2 }; await $promise; say $promise.status7⏏5 irc:// irc://␤    expecting any of:␤        infix␤        inf…»
10:51 timotimo yeah
10:51 timotimo i expect p6argvmarray is an optimization so that no Capture object has to be created?
10:51 labster j: my $promise = start { fail 42 }; await $promise; say $promise.status
10:51 timotimo if you only need nameds
10:51 camelia rakudo-jvm 6c0f93: OUTPUT«Attempt to return outside of any Routine␤  in block <unit> at /tmp/QrAskKZvVG:1␤␤»
10:52 timotimo labster: yeah, fail doesn't work if you don't have a sub to fail from
10:52 hankache what is the status of rakudo on jvm ?
10:52 timotimo j: my $promise = start(anon sub($_) { fail 42 }); await $promise; say $promise.status
10:52 camelia rakudo-jvm 6c0f93: OUTPUT«5===SORRY!5===␤Type 'sub' is not declared. Did you mean 'Sub'?␤at /tmp/WEISKACa6Z:1␤------> 3my $promise = start(anon sub7⏏5($_) { fail 42 }); await $promise; say $␤Malformed anon␤at /tmp/WEISKACa6Z:1␤------> 3my $promise = start(anon…»
10:53 timotimo j: my $promise = start(anon sub ::($_) { fail 42 }); await $promise; say $promise.status
10:53 camelia rakudo-jvm 6c0f93: OUTPUT«===SORRY!===␤Name ::($_) is not compile-time known, and can not serve as a sub declaration␤»
10:53 timotimo j: my $promise = start(anon sub ($_) { fail 42 }); await $promise; say $promise.status
10:53 camelia rakudo-jvm 6c0f93: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tdK_bFCcz8␤Undeclared routine:␤    start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?␤␤»
10:53 labster Wait, which is correct though, moar or jvm?
10:53 timotimo j: my $promise = start anon sub ($_) { fail 42 }; await $promise; say $promise.status
10:53 camelia rakudo-jvm 6c0f93: OUTPUT«Kept␤»
10:53 timotimo j: my $promise = start anon sub ($_) { fail 42 }; say await $promise; say $promise.status;
10:53 camelia rakudo-jvm 6c0f93: OUTPUT«sub ($_) { #`(Sub|93720058) ... }␤Kept␤»
10:53 timotimo oh damn
10:53 timotimo i forgot about that
10:54 timotimo does schedule the promise, too?
10:54 timotimo no, it's not about creating code-backed promises
10:54 lizmat just creates a Promise
10:54 lizmat nothing special about that
10:54 lizmat m:   # wait for the heat death
10:55 timotimo yeah
10:55 camelia rakudo-moar 9308de: OUTPUT«(timeout)»
10:55 timotimo how do i "start" a sub?
10:55 nine lizmat: yes, that part is still NYI. On my list for tonight
10:55 hankache chaining methods was available in Perl 5?
10:55 lizmat ++nine
10:55 hankache @array.sort.reverse
10:56 hankache or is this new to 6 ?
10:56 lizmat m: sub a { "foo" }; Promise.start( &a ).result.say
10:56 camelia rakudo-moar 9308de: OUTPUT«foo␤»
10:56 llfourn m: my str $str = ''; $str.WHAT.say # how do I tell if the value contained is native?
10:56 yoleaux 07:32Z <moritz> llfourn: I've installed a new Pod::To::HTML, and made the build process more robust as to avoid emtpy S26.html in future (
10:56 camelia rakudo-moar 9308de: OUTPUT«(Str)␤»
10:56 lizmat timotimo: ^^^
10:56 llfourn moritz++ thanks!
10:56 lizmat llfourn: you can't
10:56 timotimo ah, that's how!
10:56 timotimo great
10:56 labster Ah, makes sense.
10:56 timotimo j: my $promise = Promise.start(anon sub ($_) { fail 42 }); say await $promise; say $promise.status
10:57 lizmat llfourn: natives are not objects, so they have to be upgraded first before you can call anything on them
10:57 camelia rakudo-jvm 6c0f93: OUTPUT«Too few positionals passed; expected 1 arguments but got 0␤  in block <unit> at /tmp/np31QXWJ6x:1␤␤»
10:57 lizmat llfourn: hence you see Str instead of str
10:57 timotimo j: my $promise = Promise.start(anon sub { fail 42 }); say await $promise; say $promise.status
10:57 camelia rakudo-jvm 6c0f93: OUTPUT«===SORRY!===␤42␤»
10:57 llfourn lizmat: even in nqp?
10:57 timotimo m: my $promise = Promise.start(anon sub { fail 42 }); say await $promise; say $promise.status
10:57 camelia rakudo-moar 9308de: OUTPUT«===SORRY!===␤42␤»
10:57 lizmat ah, in nqp...  hmmmm
10:57 timotimo labster: there we go
10:58 lizmat llfourn: timotimo might know
10:58 labster Thanks timotimo — but I'm not trying to do it correctly, I'm trying to figure out how RT #123204 should fail.
10:58 timotimo oh, about what exactly?
10:58 timotimo labster: it should say "can't fail outside of any routine"
10:58 llfourn timotimo: how to tell if value $contained is native or not :)?
10:58 llfourn in nqp context
10:59 timotimo a value cannot "be native"; only arguments and lexicals can
10:59 timotimo er, wait
10:59 timotimo that's BS :)
10:59 timotimo in nqp, you'll use nqp::objprimspec
10:59 timotimo the return value is 0 for object, 1, 2 or 3 for some order of int, num and str
10:59 timotimo nqp-m: my int $a := 1; say(nqp::objprimspec($a))
10:59 camelia nqp-moarvm: OUTPUT«1␤»
11:00 timotimo nqp-m: my $a := 1; say(nqp::objprimspec($a))
11:00 camelia nqp-moarvm: OUTPUT«1␤»
11:00 timotimo nqp-m: my $a := "hello"; say(nqp::objprimspec($a))
11:00 camelia nqp-moarvm: OUTPUT«3␤»
11:00 timotimo nqp-m: my $a := 10.0e0; say(nqp::objprimspec($a))
11:00 camelia nqp-moarvm: OUTPUT«2␤»
11:00 timotimo there we go
11:00 llfourn thanks I'll give that a shot. The reason I wanted to know was that I see nqp::unbox_s used sometimes and sometimes not and just wanted to see what the difference is.
11:05 xtreak joined #perl6
11:06 xtreak p6: my %a = <a b c d>; say %a.^methods; say %a.keyof()
11:06 camelia rakudo-moar 9308de: OUTPUT«(BIND-KEY STORE_AT_KEY name keyof of default dynamic push append classify-list categorize-list Method+{<anon|65740608>}.new Method+{<anon|65740608>}.new Method+{<anon|65740608>}.new perl gist DUMP Method+{<anon|65740608>}.new elems iterator STORE STORE_AT_…»
11:07 xtreak the keyof method doesn't seem to be implemented yet. Does it supposed to return the key for the value?
11:07 lizmat xtreak: where did you find "keyof"  ???
11:08 lizmat it doesn't seem to be in the speculation (anymore)
11:10 abraxxa lizmat: PR sent
11:10 xtreak src/core/ method keyof . commits : fe792fdf37e8091c8b6892c826fa0ba6441664cc , cd927656d7a1a379c50cd4cf10edfc4bb66a6857
11:10 abraxxa nine: shows the failure
11:11 pierre-vigier joined #perl6
11:11 xtreak Am on rakudobrew built at Nov 17. May be its removed at update?
11:17 timotimo oh
11:17 dalek rakudo/nom: f5912bc | lizmat++ | src/core/
11:17 dalek rakudo/nom: Doesn't make sense to fail, we want to throw!
11:17 dalek rakudo/nom: review:
11:17 timotimo .keyof gives you the type of the keys
11:18 dalek rakudo/nom: 16a5f25 | (Alexander Hartmaier)++ | t/04-nativecall/02-simple-args. (2 files):
11:18 dalek rakudo/nom: add test for size_t
11:18 dalek rakudo/nom: review:
11:18 dalek rakudo/nom: 9f81d1d | (Alexander Hartmaier)++ | t/04-nativecall/15-rw-args. (2 files):
11:18 dalek rakudo/nom: add tests for passing and returning data to C functions
11:18 dalek rakudo/nom: review:
11:18 dalek rakudo/nom: 47e04b6 | lizmat++ | t/04-nativecall/ (4 files):
11:18 dalek rakudo/nom: Merge pull request #648 from abraxxa/nom
11:18 dalek rakudo/nom:
11:18 dalek rakudo/nom: add tests for size_t and passing and returning data to C functions
11:18 dalek rakudo/nom: review:
11:18 abraxxa lizmat: thanks!
11:18 lizmat yw !
11:18 xtreak It always returns Any
11:18 Su-Shee joined #perl6
11:19 xtreak The method is `method keyof () { Any }`
11:19 timotimo xtreak: yeah, but it's overrided by the typed hash role, no?
11:19 lizmat yes it is
11:19 timotimo m: my %foo{Range}; say %foo.keyof
11:19 camelia rakudo-moar 9308de: OUTPUT«(Range)␤»
11:19 timotimo xtreak: here you can see that
11:19 timotimo bbiab
11:20 labster Well, managed to close 3 tickets before bedtime.  2 resolved, 1 rejected.  I'll be back tomorrow to see if there are any more LHFs to pick before Christmas.
11:21 xtreak yes. I thought by keyof to return the key of a value. Thanks :)
11:22 nine lizmat: .oO(throw, throw, throw your $got, gently out of range...)
11:23 lizmat xtreak: you probably want to use .pairs on a hash, then you can do .key for the key and .value for the value
11:23 lizmat m: my %h = a => 42, b => 666; for %h.pairs { say .key; say .value }
11:23 camelia rakudo-moar 9308de: OUTPUT«a␤42␤b␤666␤»
11:24 lizmat m: my %h = a => 42, b => 666; for %h.kv => $key, $value { say $key; say $value }   # alternate way for xtreak
11:24 camelia rakudo-moar 9308de: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xd4B475o0B␤Variable '$key' is not declared␤at /tmp/xd4B475o0B:1␤------> 3my %h = a => 42, b => 666; for %h.kv => 7⏏5$key, $value { say $key; say $value }   ␤»
11:24 lizmat m: my %h = a => 42, b => 666; for %h.kv -> $key, $value { say $key; say $value }   # alternate way for xtreak
11:24 camelia rakudo-moar 9308de: OUTPUT«a␤42␤b␤666␤»
11:24 abraxxa do i have to use =begin pod and =end pod before/after each =METHOD when I want my perl 6 pod to be inline with the code?
11:25 lizmat =METHOD implies =begin pod, I would think
11:25 lizmat don't know about the =end
11:25 xtreak No. I thought to get a key of the given value like `my %caps = <UK London France Paris>` and `say %caps<London>.keyof()` to return UK
11:26 abraxxa lizmat: it seems everybody is writing perl 5 pod in the perl6 modules, at least the ones i've checked
11:26 abraxxa is there a perldoc equivalent to render perl 6 pod?
11:26 lizmat abraxxa: tbh, I haven't followed the p6pod developments closely
11:27 lizmat xtreak: nope
11:28 llfourn abraxxa: you should be able to do perl6 --doc
11:28 abraxxa llfourn: thanks! I wasn't able to find that info anywhere
11:28 nine xtreak: it returns the type of the keys. Typing usually involves an .of method, that's where the name comes from.
11:29 llfourn abraxxa: ironically I think pod is the least documented of anything on p6docs
11:29 abraxxa llfourn: yes, it seems to
11:30 abraxxa llfourn: returns forbidden
11:30 nine abraxxa: make tests passes here?
11:30 llfourn moritz: ^^ see above if you are around :)
11:30 _nadim rindolf: hi, it seems that I was using an API that is 600 commits old. could you please try the latest?
11:30 abraxxa nine: hm?
11:31 nine abraxxa: the tests you committed pass. Are they supposed to pass or to fail?
11:31 rindolf _nadim: yes, let me see.
11:31 abraxxa nine: the size_t one fails
11:31 abraxxa nine: perl6 -Ilib t/04-nativecall/02-simple-args.t
11:31 nine abraxxa: All tests successful
11:31 _nadim flussence: Could you please pull the latest and re-run the tests?
11:32 abraxxa nine: Unknown type 'size_t' used for native call
11:32 abraxxa in method setup at /home/ahartmai/perl6/git/rakudo/lib/NativeCall.pm6:223
11:32 abraxxa in method CALL-ME at /home/ahartmai/perl6/git/rakudo/lib/NativeCall.pm6:234
11:32 abraxxa in block <unit> at t/04-nativecall/02-simple-args.t:66
11:32 abraxxa nine: perl6::version=2015.11-740-g0734842
11:32 abraxxa rakudobrew build moar nom
11:32 abraxxa a few hours ago
11:32 nine abraxxa: indeed. It breaks with perl6 -Ilib t/04-nativecall/02-simple-args.t but passes with make test
11:33 abraxxa nine: weird
11:33 abraxxa are they run?
11:33 nine yes
11:33 abraxxa nine: did you see my pointer to where the problem lies before?
11:34 rindolf _nadim: panda still won't run, much less install Text::Table::Simple though.
11:34 Skarsnik joined #perl6
11:34 _nadim rindolf: hmm, I thought I fixed that, let me check
11:35 rindolf _nadim: I didn't try.
11:35 nine It also passes when run by /usr/bin/perl t/harness --moar t/04-nativecall/02-simple-args.t
11:35 rurban joined #perl6
11:36 rindolf _nadim: OK, now I'm getting much fewer failures.
11:36 abraxxa Could not execute (./perl6-m t/04-nativecall/02-simple-args.t): open3: exec of ./perl6-m t/04-nativecall/02-simple-args.t failed at /usr/share/perl/5.20/TAP/Parser/Iterator/ line 165.
11:36 _nadim rindolf: well I missed one place, at t/01_all.t line 65, there is a use Text::....  that is not a in a try, so that may fail, although the test is a todo
11:37 rindolf _nadim:
11:37 * rindolf forgot what he wanted to do now.
11:40 _nadim rindolf: thanks mate, I'll remove the dependency and fix the last error. almost there.
11:40 xtreak Does %caps{Int} means that only only integer keys can be used?
11:41 xtreak Yes got it. I was again using 'my' for the assignment again and it got shadowed.
11:42 llfourn m: my %caps{Int} = (1 => 'str')
11:42 camelia rakudo-moar 47e04b: ( no output )
11:42 llfourn m: my %caps{Int} = ('str' => 1)
11:42 camelia rakudo-moar 47e04b: OUTPUT«Type check failed in binding key; expected Int but got Str␤  in block <unit> at /tmp/ue26FsEVfy:1␤␤»
11:42 pierre-vigier joined #perl6
11:47 abraxxa nine: anything I can do to fix it?
11:47 dalek rakudo/nom: 82fe5fb | lizmat++ | / (6 files):
11:47 dalek rakudo/nom: Split Temporal into Dateish/DateTime/Date
11:47 dalek rakudo/nom:
11:47 dalek rakudo/nom: Was starting to make errors not seeing in which class I was making changes.
11:47 dalek rakudo/nom: Plus it was causing confusion among would-be core developers looking for
11:47 dalek rakudo/nom: the code that makes Date/DateTime tick :-)
11:47 dalek rakudo/nom: review:
11:50 shmibs joined #perl6
11:52 kjs_ joined #perl6
11:56 abraxxa seen moritz?
11:56 moritz abraxxa: I'm around-ish
11:56 abraxxa moritz: DBDish::Oracle is almost ready to merge
11:57 abraxxa not sure how I should handle the still failing tests
11:57 moritz abraxxa: you mean besides fixing them?
11:58 abraxxa moritz: things like different sort order by database
11:58 abraxxa Oracle sorts NULLs last by default and it can only be changes through a different sql query
11:58 abraxxa ORDER BY name NULLS FIRST
11:58 moritz abraxxa: if the other backends support that too, change the SQL
11:58 abraxxa moritz: guess what, they don't
11:59 moritz they don't?
11:59 abraxxa so another sql query that depends on the DBD
11:59 nine What about ORDER BY coalesce(name, '')?
11:59 moritz well, you can also ORDER BY COAELESE(thecolumn, 0) or so
11:59 nine ha :)
11:59 nine Great minds think alike!
12:00 moritz nine: except that you spelled it correctly, afaict :-)
12:01 abraxxa nine: not that Oracle handles NULL and '' differently ;)
12:03 |Tux| yes it does, in char fields
12:04 moritz there's also ORDER BY column IS NULL DESC, column DESC or so
12:04 moritz that should work in all four, I hope
12:04 |Tux|
12:06 abraxxa ORDER BY COALESCE(name,'A') does the trick, do you recommend some other function?
12:07 abraxxa ORDER BY name IS NULL DESC results in ORA-00933: SQL command not properly ended on Oracle 12c
12:07 moritz then use COALESCE
12:07 abraxxa ok, thanks!
12:07 moritz I know mysql supports it
12:07 abraxxa SQLite does too
12:07 abraxxa don't have MySQL or Postgres installed locally to test though
12:08 moritz and postgres too
12:08 abraxxa great!
12:08 regreg joined #perl6
12:09 abraxxa then in only need a solution for 'FROM DUAL' for Oracle
12:10 administrator joined #perl6
12:10 abraxxa is there a done_testing instead of again having to plan the number of tests?
12:10 lizmat I wonder whether 'use v6.c' should set a dynamic variable that modules could inspect to see under what version they're supposed to be running
12:11 abraxxa lizmat: pre v6.c compat isn't important, isn't it?
12:11 abraxxa lizmat: but going forward it will be
12:11 lizmat yes, indeed
12:12 lichtkind joined #perl6
12:12 lizmat probably want to engrain this at an early stage
12:13 lizmat m: say $*PERL   # perhaps that's the one ?
12:13 camelia rakudo-moar 82fe5f: OUTPUT«Perl 6 (6.b)␤»
12:13 loren joined #perl6
12:13 abraxxa what does @a ~~ @b do?
12:13 Skarsnik m: say $*PERL.version;
12:13 camelia rakudo-moar 82fe5f: OUTPUT«v6.b␤»
12:13 abraxxa Skarsnik: hi!
12:14 Skarsnik Hello
12:14 cognominal joined #perl6
12:14 moritz Positional  List      lists are comparable    $_ »~~« X (but dwims ** wildcards!)
12:14 timotimo now to write tests for += and friends triggerint failures
12:15 loren m: say (1, 23) ~~ (1, 23); say (1, 23) ~~ (1, 32);
12:15 camelia rakudo-moar 82fe5f: OUTPUT«True␤False␤»
12:15 Skarsnik abraxxa, did you figure why is-deeply fail? x)
12:15 abraxxa Skarsnik: no, sadly not. but nom breaks DBDish and I'm waiting on nine to look into it, already commited a test for it
12:16 abraxxa Skarsnik: i'm working on getting the tests in 99-common.t work together nicely with DBDish::Oracle, when I got this I'll send the pull request and continue its development in the main repo
12:17 Skarsnik the break is because of lib not requiered in the libname anymore?
12:18 abraxxa moritz: thanks. So using it for comparing two arrays which should be the same length and contain the same typed values or Type objects should be good for a test?
12:18 vv3 joined #perl6
12:18 abraxxa Skarsnik: for the other DBDs yes, Oracle also breaks because of size_t
12:19 vv3 joined #perl6
12:19 vv3 joined #perl6
12:20 lichtkind if i get it .hyper makes any list list generating function into an supply?
12:20 loren Hi, I wonder whether Array has an method can swap two element
12:20 vv3 joined #perl6
12:20 loren I look for document about Array, but not found/
12:21 timotimo loren: you can @arr[1, 10] .= reverse
12:22 Skarsnik abraxxa, you should add a test in xt/ for oracle (copy past one of the other) x)
12:22 loren m: say (1, 2, 3)[1,2] .= reverse;
12:22 camelia rakudo-moar 82fe5f: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/QiIgOL4ZeQ:1␤␤»
12:22 abraxxa Skarsnik: ah, haven't seen those
12:22 loren m: my @x = (1, 2, 3); @x[1,2] .= reverse; say @x;
12:22 camelia rakudo-moar 82fe5f: OUTPUT«[1 3 2]␤»
12:22 Actualeyes joined #perl6
12:22 loren timotimo, thanks
12:22 timotimo yw
12:23 timotimo @x[1,2] = @x[2,1] also works
12:23 vv3 joined #perl6
12:23 loren em, got it . ^_^
12:23 kid51 joined #perl6
12:24 abraxxa Skarsnik: the 04_pgnative.t has sqlite headers in int
12:24 dalek rakudo/nom: cc46351 | lizmat++ | src/core/Date (3 files):
12:24 dalek rakudo/nom: Make .daycount a lazy Dateish attribute
12:24 dalek rakudo/nom:
12:24 dalek rakudo/nom: Before, it was always calculated for Date's, but DateTime internally
12:24 dalek rakudo/nom: also used it in some cases by first creating a Date object for it.
12:24 dalek rakudo/nom: Seemed daycount wasn't always needed anyway, for many cases, so that
12:24 dalek rakudo/nom: making it lazy and cleaning up the interface seemed like a good idea.
12:24 dalek rakudo/nom: review:
12:25 vv3 joined #perl6
12:26 vv3 joined #perl6
12:26 abraxxa Skarsnik: Could not find NativeCall::TypeDiag in any of:
12:26 abraxxa is it newer than 2015.11?
12:26 abraxxa hm, same for nom
12:26 Skarsnik It's a module
12:26 vv3 joined #perl6
12:27 abraxxa a non-core one?
12:27 Skarsnik Yes
12:27 abraxxa i see
12:27 Skarsnik hm, I did not run the pg test? x)
12:28 abraxxa the two vars aren't used because the first test is commented out
12:28 Skarsnik Oh yes, Pg does not define any CStruct
12:28 Skarsnik too much copy paste x)
12:29 moritz Pg works with OpaquePointer only
12:29 moritz I love that C API
12:29 abraxxa moritz: OCI too
12:29 abraxxa only pass and return by pointer
12:30 abraxxa doesn't panda do dependency resolution for modules?
12:30 Skarsnik how do you get information about a field?
12:31 Skarsnik I did not put NC::Typediag in the dep, since it's only an author test
12:31 abraxxa Skarsnik:
12:31 abraxxa TypeDiag doesn't list File::Temp, I had to install it manually
12:31 Skarsnik ho, my bad
12:31 abraxxa NativeCall::TypeDiag:ver<*>:auth<Sylvain Colinet>:api<> already installed
12:32 abraxxa and I can't install it even after installing File::Temp
12:32 moritz panda install -force maybe?
12:32 vv3 joined #perl6
12:33 abraxxa it seems it's panda --force install
12:33 nine lizmat: indeed, I've heard lots about language backwards compatibility. But what about the runtime? How will e.g. List's method know how to behave?
12:33 abraxxa Could not find NativeCall::TypeDiag in:
12:33 abraxxa ;(
12:33 vv3 joined #perl6
12:34 abraxxa Skarsnik: does it work on nom for you?
12:34 timotimo how do i best test for a failure to blow up?
12:34 lizmat nine: well, that would be my point: by checking on $*PERL ?  if that's being set by use v6.n
12:34 abraxxa panda fails to install on 2015.11, so I can't test on that either
12:34 moritz timotimo: dies-ok { ~things-that-fail() } or so
12:34 timotimo i tried class X::ThisFailure { }; my $foo =, but i get an X::AdHoc from throws-like
12:34 abraxxa timotimo: catch the exception?
12:35 timotimo moritz: dies-ok seems like a terrible idea :)
12:35 timotimo like, in general
12:35 Skarsnik erf
12:35 Skarsnik all my vmbox save are dead ><
12:36 moritz m: class X::F { has $.message = 'boo' };  sub f () { fail };  say f().^name
12:36 camelia rakudo-moar cc4635: OUTPUT«Failure␤»
12:36 Skarsnik great it again lost inter vx tek, I can't boot my 64 bits vm with nom ><
12:36 moritz m: class X::F { has $.message = 'boo' };  sub f () { fail };  say f().exception.^name
12:36 camelia rakudo-moar cc4635: OUTPUT«X::AdHoc␤»
12:36 vv3 joined #perl6
12:36 moritz that looks...wrong
12:36 El_Che hi my favorite perl6 people!
12:37 moritz m: class X::F is Exception { has $.message = 'boo' };  sub f () { fail };  say f().exception.^name
12:37 camelia rakudo-moar cc4635: OUTPUT«X::F␤»
12:37 moritz oh, it works like that
12:37 loren El_Che, Hi...
12:37 lizmat wrt to dies-ok, jnthn changed a lot of checks for X::AdHoc to dies-ok  :-(
12:37 llfourn moritz: thanks for fixing docs build and imporving robustness. fyi is note completely blank but is 403 :)
12:37 llfourn /note/not/
12:37 moritz lizmat: well, X::AdHoc is wrong when we start to introduce typed exceptions
12:38 moritz lizmat: better to test for Exception than to test X::AdHoc
12:38 lizmat well, that's the same as dies-ok
12:38 lizmat so we get false positives
12:38 lizmat :-(
12:39 Skarsnik how to test the fail message btw?
12:40 moritz Skarsnik: once it's handled, you can stringify it
12:40 vv3 joined #perl6
12:41 vv3 joined #perl6
12:42 nine abraxxa: you do have NativeCall::TypeDiag installed but cannot load it?
12:42 vv3 joined #perl6
12:43 Skarsnik I think having a missing dep screw it?
12:43 vv3 joined #perl6
12:43 abraxxa nine: panda --force install NativeCall::TypeDiag said install successful on my nom build
12:44 nine abraxxa: but perl6 -e 'use NativeCall::TypeDiag' fails?
12:44 abraxxa nine: yes
12:44 abraxxa Could not find NativeCall::TypeDiag in:
12:45 nine Oh, I can even reproduce this!
12:45 Skarsnik I just fixed the missing dep xD
12:45 kjs_ joined #perl6
12:45 nine And that's the reason: "Gumbo" : "lib/NativeCall/TypeDiag.pm6" in
12:46 nine perl6 -e 'use Gumbo' # obvious fix
12:46 Skarsnik lol
12:47 Skarsnik I should use/write something to generate the base code for my modules x)
12:47 moritz Skarsnik: please take over Module::Starter
12:47 Skarsnik abraxxa, ok try remove and install again?
12:48 abraxxa Skarsnik: does panda have an uninstall/remove option?
12:48 pierre-vigier joined #perl6
12:48 Skarsnik I wanted to use mi6 but using it to run test rebuild the META, it screw me the dbiish meta file by changing the author x)
12:48 vv3 joined #perl6
12:49 Skarsnik No idea. it should ?
12:49 nine abraxxa: not yet
12:49 vv3 joined #perl6
12:49 abraxxa panda --force install NativeCall::TypeDiag again said ==> Successfully installed NativeCall::TypeDiag but it still can't be found
12:49 Skarsnik update?
12:50 vv3 joined #perl6
12:50 nine abraxxa: panda update before installing again
12:51 abraxxa nine: oh, thanks
12:51 vv3 joined #perl6
12:51 abraxxa still had to force it but now it seems to work
12:52 nine We all should start versioning our modules. Otherwise people will have to use --force all the time
12:52 Skarsnik panda has a gen-meta option, fun
12:53 abraxxa Skarsnik: OCI has multiple header files but InstantClient doesn't install into the regular lib dirs, can I specify the dir somehow?
12:54 Skarsnik you could always set @nctd-extracompileroptions
12:55 abraxxa Skarsnik: where is that documented?
12:55 abraxxa nine: anything I can do to fix size_t?
12:55 Skarsnik but the diag-function compile nothing, it just look at the routine signature
12:56 nine abraxxa: find out why the hell the test fails when run with perl6 directly and why it passes when run in the harness
12:56 Skarsnik constant size_t       is export = long; remove that
12:56 Skarsnik size_t exist
12:56 Skarsnik now
12:56 abraxxa nine: I can't run the harness
12:57 nine abraxxa: why?
12:57 vv3 joined #perl6
12:57 vv3 joined #perl6
12:58 abraxxa nine: Could not execute (./perl6-m t/04-nativecall/02-simple-args.t): open3: exec of ./perl6-m t/04-nativecall/02-simple-args.t failed at /home/ahartmai/perl5/perlbrew/perls/22.1/lib/5.22.1/TAP/Parser/Iterator/ line 165.
12:58 abraxxa when I run perl t/harness --moar t/04-nativecall/02-simple-args.t
12:58 vv3 joined #perl6
12:59 Skarsnik just run perl6 -I lib t/04-nc/02 ?
12:59 vv3 joined #perl6
12:59 nine Skarsnik: doesn't help. The test fails (as it should) when run that way but passen when run with the harness (make test)
13:00 rurban joined #perl6
13:00 Skarsnik duh
13:01 abraxxa how can i build a List from one column of an Array of Arrays?
13:02 lizmat abraxxa: the nice syntax for that using * is still NYI, afaik
13:03 abraxxa{ .[3] })?
13:05 Skarsnik btw if you have the same issue with is-deeply that I have, it's probably a rakudo bug on eqv
13:05 vv3 joined #perl6
13:05 abraxxa works but returns a Seq
13:07 xinming joined #perl6
13:07 vv3 joined #perl6
13:09 abraxxa nine: make test passes here too
13:10 RabidGravy joined #perl6
13:10 abraxxa and ./perl6-m -Ilib t/04-nativecall/02-simple-args.t fails
13:11 abraxxa nine: but as I said before, size_t.^shortname is Int which maps to longlong instead of size_t in %type_map
13:12 xinming_ joined #perl6
13:13 vv3 joined #perl6
13:14 vv3 joined #perl6
13:15 vv3 joined #perl6
13:15 abraxxa what is the difference between :amount($(Rat, Rat, 2.4, 4.95, Rat, 4.85)) and :amount($[Rat, Rat, 2.4, 4.95, Rat, 4.85]) ?
13:15 abraxxa the first is generated by the map().list
13:15 vv3 joined #perl6
13:15 kjs_ joined #perl6
13:19 kjs_ joined #perl6
13:20 shmibs joined #perl6
13:21 vv3 joined #perl6
13:22 moritz abraxxa: () vs []
13:22 moritz abraxxa: () is a list, [] is an Array
13:22 abraxxa yes, but I can't figure out what is what
13:22 vv3 joined #perl6
13:22 moritz m: say $[].^name
13:22 camelia rakudo-moar cc4635: OUTPUT«Array␤»
13:22 moritz m: say $().^name
13:22 camelia rakudo-moar cc4635: OUTPUT«Use of Nil in string context  in block <unit> at /tmp/MVusf41i2J:1␤Str␤»
13:22 moritz m: say $(1, 2).^name
13:22 camelia rakudo-moar cc4635: OUTPUT«List␤»
13:22 Skarsnik m: use NativeCall; say size_t.^shortname;
13:22 camelia rakudo-moar cc4635: OUTPUT«size_t␤»
13:22 abraxxa i still hate that there are two types!
13:22 abraxxa as the code pushes it only can return an Array, correct?
13:23 moritz right
13:23 vv3 joined #perl6
13:23 abraxxa i tried initializing it with () instead of [] but that didn't work
13:23 abraxxa so how do i get an Array out of the Seq returned by map?
13:23 Skarsnik I don't get your issue with size_t x)
13:23 RabidGravy flat
13:23 abraxxa RabidGravy: flat returns a List too
13:23 vv3 joined #perl6
13:24 abraxxa hm, doc bug
13:24 abraxxa Interprets the invocant as a list, flattens it, and returns that list.
13:24 abraxxa but: method flat() return Iterable
13:24 abraxxa the first is from Class Any, the later from role Iterable
13:25 andreoss joined #perl6
13:25 abraxxa Skarsnik: does the test fail for you too?
13:25 moritz List ~~ Iterable
13:25 moritz so not a bug
13:27 abraxxa moritz: more of an annoyance with the docs that reload the page when you click a method and this new page shows all possible sources and not only the one used by the Class or Type you clicked the link in
13:27 abraxxa so is there a way to get an Array from a Seq?
13:27 lizmat [$seq.list] ?
13:27 moritz [$seq] ?
13:28 moritz $seq.Array?
13:28 moritz m: say (gather { take 1; take 2}).Array.perl
13:28 camelia rakudo-moar cc4635: OUTPUT«[1, 2]␤»
13:28 moritz m: say [gather { take 1; take 2}].perl
13:28 camelia rakudo-moar cc4635: OUTPUT«[1, 2]␤»
13:28 abraxxa [ $seq.list ] works, thanks
13:29 Skarsnik moritz, can you look at dbiish to have row usable in for? (without being greedy)
13:29 abraxxa this needs BIG red letters in the docs: [] is an Array, () is a List
13:29 lizmat abraxxa: from what moritz said, $seq.Array should also work
13:29 abraxxa which is weird for p5 people where you write my @rray = ();
13:29 vv3 joined #perl6
13:30 abraxxa not listed here:
13:30 nine or even simpler: my @column ={ .[3] });
13:30 vv3 joined #perl6
13:30 lizmat m: dd my @a = (1,2,3)  # abraxxa: that still works in P6
13:30 camelia rakudo-moar cc4635: OUTPUT«Array @a = [1, 2, 3]␤»
13:30 abraxxa nine: i have that in a hash
13:31 lizmat m: dd my @a = 1,2,3  # abraxxa: but the parens are superstitious
13:31 camelia rakudo-moar cc4635: OUTPUT«Array @a = [1, 2, 3]␤»
13:31 nine m: my @array = [1, 2, 3], [2, 3, 4], [3, 4, 5]; my @column =*.[2]); say @column;
13:31 camelia rakudo-moar cc4635: OUTPUT«[3 4 5]␤»
13:31 abraxxa lizmat: yes, which makes it even more confusing! does this build a List which is then assigned to the Array?
13:31 vv3 joined #perl6
13:31 lizmat abraxxa: yup
13:31 lizmat , is the list creator
13:31 lizmat m: dd (42); dd (42,)
13:31 camelia rakudo-moar cc4635: OUTPUT«42␤(42,)␤»
13:32 abraxxa lizmat: so my @array = []; performs better because no List object is generated and thrown away immediatly?
13:32 vv3 joined #perl6
13:32 abraxxa .Array works, can we please add it to the docs?
13:33 abraxxa not that is_deeply is satified by it, put at least the printout is the same
13:33 lizmat abraxxa: could be, would need to benchmark that
13:34 lizmat m: dd my @a = []; dd my @b = [],[]   # abraxxa: single arg rule at play!
13:34 camelia rakudo-moar cc4635: OUTPUT«Array @a = []␤Array @b = [[], []]␤»
13:34 abraxxa because if yes all example code should only assign [] to @rray
13:35 abraxxa so what is a hash then, i guess {}?
13:35 abraxxa Skarsnik: if yes this makes no sense:
13:35 nine No, no, no. Even if benchmarks say that it's faster (which they won't), let's not optimize example code for the _current_ performance characteristics that may change as soon as someone plays half an hour with the optimizer.
13:35 abraxxa as it's an Array of key-value pairs
13:36 abraxxa nine: agreed, but assigning an Array to an Array makes more sense for newcomers then assigning a List to it
13:36 abraxxa just to not have some sort of type conversion going on in the simplest examples
13:36 nine Arrays _are_ Lists
13:36 leont joined #perl6
13:36 abraxxa no, they are two different types with some identical apis
13:36 nine my @a = 1, 2, 3; is a perfect idiom to learn
13:36 lizmat m: say Array.^mro
13:36 camelia rakudo-moar cc4635: OUTPUT«((Array) (List) (Cool) (Any) (Mu))␤»
13:36 Skarsnik m: say (1,2,3) eqv [1, 2, 3]
13:36 camelia rakudo-moar cc4635: OUTPUT«False␤»
13:37 abraxxa if they would be the same one would be useless
13:37 nine Arrays _are_ Lists. We are object oriented now and we do have inheritance (aka is-a relationships)
13:37 abraxxa Skarsnik: exaclty
13:37 abraxxa ^^
13:37 colomon m: say Array ~~ List
13:37 camelia rakudo-moar cc4635: OUTPUT«True␤»
13:37 colomon m: say List ~~ Array
13:37 camelia rakudo-moar cc4635: OUTPUT«False␤»
13:37 abraxxa nine: how do you define _are_
13:37 colomon what nine++ said
13:37 vv3 joined #perl6
13:37 Skarsnik hm, maybe the second test should work with @ref = [stuff ] instead of ()
13:38 abraxxa Lists are immuatble, Arrays aren't
13:38 lizmat Array isa List  # p5 think
13:38 nine m: say Array.isa(List
13:38 camelia rakudo-moar cc4635: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lHKG2l_Jp5␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/lHKG2l_Jp5:1␤------> 3say Array.isa(List7⏏5<EOL>␤»
13:38 nine m: say Array.isa(List)
13:38 camelia rakudo-moar cc4635: OUTPUT«True␤»
13:38 nine abraxxa: that way ^^^
13:38 Skarsnik err that mean eqv is buggy?
13:38 * nine just learned, that we still have .isa in Perl 6
13:38 abraxxa Arrays are a subclass of List is correct
13:38 vv3 joined #perl6
13:38 Skarsnik m: say (1,2,3) eqv [1, 2, 3]; say [1, 2, 3] eqv (1,2,3);
13:38 camelia rakudo-moar cc4635: OUTPUT«False␤False␤»
13:38 Skarsnik or not
13:38 abraxxa so is {} a Hash?
13:39 nine m: say {}.^name
13:39 camelia rakudo-moar cc4635: OUTPUT«Hash␤»
13:39 vv3 joined #perl6
13:39 leont Hey *, how's christmas coming? :-)
13:39 lucasb joined #perl6
13:40 Skarsnik m: my %ref = (a => 2); say %ref.WHAT;
13:40 camelia rakudo-moar cc4635: OUTPUT«(Hash)␤»
13:40 vv3 joined #perl6
13:40 nine leont: fine I dare say :) jnthn++ cut down the Xmas RT list to 0 with help of a few others. I want to land just one more patch
13:41 leont Awesome :-)
13:42 Skarsnik nine, the issue, this dumb test fail (is-deeply) even if Test print the same string on expected/got
13:42 nine abraxxa: note that I never said that Arrays are the _same_ as Lists. They are a special kind of List, but wherever code wants a List, you can give it an Array and it will work just fine
13:44 lucasb m: say (loop (my $i = 0; $i < 3; $i++) { 42 })
13:44 camelia rakudo-moar cc4635: OUTPUT«(timeout)»
13:45 RabidGravy :-\
13:45 lucasb I'm happy that 'while' now return values, so I thought I would try that with 'loop'
13:45 Skarsnik abraxxa, t/04-nativecall/02-simple-args.t ..... ok
13:45 thomax nsty bug it is
13:46 vv3 joined #perl6
13:46 vv3 joined #perl6
13:46 lucasb star: say (while $++ < 3 { 1+2 })
13:47 camelia star-m 2015.09: OUTPUT«sub infix:<<> (Mu $?, Mu $?) { #`(Sub+{<anon>}|42774000) ... }␤»
13:47 lucasb star: say (loop (my $i = 0; $i < 3; $i++) { 42 })
13:47 camelia star-m 2015.09: OUTPUT«sub infix:<<> (Mu $?, Mu $?) { #`(Sub+{<anon>}|41680576) ... }␤»
13:47 abraxxa nine: in this test I want to be explicit as possible as it tests the API
13:47 lucasb ^^ just as a data point, before while and loop returned the same thing... the last operation executed maybe
13:47 vv3 joined #perl6
13:48 abraxxa Skarsnik: make test or running it directly?
13:48 Skarsnik make test
13:48 vv3 joined #perl6
13:48 abraxxa Skarsnik: same here, run it direclty please
13:50 Skarsnik why it's so slow ~~
13:51 nine Skarsnik: it compiles a lot of native libs
13:51 thomax m: say (loop (my $i = 0; $i < 3; $i++) { print $i; })
13:51 Skarsnik Oh yeah, that's true
13:52 camelia rakudo-moar cc4635: OUTPUT«(timeout)0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…»
13:52 Begi O_o
13:53 Skarsnik Oh I see abraxxa
13:53 Skarsnik that's weird
13:53 nine Skarsnik: t/35-pg-common.t passes here?
13:54 vv3 joined #perl6
13:54 hankache joined #perl6
13:55 vv3 joined #perl6
13:55 Skarsnik hm, I don't have pg setup for test ~~
13:55 vv3 joined #perl6
13:56 vv3 joined #perl6
13:56 nine Skarsnik: I guess it doesn't mean much that they pass:  Cannot locate native library ''
13:57 Skarsnik I did not update DBIis for api version/new native trait because it will fail to work with 2 week old rakudo x)
13:59 loren m: my @source = 1, 2, 3; my @display; @display.push: @source.clone(); my @temp = @source.clone(); @display.push: @temp; @source[1,2]=@source[2,1]; say @display;
13:59 camelia rakudo-moar cc4635: OUTPUT«[[1 3 2] [1 2 3]]␤»
14:00 skids joined #perl6
14:00 loren Hi, i have a question about above code result..
14:01 loren Has anyone can have a look about it ?
14:02 vv3 joined #perl6
14:02 Skarsnik this code is dumb lol but yes, it missing bool and size_t
14:02 geekosaur looks right to me?
14:03 loren I want to use clone copy a Array, but when i use like this '@display.push: @source.clone()', it's not working ..
14:03 vv3 joined #perl6
14:03 geekosaur oh, missed that it's cloned twice
14:03 vv3 joined #perl6
14:04 loren geekosaur, em the result a little strange ..
14:04 vv3 joined #perl6
14:05 xinming joined #perl6
14:05 RabidGravy append
14:05 loren I don't want to append
14:05 loren '@display' shound be an Array of Array
14:05 RabidGravy then maybe say what you expect?
14:06 loren m: my @source = 1, 2, 3; my @display; my @temp = @source.clone(); @display.push: @temp; @source[1,2]=@source[2,1]; say @display;
14:06 camelia rakudo-moar cc4635: OUTPUT«[[1 2 3]]␤»
14:06 loren These code work fine
14:06 loren but '@display.push: @source.clone()' not
14:07 abraxxa Skarsnik: please look at my latest commits:
14:08 Skarsnik .tell FROGGS You forget to update the plan on t/04-nc/02.t to 13 and make the test succes on make test, when it fail for the 13th because size_t (and bool) are not listed on moar/src/core/nc.c
14:08 yoleaux Skarsnik: I'll pass your message to FROGGS.
14:09 Skarsnik abraxxa, ~~ will compare the type only probably
14:09 hankache m: my @source = 1, 2, 3; my @display; @display.push: @source.clone(); say @display;
14:09 camelia rakudo-moar cc4635: OUTPUT«[[1 2 3]]␤»
14:09 hankache loren ^^
14:09 hankache how is it not working?
14:10 loren ..I'm now mean that
14:10 loren m: my @source = 1, 2, 3; my @display; @display.push: @source.clone(); @source[1,2]=@source[2,1]; say @display;
14:10 camelia rakudo-moar cc4635: OUTPUT«[[1 3 2]]␤»
14:10 vv3 joined #perl6
14:10 Skarsnik abraxxa, for size_t, well... keep your constant but with another name (like FIXMELATER?) x)
14:11 loren hankache, '@display' also change when i change '@source'
14:11 vv3 joined #perl6
14:12 vv3 joined #perl6
14:12 vv3 joined #perl6
14:13 hankache loren ah! it seems like clone binds instead of assigning
14:14 loren yeah, hankache
14:15 hankache m: my $a = 1; my $b = $a.clone; $a = 3; say $b;
14:15 camelia rakudo-moar cc4635: OUTPUT«1␤»
14:16 hankache weird
14:17 hankache m: my @a = [1,2]; my @b = @a.clone; @a = [9,9]; say @b;
14:17 camelia rakudo-moar cc4635: OUTPUT«[1 2]␤»
14:17 loren m: my @a = [1,2]; my @b = @a.clone; @a[1,2] = @[2,1]; say @b;
14:17 camelia rakudo-moar cc4635: OUTPUT«[1 2]␤»
14:18 abraxxa Skarsnik: good idea
14:18 loren m: my @a = [1,2]; my @b = @a.clone; @a[1,2] = @a[2,1]; say @b;
14:18 camelia rakudo-moar cc4635: OUTPUT«[1 2]␤»
14:18 hankache loren it doesn't seem like it is binding
14:18 hankache let's see your initial example
14:19 loren hankache, has problem when push it to an Array
14:20 loren m: my @a = [1,2]; my @b; @b.push: @a.clone; @a[0,1] = @a[1,0]; say @b;
14:20 camelia rakudo-moar cc4635: OUTPUT«[[2 1]]␤»
14:20 Skarsnik nine, can you change to return $*VM.platform-library-name($libname.IO, :version($apiversion ??$apiversion) !! Version)).Str; It allow to write native('foo', 1) instead of forcing to v1
14:20 loren m: my @a = [1,2]; my @b = @a.clone; @a[0,1] = @a[1,0]; say @b;
14:20 camelia rakudo-moar cc4635: OUTPUT«[1 2]␤»
14:21 vv3 joined #perl6
14:21 nine Skarsnik: I'm not sure I want that. I figured, we should start out being very strict about the types we require. We can always relax the requirements later but we may never tighten them up.
14:22 Skarsnik ok
14:22 Skarsnik m: say v1.WHAT
14:22 camelia rakudo-moar cc4635: OUTPUT«v1.WHAT␤»
14:23 Skarsnik m: say v1.0.WHAT
14:23 camelia rakudo-moar cc4635: OUTPUT«v1.0.WHAT␤»
14:23 Skarsnik m: say (v1).WHAT
14:23 camelia rakudo-moar cc4635: OUTPUT«(Version)␤»
14:23 Begi m: say (v1).WHAT;
14:23 camelia rakudo-moar cc4635: OUTPUT«(Version)␤»
14:23 hankache m: my @a = [1,2]; my @b; @b.push: |@a; @a[0,1] = @a[1,0]; say @b;
14:23 Skarsnik say (v0).WHAT;
14:23 camelia rakudo-moar cc4635: OUTPUT«[1 2]␤»
14:24 dalek rakudo/nom: 214debb | (Stefan Seifert)++ | t/04-nativecall/02-simple-args.t:
14:24 dalek rakudo/nom: Fix wrong test plan hiding a failing test
14:24 dalek rakudo/nom:
14:24 dalek rakudo/nom: 15:08 < Skarsnik> .tell FROGGS You forget to update the plan on
14:24 dalek rakudo/nom: t/04-nc/02.t to 13 and make the test succes on make test, when it fail
14:24 dalek rakudo/nom: for the 13th because size_t (and bool) are not listed on
14:24 dalek rakudo/nom: moar/src/core/nc.c
14:24 dalek rakudo/nom: review:
14:24 hankache loren : my @a = [1,2]; my @b; @b.push: |@a; @a[0,1] = @a[1,0]; say @b;
14:24 Skarsnik say (v0).WHAT;
14:24 Skarsnik err
14:24 Skarsnik m: say (v0).WHAT;
14:24 camelia rakudo-moar cc4635: OUTPUT«(Version)␤»
14:24 Skarsnik it look weird x)
14:25 Begi m: say (v6).WHAT;
14:25 camelia rakudo-moar cc4635: OUTPUT«(Version)␤»
14:25 hankache loren you are pushing @a into @b. @a is an array in other words: a container or a reference
14:26 darutoko joined #perl6
14:26 loren hankache, I want an Array of Array
14:26 vv3 joined #perl6
14:27 nine loren: try .append instead of .push
14:27 hankache loren forget what i just said... i am lost :(
14:27 vv3 joined #perl6
14:27 loren hankache, it doesn't matter
14:28 hankache Ladies and gents can someone help us please
14:28 hankache m: my @a = [1,2]; my @b; @b.push: @a; @a[0,1] = @a[1,0]; say @b;
14:28 camelia rakudo-moar cc4635: OUTPUT«[[2 1]]␤»
14:28 vv3 joined #perl6
14:28 leont Just tried building a new rakudo, but it failed with a «Could not find symbol '&bool'» during tools/build/
14:28 loren nine, I don't want use append cause i need an Array of Array
14:28 nine leont: remove install/share/perl6 please
14:28 hankache why when we modify @a then @b also gets affected?
14:29 RabidGravy "unsigned long long int" - that's special
14:29 vv3 joined #perl6
14:29 nine hankache: [[2 1]] it's an array containing @a
14:29 Skarsnik I have the same can't find Shell::Command on panda hm
14:29 grondilu hankache: see @a as a reference.
14:30 nine Skarsnik: is there any trace (try ack Shell::Command) of Shell::Command in your ~/.perl6 or install/share/perl6?
14:30 hankache m: my $a = 1; my $b = $a; $a = 3; say $b;
14:31 camelia rakudo-moar cc4635: OUTPUT«1␤»
14:31 grondilu m: my @a = [1,2]; my @b; @b.push: @a[]; @a[0,1] = @a[1,0]; say @b;
14:31 camelia rakudo-moar cc4635: OUTPUT«[[2 1]]␤»
14:31 grondilu hum
14:31 grondilu that's unexpected
14:31 loren hankache, the code is not correct
14:31 grondilu m: my @a = [1,2]; my @b; @b.push: @@a; @a[0,1] = @a[1,0]; say @b;
14:31 camelia rakudo-moar 214deb: OUTPUT«[[2 1]]␤»
14:31 loren m: my @source = 1, 2, 3; my @display; @display.push: @source.clone(); @source[1,2]=@source[2,1]; say @display;
14:31 camelia rakudo-moar 214deb: OUTPUT«[[1 3 2]]␤»
14:31 grondilu m: my @a = [1,2]; my @b; @b.push: @a.clone; @a[0,1] = @a[1,0]; say @b;
14:31 camelia rakudo-moar 214deb: OUTPUT«[[2 1]]␤»
14:31 loren I mean like that
14:31 grondilu wth
14:32 nine m: my @a = [1,2]; my @b; @b.push: [|@a]; @a[0,1] = @a[1,0]; say @b;
14:32 camelia rakudo-moar 214deb: OUTPUT«[[1 2]]␤»
14:32 Skarsnik not here
14:32 loren grondilu, yep , use clone
14:32 lucasb ok, can we all agree that array cloning is not cloning? :)
14:32 grondilu but clone did not work.
14:32 nine My version does work :)
14:32 Skarsnik Oh could it because I did not update rakudobrew?
14:32 grondilu m: my @a = [1,2]; my @b; @b.push: @a.List; @a[0,1] = @a[1,0]; say @b;
14:32 camelia rakudo-moar 214deb: OUTPUT«[(1 2)]␤»
14:32 Skarsnik I just rakudobrew nuke
14:33 geekosaur nine, I think the point here is that .clone works with a temp var but not directly in .push
14:33 loren m: my @source = 1, 2, 3; my @display; my @t = @source.clone(); @display.push: @t; @source[1,2]=@source[2,1]; say @display;
14:33 camelia rakudo-moar 214deb: OUTPUT«[[1 2 3]]␤»
14:33 grondilu m: my @a = [1,2]; my @b; @b.push: @a[*]; @a[0,1] = @a[1,0]; say @b;
14:33 camelia rakudo-moar 214deb: OUTPUT«[(2 1)]␤»
14:33 nine I wish rakudobrew would not exist...
14:33 loren use temp variable is working fine
14:34 hankache so is &clone the culprit?
14:34 loren I don't know about detail..
14:34 nine loren: because clone is a very low level too that you just shouldn't use unless you know it's the right tool.
14:34 vv3 joined #perl6
14:35 grondilu m: my @a = 1; my @b = @a.clone; @a[0] = pi; say @b
14:35 camelia rakudo-moar 214deb: OUTPUT«[1]␤»
14:35 lucasb m: my @a = 1,2; my @b := @a.clone; say @b; @a.push(42); say @b
14:35 camelia rakudo-moar 214deb: OUTPUT«[1 2]␤[1 2 42]␤»
14:35 vv3 joined #perl6
14:36 hankache m: my @a = 1,2; my @b = @a.clone; say @b; @a.push(42); say @b
14:36 camelia rakudo-moar 214deb: OUTPUT«[1 2]␤[1 2]␤»
14:36 loren nine, so when i don't want a reference. what should i do ?
14:36 dalek tablets: 11b52a7 | (Herbert Breunung)++ | docs/appendix- (3 files):
14:36 dalek tablets: + nav anchor
14:36 dalek tablets: review:
14:36 dalek tablets: 6f40514 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
14:36 dalek tablets: Merge branch 'master' of
14:36 dalek tablets: review:
14:36 dalek tablets: 0d83447 | (Herbert Breunung)++ | docs/ (4 files):
14:36 dalek tablets: fixed added navigation in A and B
14:36 dalek tablets: review:
14:36 grondilu m: my @a = [1,2]; my @b; @b.push: [@a]; @a[0,1] = @a[1,0]; say @b;
14:36 camelia rakudo-moar 214deb: OUTPUT«[[1 2]]␤»
14:36 hankache loren [|@arrayname]
14:36 nine loren: like I showed, the easiest way to copy an array seems to be [|@a]
14:36 grondilu | is not necessay here
14:37 Ven joined #perl6
14:37 nine true, it's the single arg rule
14:37 grondilu it is
14:37 Ven TimToady , I'm not sure why the UNDO phasers are triggered there?
14:37 nine m: my @a = 1, 2, 3; say [@a];
14:37 camelia rakudo-moar 214deb: OUTPUT«[1 2 3]␤»
14:38 loren If i want do like that, why i use append instead
14:38 grondilu m: say grep 'append', Array.^methods
14:38 camelia rakudo-moar 214deb: OUTPUT«Method object coerced to string (please use .gist or .perl to do that)  in block <unit> at /tmp/tc2dBx9Lhq:1␤Method object coerced to string (please use .gist or .perl to do that)  in block <unit> at /tmp/tc2dBx9Lhq:1␤Method object coerced to string (p…»
14:38 loren why not ..
14:39 vv3 joined #perl6
14:39 Skarsnik damn even with self-update shell:::cmd is not found
14:39 Ven m: say grep 'append', Array.^*.name)
14:39 camelia rakudo-moar 214deb: OUTPUT«(append append)␤»
14:40 Ven grondilu: ^^
14:41 grondilu what's this append method? I can't find it in S32.
14:41 RabidGravy append is a "flattening" push
14:41 Ven append is like .push:
14:42 loren m: my @a = 1, 2, 3; my @x; @x.push: @a; my @y ; @y.append: @a; say @x; say @y;
14:42 camelia rakudo-moar 214deb: OUTPUT«[[1 2 3]]␤[1 2 3]␤»
14:42 grondilu ok
14:42 loren m: my @a = 1, 2, 3; my @x; @x.push: |@a; my @y ; @y.append: @a; say @x; say @y;
14:42 camelia rakudo-moar 214deb: OUTPUT«[1 2 3]␤[1 2 3]␤»
14:42 nine Skarsnik: are there traces of Shell::Command anywhere in your .rakudobrew?
14:43 Skarsnik it just does not get installed
14:43 hankache append @a is like push |@a
14:43 Skarsnik even running on panda did not work
14:43 loren Do i need report a bug about clone ?
14:43 nine If panda tells you that it successfully installed, then I believe it. The question is: where?
14:43 vv3 joined #perl6
14:44 Skarsnik with ack
14:44 Skarsnik 1:unit module Shell::Command;
14:44 Skarsnik /root/.rakudobrew/moar-nom/panda/ext/Shell__Command/lib/Shell/
14:44 Skarsnik only in this file
14:44 nine That's where it's installed from
14:44 vv3 joined #perl6
14:44 Skarsnik not in the install path
14:44 nine Skarsnik: you do this as root?
14:45 lucasb this dude keeps entering and leaving the channel... he must be waiting for some release announcement
14:45 vv3 joined #perl6
14:45 Skarsnik Yes, I work on root on this dumb vm x)
14:45 dalek rakudo/nom: a860e8f | lizmat++ | src/core/Date (3 files):
14:45 dalek rakudo/nom: Streamline Date handling
14:45 dalek rakudo/nom:
14:45 dalek rakudo/nom: - new()/gist moved to Dateish
14:45 dalek rakudo/nom: - main new logic now in .new($y,$m,$d) which allows for coercion
14:45 dalek rakudo/nom: - .new($str) no longer parses, but just splits and catches any fallout
14:45 dalek rakudo/nom: - no special format for small/large years
14:45 dalek rakudo/nom: - ACCEPTS now checks day/mon/year instead of year/mon/day
14:45 dalek rakudo/nom:   since day is most likely to differ
14:45 dalek rakudo/nom: - DAYS-IN-MONTH is now a private method
14:45 dalek rakudo/nom: - no longer use check-date, but directly use Range,in-range
14:45 dalek rakudo/nom: review:
14:46 Skarsnik anyways, I am off for a while x)
14:46 nine loren: no, clone is fine as it is. It's just not the tool you need.
14:47 lucasb nine: sorry, but the clone behavior surprised me... idk if it's how it's supposed to work
14:47 loren nine, but it has problem obviously
14:47 hankache well from the docs it seems clone is defined in mu
14:48 nine loren: no, it doesn't! Just because you think or wish it would do something different, doesn't make it so. clone gives you a shallow copy of the object with the possibility of overriding some attributes. If you don't override, you get exactly the same attributes. Like Array's $!storage.
14:49 nine loren: So you get a new Array object that shares it's storage with the old one. That's why you see this behavior which is totally fine.
14:49 molaf joined #perl6
14:49 loren m: my @source = 1, 2, 3; my @display; @display.push: @source.clone(); @source[1,2]=@source[2,1]; say @display;
14:49 camelia rakudo-moar 214deb: OUTPUT«[[1 3 2]]␤»
14:50 loren nine, how you can explain this ?
14:50 raiph joined #perl6
14:50 nine loren: I just did. You're using a screwdriver for hammering in a nail and you're blaming the screwdriver for being a bad hammer.
14:51 vv3 joined #perl6
14:51 loren I know what am i doing , nine
14:52 FROGGS_ Skarsnik: I did not even add a test to :o)
14:52 vv3 joined #perl6
14:52 vv3 joined #perl6
14:53 nine lucasb:
14:53 nine loren:
14:53 vv3 joined #perl6
14:54 hankache nine: it is just that the word "clone" insinuates that you're (creating a copy)
14:55 cdg joined #perl6
14:55 nine hankache: and that's what it does. It creates a very shallow copy. So shallow, that even an Array's $!storage attribute is copied
14:57 hankache nine: indeed
14:57 lucasb nine: thanks for the link, I'll take a read at it later.
14:58 RabidGravy m: my @a = <1 2 3>; say @a.WHICH; @a.list>>.WHICH.say; my @b = @a.clone; say @b.WHICH; @b.list>>.WHICH.say
14:58 camelia rakudo-moar a860e8: OUTPUT«Array|56649600␤[IntStr|1 IntStr|2 IntStr|3]␤Array|56649728␤[IntStr|1 IntStr|2 IntStr|3]␤»
14:58 RabidGravy different arrays same containers as elements
14:58 RabidGravy simple
14:59 vv3 joined #perl6
15:00 vv3 joined #perl6
15:00 llfourn joined #perl6
15:01 vv3 joined #perl6
15:01 loren m: my @source = 1, 2, 3; my @display; @display.push: @source.clone(); .WHICH.say for @display; @source[1,2]=@source[2,1]; say @display;say @source.WHICH; say @display.WHICH; .WHICH.say for @display;
15:01 camelia rakudo-moar a860e8: OUTPUT«Array|50465856␤[[1 3 2]]␤Array|50465984␤Array|50465920␤Array|50465856␤»
15:01 vv3 joined #perl6
15:02 hankache see ya later #perl6
15:06 loren I agree with your opinion about *clone*'s mean, and i read Array document carefully before i use it. but you see above result, i change '@source' but '@display' also changed!
15:07 geekosaur please rename "clone" since apparently people are going to trust the name over what it actually does
15:07 geekosaur and inisit
15:07 geekosaur *insist
15:07 ZoffixW joined #perl6
15:07 nine m: my @a = 1, 2, 3; my @b := @a.clone; push @a: 4; say @b;
15:07 camelia rakudo-moar a860e8: OUTPUT«[1 2 3 4]␤»
15:07 vv3 joined #perl6
15:08 nine RabidGravy: ^^^ I still think it's actually the sharing of the $!reified attribute that causes this
15:08 hankache joined #perl6
15:08 hankache back for a quick question
15:08 vv3 joined #perl6
15:09 ZoffixW loren, right, but display contains one element: the shallow clone of @source
15:09 RabidGravy nine, I think you're right
15:09 ZoffixW loren, and thus, by changing @source, you're changing it in @display too
15:09 hankache if i use module::xyz and this module has use MONKEY-SEE-NO-EVAL will i inherit it?
15:09 RabidGravy is it the repr that actually implements the clone
15:09 davercc left #perl6
15:09 nine hankache: no, MONKEY-SEE-NO-EVAL is lexical
15:09 loren ZoffixW, but Array address is not same.
15:09 ZoffixW loren, yes it is
15:10 hankache nine thank you :)
15:11 RabidGravy hankache, also a very polite author would put "no MONKEY-SEE-NO-EVAL" when they're done with it ;-)
15:11 nine m: use nqp; my @a = 1, 2, 3; say @a.WHICH; say nqp::getattr(@a, List, <$!reified>).WHICH; my @b := @a.clone; say @b.WHICH; say nqp::getattr(@b, List, <$!reified>).WHICH;
15:11 camelia rakudo-moar a860e8: OUTPUT«Array|49371680␤IterationBuffer|54820320␤Array|49371744␤IterationBuffer|54820320␤»
15:11 nine loren: ^^^
15:11 ZoffixW loren, err, I mean the addresses of stuff contained in the array
15:11 ZoffixW m: my @source = 1, 2, 3; my @display; @display.push: @source.clone(); @source[1,2]=@source[2,1]; .WHICH.say for @source; .WHICH.say for |@display[0];
15:11 camelia rakudo-moar a860e8: OUTPUT«Int|1␤Int|3␤Int|2␤Int|1␤Int|3␤Int|2␤»
15:12 loren m: my @source = 1, 2, 3; my @display; my @t = @source.clone(); @display.push: @t; @source[1,2]=@source[2,1]; say @display;
15:12 camelia rakudo-moar a860e8: OUTPUT«[[1 2 3]]␤»
15:12 vv3 joined #perl6
15:12 loren ZoffixW, how about these ?
15:13 RabidGravy I'm all for slapping a big "THIS IS NOT WHAT YOU ARE LOOKING FOR" in Array.clone
15:13 nine Array doesn't even have its own .clone. It's Mu's which should already give you a hint that it's kinda low level.
15:13 hankache clone is defined in Mu
15:14 hankache nine++
15:14 RabidGravy so it's never going to work properly for Array really
15:14 hankache loren you can define a multi clone for arrays
15:14 RabidGravy or rather "as people think it should work"
15:15 vv3 joined #perl6
15:15 loren nine, i got what your point ..
15:16 nine loren: what's the problem with just using [@a]?
15:16 loren nine, i got your point ..
15:16 nine m: my @a = 1,2,3; my @b; @b.push: [@a]; @a[0,1] = @a[1,0]; say @b;
15:16 camelia rakudo-moar a860e8: OUTPUT«[[1 2 3]]␤»
15:16 nine [@a] is even shorter than @a.clone
15:16 hankache RabidGravy except for politeness forgetting no MONKEY-SEE-NO-EVAL is harmless, yes?
15:17 loren Em, nine, it's a good way
15:17 vv3 joined #perl6
15:18 ZoffixW I don't
15:18 vv3 joined #perl6
15:18 ZoffixW Nm
15:22 loren Last i want say 'using Perl 6' not go well ...
15:22 loren -_-
15:23 RabidGravy hankache, yes
15:23 khw joined #perl6
15:23 ZoffixW Well, no, I don't get it. I can repro that [@a] is not same as @a.clone
15:23 loren Many trap for me ..
15:23 ZoffixW And here's what I don't get:
15:23 ZoffixW m: my @one = 1, 2, 3; my @clone = @one.clone; my @two.push: @clone; say @one.WHICH; say @clone.WHICH; say @two[0].WHICH; @one[1,2] = @one[2,1]; say [ @one, @clone, @two[0] ]
15:23 camelia rakudo-moar a860e8: OUTPUT«Array|58993248␤Array|58993312␤Array|58993312␤[[1 3 2] [1 2 3] [1 2 3]]␤»
15:23 ZoffixW Here, changing the @one does not affect neither the clone nor the array with a clone
15:23 vv3 joined #perl6
15:24 ZoffixW m: my @one = 1, 2, 3; my @two.push: @one; @one[1,2] = @one[2,1]; @one.WHICH.say; @two[0].WHICH.say; [ @one, @two ].say
15:24 camelia rakudo-moar a860e8: OUTPUT«Array|60278704␤Array|60278704␤[[1 3 2] [[1 3 2]]]␤»
15:24 ZoffixW err
15:24 ZoffixW This one:
15:24 ZoffixW m: my @one = 1, 2, 3; my @two.push: @one.clone; @one[1,2] = @one[2,1]; @one.WHICH.say; @two[0].WHICH.say; [ @one, @two ].say
15:24 camelia rakudo-moar a860e8: OUTPUT«Array|59631600␤Array|59631664␤[[1 3 2] [[1 3 2]]]␤»
15:24 vv3 joined #perl6
15:24 ZoffixW Here, changing @one does affect the cloned one and if I rewrite @one.clone as [@one] the effect dissappears.
15:25 ZoffixW Or is this what you were talking about the $!reified stuff?
15:25 vv3 joined #perl6
15:26 loren ZoffixW, that's what i confused
15:28 vv3 joined #perl6
15:28 ZoffixW I think I get it: :push uses the address, thus modifications can be be made, but the first example creates a new array, thus modifications don't propagate
15:28 ZoffixW m: my @one = 1, 2, 3; my @two.push: @(@one.clone); @one[1,2] = @one[2,1]; @one.WHICH.say; @two[0].WHICH.say; [ @one, @two ].say
15:28 camelia rakudo-moar a860e8: OUTPUT«Array|76265504␤Array|76265568␤[[1 3 2] [[1 3 2]]]␤»
15:29 ZoffixW m: my @one = 1, 2, 3; my @z = @one.clone; my @two.push: @z; @one[1,2] = @one[2,1]; @one.WHICH.say; @two[0].WHICH.say; [ @one, @two ].say
15:29 camelia rakudo-moar a860e8: OUTPUT«Array|56014976␤Array|56015040␤[[1 3 2] [[1 2 3]]]␤»
15:29 stmuk lizmat++ # fixing dd
15:29 ZoffixW m: my @one = 1, 2, 3; my @two.append: @one.clone; @one[1,2] = @one[2,1]; @one.WHICH.say; @two[0].WHICH.say; [ @one, @two ].say
15:29 camelia rakudo-moar a860e8: OUTPUT«Array|63703072␤Int|1␤[[1 3 2] [1 2 3]]␤»
15:30 ZoffixW loren, so it's really the behaviour of .push at play, rather than that of .clone
15:35 lucasb after today's advent post, I'm considering taking a serious look at 007. masak++ :)
15:35 loren ZoffixW, so .clone is correct, .push cause that problem
15:41 ZoffixW loren, I think the real cause of the problem is our lack of understanding of what .clone does and returns :P
15:42 ZoffixW m: my @one = 1, 2, 3; my $clone = @one.clone; my @two.push: $clone; @one[1,2] = @one[2,1]; @one.WHICH.say; @two[0].WHICH.say; [ @one, @two ].say
15:42 camelia rakudo-moar a860e8: OUTPUT«Array|68298992␤Array|68299056␤[[1 3 2] [[1 3 2]]]␤»
15:44 loren ZoffixW, please explain to me ..
15:45 Ven m: my $a = [1, 2]; my @a = @$a; @a.push: 3; say $a;
15:45 camelia rakudo-moar a860e8: OUTPUT«[1 2]␤»
15:45 Ven m: my $a = [1, 2]; my @a = $a; @a.push: 3; say $a;
15:45 camelia rakudo-moar a860e8: OUTPUT«[1 2]␤»
15:48 skids joined #perl6
15:51 _nadim rindolf: same procedure, git pull ;  t6 t/  please. I hope most is ironed out now
15:53 ZoffixW loren, you want the blind to lead the deaf? Very well then... Clone returns a shallow copy, so if you use it in a $ or with a .push (that takes "a" thing), the you get the contents of the array too. But if you assign it into @ or use append, it gets a new storage thing and thus modification is not propagated
15:53 jnthn afternoon, #perl6
15:53 yoleaux 22 Dec 2015 20:33Z <TimToady> jnthn: I think the answer to #126005 is to transform any loop that wants its return value into a map, including KEEP/UNDO, but also loops in non-statementlist context, as the specs ask for; that should give us the correct semantics for KEEP/UNDO and should allow for sink optimization of maps to throw away values later, hopefully after checking return for success
15:53 ZoffixW loren, which is why it was stated above, .clone doesn't work properly on Arrays and is not doing what one might think it should be doing.
15:53 FROGGS o/
15:53 yoleaux 14:08Z <Skarsnik> FROGGS: You forget to update the plan on t/04-nc/02.t to 13 and make the test succes on make test, when it fail for the 13th because size_t (and bool) are not listed on moar/src/core/nc.c
15:54 jnthn .tell TimToady See you fixed things up by now; I'd actually implemented Seq.from-loop while doing GLR prototyping
15:54 yoleaux jnthn: I'll pass your message to TimToady.
15:55 jnthn .tell TimToady So we'd thunk the various bits of the condition. But, so long as we get the semantics right for now, can do it that way :)
15:55 yoleaux jnthn: I'll pass your message to TimToady.
15:56 * jnthn is happy to see all the xmas RTs
15:56 jnthn uh, all the xmas RTs are fixed \o/
15:56 FROGGS damn, infiniloops here
15:56 ZoffixW Wooohooo
15:56 ZoffixW jnthn++
15:56 jnthn Well, others++ took on the last couple
15:57 * jnthn nailed the third to last :)
15:57 jnthn Then got sick.
15:57 loren ZoffixW, thanks for your explanation
15:57 ZoffixW :)
15:57 ZoffixW m: my @a = 1, 2, 3; say [@a.head, @a.tail]
15:57 camelia rakudo-moar a860e8: OUTPUT«[(1) (3)]␤»
15:57 ZoffixW m: my @a = 1, 2, 3; my $head = @a.head; my $tail = @a.tail; say [$head, $tail]
15:57 camelia rakudo-moar a860e8: OUTPUT«[(1) (3)]␤»
15:58 * jnthn has one more change to sneak in :)
15:58 uruwi m: my @a = 1, 2, 3; say (@a.head, @a.tail).flat;
15:58 camelia rakudo-moar a860e8: OUTPUT«(1 3)␤»
15:58 FROGGS ahh, had to remove ~/.perl6/*
15:59 loren It's confusing me so much...
15:59 * ZoffixW finally remembers what they were gumbling about a few weeks ago
15:59 ZoffixW m: my @a = 1, 2, 3; say [ @a.first, @a.last ]
15:59 camelia rakudo-moar a860e8: OUTPUT«Method 'last' not found for invocant of class 'Array'␤  in block <unit> at /tmp/fRMkqXSvNX:1␤␤»
15:59 ZoffixW m: my @a = 1, 2, 3; say [ @a.first, @a.tail ]
15:59 camelia rakudo-moar a860e8: OUTPUT«[1 (3)]␤»
15:59 ZoffixW Ah.. dreams
16:00 ZoffixW loren, .clone is a low level thing that you shouldn't be touching :) There! Now the confusion is gone :)
16:00 ZoffixW :P
16:00 loren So $ reference that Array, and a .push use $
16:01 RabidGravy I think the takeaway from the last two hours is that DWIM is not DWIW, DWIM has it's limits, treat apparently advanced functionality conservatively
16:01 ZoffixW ¯\_(ツ)_/¯  hence my blind leading the deaf comment :)
16:01 llfourn joined #perl6
16:02 ZoffixW m: my @a = ^3; my $a = |^3; say [ @a, $a ]
16:02 camelia rakudo-moar a860e8: OUTPUT«[[0 1 2] 0 1 2]␤»
16:02 loren ZoffixW, document not say what method can we use ....
16:02 * ZoffixW doesn't get what's going on here
16:03 ZoffixW loren, do you know what "shallow clone" of the Array object is?
16:03 dalek rakudo/nom: 29723e3 | FROGGS++ | lib/NativeCall.pm6:
16:03 dalek rakudo/nom: map bool/size_t in nativecall to right sized int
16:03 dalek rakudo/nom:
16:03 dalek rakudo/nom: This mean the don't have to change the NativeCall implementation in the
16:03 dalek rakudo/nom: backends, where bool is partially supported by dynall/libffi, and size_t
16:03 dalek rakudo/nom: is not. This makes the test pass in t/04-nativecall/02-simple-args.t and
16:03 dalek rakudo/nom: will hopefully aid DBDish::Oracle.
16:03 dalek rakudo/nom: review:
16:03 ZoffixW m: my @a = ^3; my $a = |^3; my $b = ^3; say [ @a.WHAT, $a.WHAT, $b.WHAT ]
16:03 camelia rakudo-moar a860e8: OUTPUT«[(Array) (Slip) (Range)]␤»
16:03 ZoffixW 0.o
16:04 dalek doc: d8f36f3 | (Steve Mynott)++ | bin/p6doc-index:
16:04 dalek doc: fix p6doc CLI index generation
16:04 dalek doc: review:
16:04 dalek doc: ec2d529 | (Steve Mynott)++ | bin/p6doc:
16:04 dalek doc: use EVALFILE not EVAL
16:04 dalek doc: review:
16:04 FROGGS .tell abraxxa please see
16:04 yoleaux FROGGS: I'll pass your message to abraxxa.
16:04 loren ZoffixW, i misunderstand it ..
16:04 loren ZoffixW, sorry to everyone ..
16:04 ZoffixW m: my @one = 1, 2, 3; my $clone = @one.clone; say [ @one.WHAT, $clone.WHAT]
16:04 camelia rakudo-moar a860e8: OUTPUT«[(Array) (Array)]␤»
16:04 * RabidGravy rebuilds rakudo *again* (third time today,)
16:04 rindolf _nadim: thanks! Let me see.
16:05 ZoffixW m: my @one = 1, 2, 3; my $clone = @one.clone; say [ @one.WHICH, $clone.WHICH]
16:05 camelia rakudo-moar a860e8: OUTPUT«[Array|70161760 Array|70161824]␤»
16:05 RabidGravy lorra, lorra modules to check in the next day or so
16:05 dalek ecosystem: fc09664 | thundergnat++ | META.list:
16:05 dalek ecosystem: Regularize my modules to META6.json format
16:05 dalek ecosystem: review:
16:05 ZoffixW "lorra"?
16:06 ZoffixW m: my @a = ^3; my $a = [ ^3 ]; say [ @a, $a ]
16:06 camelia rakudo-moar a860e8: OUTPUT«[[0 1 2] [0 1 2]]␤»
16:07 * ZoffixW still doesn't get what a "container" is
16:07 stmuk its like a beer can and beer
16:08 jnthn On latest, I get "Unknown type 'size_t' used for native call"
16:08 jnthn I thought I had latest of all the things...
16:08 rindolf _nadim: still fails here -
16:08 ZoffixW @a = ^3; my $a = [ ^3 ]; say [ @a, $a ]
16:09 FROGGS jnthn: I just fixed it
16:09 RabidGravy ZoffixW, I think it's google "Cilla Black lorra"
16:09 jnthn FROGGS: ok :)
16:09 FROGGS jnthn: like, six minutes ago :o)
16:09 ZoffixW m: my @a = ^3; my $a = [ ^3 ]; my @b = $a; say [ @a, $a, @b, @a.WHICH, $a.WHICH, @b.WHICH ]
16:09 camelia rakudo-moar a860e8: OUTPUT«[[0 1 2] [0 1 2] [[0 1 2]] Array|79373904 Array|79373968 Array|79374032]␤»
16:09 RabidGravy it's a, er, cultural thing
16:09 ZoffixW lol
16:09 jnthn FROGGS: Ah, OK. :)
16:09 * jnthn proceeds to spectest his change :)
16:09 loren $a is like a pointer, @a is a container ?
16:10 moritz @a is a compound type, $a is Scalar container
16:10 ZoffixW So @a is not even a container at all?
16:10 stmuk are these "[DISLOCATED MESSAGE]" intended to remain user faceing or are they internal debugging messages?
16:10 loren What is a scalar container ....
16:11 ZoffixW loren,
16:11 * ZoffixW re-reads that too
16:11 lizmat stmuk: they are bugs, afaik
16:12 loren ZoffixW, thanks
16:12 lustlife joined #perl6
16:12 moritz loren: it's a thing to hold another thing :-)
16:12 lizmat stmuk: as in: they shouldn't happen
16:12 loren moritz, -_-..
16:13 loren moritz, let me read document ..
16:14 loren Usually called a container, it's also be a pointer ..
16:16 FROGGS loren: a pointer is just one way to do it
16:18 lucasb m: say (while $++ < 3 { 42 })
16:18 camelia rakudo-moar 29723e: OUTPUT«(42 42 42)␤»
16:18 loren FROGGS, em, so it does.
16:18 lucasb m: say (repeat while $++ < 3 { 42 })
16:18 camelia rakudo-moar 29723e: OUTPUT«3␤»
16:19 lucasb m: say (repeat while $++ < 3 { 1+2 })
16:19 camelia rakudo-moar 29723e: OUTPUT«sub infix:«<» (Mu $?, Mu $?) { #`(Sub+{<anon|67987232>}|50361816) ... }␤»
16:20 ZoffixW 0.o
16:20 dalek rakudo/nom: d995c87 | coke++ | tools/build/
16:20 dalek rakudo/nom: Update language version in prep for Christmas.
16:20 dalek rakudo/nom: review:
16:21 stmuk wooo
16:21 vv3 joined #perl6
16:22 virtualsue joined #perl6
16:22 RabidGravy grooviness
16:23 abraxxa FROGGS: re
16:23 yoleaux 16:04Z <FROGGS> abraxxa: please see
16:25 lucasb m: say ({ 42 } while $++ < 3)
16:25 camelia rakudo-moar 29723e: OUTPUT«===SORRY!===␤Cannot find method 'CURSOR'␤»
16:26 timotimo m: my &metaassign = -> Mu \a, Mu \b { &[+]( (if a.DEFINITE { a } else { &[+]() }), b ) }; my $i = 0; metaassign($i, 1); say $i
16:26 camelia rakudo-moar 29723e: OUTPUT«0␤»
16:26 timotimo m: my &metaassign = -> Mu \a, Mu \b { a = &[+]((if a.DEFINITE { a } else { &[+]() }), b ) }; my $i = 0; metaassign($i, 1); say $i
16:26 camelia rakudo-moar 29723e: OUTPUT«1␤»
16:26 timotimo m: my &metaassign = -> Mu \a, Mu \b { a = &[+]((a.DEFINITE ?? a !! &[+]() ), b ) }; my $i = 0; metaassign($i, 1); say $i
16:26 camelia rakudo-moar 29723e: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/YXMmas40fS:1␤␤»
16:26 FROGGS lucasb: nice one
16:26 lucasb FROGGS: :)
16:26 timotimo ^- jnthn can i have a helping hand with this? i have no clue why it breaks :(
16:28 abraxxa why does rakudobrew build panda now by default?
16:28 nanis joined #perl6
16:29 andreoss m: say(while $++ < 3 { LAST { $-- } })
16:29 camelia rakudo-moar 29723e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YaLg3u3xLH␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/YaLg3u3xLH:1␤------> 3say(while 7⏏5$++ < 3 { LAST { $-- } })␤»
16:29 andreoss m: say(do while $++ < 3 { LAST { $-- } })
16:29 camelia rakudo-moar 29723e: OUTPUT«(Nil Nil Nil)␤»
16:30 jnthn timotimo: Did you manage to golf it down any?
16:31 nanis Just built 2015.11-750-ga860e8f with MS VS2015. When running `nmake test`, one test fails:
16:31 nanis t\04-nativecall\02-simple-args.t with "Unknown type 'size_t' used for native call in method setup at D:\Src\rakudo\lib\NativeCall.pm6:223 in method CALL-ME at D:\Src\rakudo\lib\NativeCall.pm6:234 in block <unit> at t\04-nativecall\02-simple-args.t:66
16:31 hoelzro o/ #perl6
16:31 nanis Where are the known types deduced?
16:32 abraxxa nanis: does your build include ?
16:33 nanis abraxxa I'll check, but FYI perl6::build-date=2015-12-23T16:05:07Z and I did a fresh clone, and nuked the install directory before building.
16:33 abraxxa nanis: i'm just building nom because of that, you can wait for my tests if you want\
16:33 timotimo jnthn: that was already a single golf step ... maybe i can make it even better
16:34 timotimo m: my $i = 0; $i = &[+](($i.DEFINITE ?? $i !! &[+]() ), 1 ) };
16:34 camelia rakudo-moar d995c8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/K1lpf8L_zI␤Unexpected closing bracket␤at /tmp/K1lpf8L_zI:1␤------> 3[+](($i.DEFINITE ?? $i !! &[+]() ), 1 ) 7⏏5};␤»
16:34 timotimo m: my $i = 0; $i = &[+](($i.DEFINITE ?? $i !! &[+]() ), 1 );
16:34 camelia rakudo-moar d995c8: ( no output )
16:34 timotimo m: my $i = 0; my \a := $i; a = &[+]((a.DEFINITE ?? a !! &[+]() ), 1 );
16:34 camelia rakudo-moar d995c8: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/fa4EHYYBqk:1␤␤»
16:34 timotimo m: my $i = 0; my \a := $i; a = 2;
16:34 camelia rakudo-moar d995c8: ( no output )
16:34 nanis abbraxxa: Good call. I missed that commit by a few mintues. I just wanted to see if things would build with VS 2015, and they did.
16:34 timotimo m: my $i = 0; my \a := $i; a = a + 1;
16:34 camelia rakudo-moar d995c8: ( no output )
16:35 timotimo m: my $i = 0; my \a := $i; a = (True ?? a !! 2) + 1;
16:35 camelia rakudo-moar d995c8: ( no output )
16:35 abraxxa FROGGS: i've built nom twice and every time on perl6 -V I get Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp' (from 'src/Perl6/Pod.nqp')
16:35 timotimo m: my $i = 0; my \a := $i; a = (a.DEFINITE ?? a !! 2) + 1;
16:35 camelia rakudo-moar d995c8: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/Bo5OlxBTiW:1␤␤»
16:35 stmuk abraxxa: it doesn't but it reinstalls modules previousily installed
16:35 timotimo jnthn: is that weird enough for you? :D
16:35 abraxxa stmuk: ah, great!
16:35 timotimo m: my $i = 0; my \a := $i; a = 2 + 1;
16:35 camelia rakudo-moar d995c8: ( no output )
16:35 timotimo m: my $i = 0; my \a := $i; say a.DEFINITE;
16:35 camelia rakudo-moar d995c8: OUTPUT«True␤»
16:35 abraxxa i nuked it on the second attemplt but still this error
16:35 timotimo m: my $i = 0; my \a := $i; say a.DEFINITE; a = 5;
16:35 camelia rakudo-moar d995c8: OUTPUT«True␤Cannot modify an immutable Int␤  in block <unit> at /tmp/mhZiivNy9a:1␤␤»
16:35 timotimo m: my $i = 0; my \a := $i; a = 5;
16:35 camelia rakudo-moar d995c8: ( no output )
16:35 timotimo okay, that's really a little bit weird.
16:36 timotimo just calling .DEFINITE on it makes it unassignable?
16:36 timotimo hm. perhaps i see the error
16:36 nanis Thanks everyone, and good luck. Looking forward to Christmas. Bye.
16:37 abraxxa maybe because I run rakudobrew in a nom checkout?
16:38 timotimo um... am i seeing this right?
16:38 abraxxa yes, that was the problem
16:38 timotimo no, i wasn't
16:38 jnthn timotimo: Yes, that's odd
16:39 jnthn m: my $i = 0; my \a := $i; a = a + 1;
16:39 camelia rakudo-moar d995c8: ( no output )
16:39 jnthn m: my $i = 0; my \a := $i; a = (a.DEFINITE ?? a !! a) + 1;
16:39 camelia rakudo-moar d995c8: OUTPUT«Cannot modify an immutable Int␤  in block <unit> at /tmp/gHAFTGeyl9:1␤␤»
16:39 abraxxa FROGGS: same error
16:39 jnthn m: my $i = 0; my \a := $i; a = (a ?? a !! a) + 1;
16:39 camelia rakudo-moar d995c8: ( no output )
16:39 timotimo jnthn: i expect it's because the p6definite code deconts over the register that the result is in
16:39 jnthn timotimo: Yes, that's what I'm suspecting
16:39 jnthn That's naughty.
16:40 jnthn And wants fixing
16:40 dalek rakudo/nom: bcf63ef | jnthn++ | src/core/
16:40 dalek rakudo/nom: Promise.[anyof|allof] no longer break.
16:40 dalek rakudo/nom:
16:40 dalek rakudo/nom: They now only care about promises completing *somehow* rather than
16:40 dalek rakudo/nom: about the nature of that completion. For `anyof` you'll be doing some
16:40 dalek rakudo/nom: follow-up work to get a result anyway, and when you care about getting
16:40 dalek rakudo/nom: all of a set of results, you just use `await` with a list of promises.
16:40 dalek rakudo/nom: This makes anyof/allof a little easier to work with for their common
16:40 dalek rakudo/nom: uses, which is waiting until one/all of a set of things have taken
16:40 timotimo it is, eh? but why does that influence what a is after the fact?
16:40 dalek rakudo/nom: place, when you'll then go on to be interested in them individually.
16:40 dalek rakudo/nom: review:
16:40 jnthn timotimo: 'cus a is lowered to a local
16:40 timotimo oh, damn.
16:40 jnthn I'll have a look at it now
16:40 timotimo that'd be it, then.
16:40 timotimo oh, you will?
16:40 timotimo neat :)
16:41 hankache what's up everybody
16:41 timotimo i'll rewrite the piece of the optimizer that triggers on METAOP_ASSIGN and the METAOP_ASSIGN implementation to be ready when you are done :)
16:41 * TimToady is up
16:41 yoleaux 15:54Z <jnthn> TimToady: See you fixed things up by now; I'd actually implemented Seq.from-loop while doing GLR prototyping
16:41 yoleaux 15:55Z <jnthn> TimToady: So we'd thunk the various bits of the condition. But, so long as we get the semantics right for now, can do it that way :)
16:41 timotimo welcome back, TimToady
16:41 RabidGravy joined #perl6
16:41 RabidGravy ooh
16:42 timotimo hey gravy
16:42 RabidGravy Rarr!
16:42 FROGGS abraxxa: what error exactly?
16:43 FROGGS abraxxa: ahh, so you're still not able to build rakudo?
16:43 dalek roast: d1fe0c9 | jnthn++ | S17-promise/a (2 files):
16:43 dalek roast: Chase anyof/allof semantic changes.
16:43 dalek roast: review:
16:44 abraxxa FROGGS: sorry, my fault, hadn't commented out my size_t constant definition
16:44 mohae joined #perl6
16:45 abraxxa as a type check become more strict? I'm getting a failure which I hadn't before
16:45 abraxxa Type check failed in assignment to $col_namep; expected NativeCall::Types::CArray[NativeCall::Types::CArray[int8]] but got NativeCall::Types::CArray[NativeCall::Types::CArray[int8]].new
16:45 abraxxa in block  at /home/ahartmai/perl6/git/DBIish/lib/DBDish/Oracle/StatementHandle.pm6:494
16:45 abraxxa the line in question is: my CArray[CArray[int8]] $col_namep .= new;
16:47 timotimo abraxxa: maybe it's not able to .new a nested CArray properly?
16:47 jnthn timotimo: Building a patch now.
16:47 RabidGravy tthis may be a bug abraxxa
16:47 abraxxa timotimo: worked with 2015.11
16:47 timotimo huh.
16:48 lucasb TimToady: when you have time, can you look at the 'while', 'repeat while' and 'loop' list comprehensions in the backlog? thanks
16:49 jnthn timotimo: Yeah, it was that decont screwup
16:50 flussence mornin', #perl6
16:50 jnthn FROGGS: Confirm 02-simple-args.t fixed on latest \o/
16:50 ZoffixW \o
16:50 FROGGS \o/
16:50 jnthn timotimo: Can you add a regression test of the cut-down example once I push the patch?
16:50 FROGGS hi ZoffixW
16:50 timotimo jnthn: i feel silly now that it only took like a minute to pinpoint the problem after i started bothering you; i could totally have done that on my own
16:50 mohae joined #perl6
16:50 timotimo surely can! are regression tests without a RT number okay, though? :P
16:51 jnthn Sure :)
16:51 dalek rakudo/nom: 86c1009 | jnthn++ | src/vm/moar/Perl6/Ops.nqp:
16:51 dalek rakudo/nom: Fix p6definite code-gen bug found by timotimo++.
16:51 dalek rakudo/nom: review:
16:51 FROGGS lucasb: can you rakudobug the one-liner you posted?
16:51 jnthn Didn't spectest yolo
16:51 jnthn (passes make test though)
16:51 FROGGS hehe
16:52 timotimo does make test even have DEFINITE in it? :)
16:52 jnthn Will see if I can fix something else to get two patches for my spectest time :)
16:52 jnthn I'm not definite it does...
16:52 jnthn I checked it fixed your thing though :)
16:53 lucasb FROGGS: I'm shy to write emails to rakudobug :) But TimToady will see the backlog later...
16:53 nine jnthn: easy! Fix run_alt and become the hero of a generation! Oh already are
16:54 FROGGS lucasb: just write your one-liner and the output to, you dont have to add anything to that message :o)
16:54 * TimToady will certainly see the backlog, but must reserve time today to write advent post, so no promises on fixing
16:54 FROGGS TimToady: I've got a patch already I think
16:54 TimToady ooh, and I don't even know what the bug is yet :)
16:55 FROGGS m: say ({ 42 } while $++ < 3)
16:55 camelia rakudo-moar bcf63e: OUTPUT«===SORRY!===␤Cannot find method 'CURSOR'␤»
16:55 FROGGS just a one-line patch also
16:55 TimToady heh, ok
16:55 lucasb m: say (while $++ < 3 { FIRST { 42 } })
16:55 camelia rakudo-moar bcf63e: OUTPUT«===SORRY!===␤Cannot find method 'CURSOR'␤»
16:56 lucasb idk how these list comprehensions are supposed to deal with loop phasers...
16:57 lucasb idk FIRST, LAST, etc. is called a loop phasers, however :)
16:57 TimToady well, it's still in a loop, just a different kind of loop (for now)
16:58 jnthn nine: What's the easiest known reproduction of alt_nfa?
16:58 TimToady we might have an extra level of {} snuck in there to mess up things like FIRST
16:58 dalek roast: 795db8d | timotimo++ | S12-introspection/definite.t:
16:58 dalek roast: regression test for DEFINITE code gen bug
16:58 dalek roast:
16:58 dalek roast: where a decont was accidentally clobbering the local
16:58 dalek roast: register that contained a variable that we wanted
16:58 dalek roast: to write to later.
16:58 dalek roast: review:
16:59 Deepak_ joined #perl6
17:00 nine jnthn: mid November. But it can easily be much older than that. The bisect stopped at a totally unrelated commit
17:00 uruwi Anyone know why this is segfaulting?
17:00 uruwi If you ask, then I'm willing to give read access to the full repository.
17:01 uruwi (line 58 in the paste)
17:02 mohae joined #perl6
17:02 nine jnthn the information I've gathered so far points at a precomp related corruption of an NQP meta model cache
17:04 jnthn nine: Yeah, sounds like...
17:04 jnthn Or sounds like a reasonable hypothesis. I've no idea how it could be happening.
17:05 jnthn Is there a reliable way I can reproduce it?
17:06 dalek roast: 60d1ad6 | timotimo++ | S03-operators/assign.t:
17:06 dalek roast: test that += on a Failure dies
17:06 dalek roast: review:
17:07 dalek rakudo/nom: 587a801 | timotimo++ | src/ (2 files):
17:07 dalek rakudo/nom: Optimize METAOP_ASSIGN again
17:07 dalek rakudo/nom: review:
17:07 tipdbmp joined #perl6
17:08 uruwi Anyone know why this is segfaulting?
17:08 jnthn uruwi: Not from just looking at the code, now...
17:08 jnthn *no
17:09 Begi joined #perl6
17:09 uruwi Do you want to try running it yourself?
17:09 uruwi (the full program I mean, not just that file)
17:09 jnthn Given it has a mass of dependencies, not especially...
17:10 RabidGravy uruwi, or just make the smallest possible example that still segfaults
17:10 jnthn If you can run it under one of perl6-gdb or perl6-valgrind it may produce something I can make a good guess from.
17:11 uruwi perl6-gdb-m output
17:12 uruwi The error message refers to some file or directory not exiting
17:12 lucasb is the locale set to japanese?
17:12 uruwi * existing
17:12 uruwi Yes
17:12 Skarsnik Let's see if panda work now ~~
17:12 jnthn uruwi: can you type "bt" and press enter and see if it produces any more output?
17:13 lichtkind is 25 dez still standing as date?
17:13 uruwi
17:13 timotimo jnthn: probably b0rked output thanks to the jit :)
17:13 timotimo oh, look, it's the mutex destruction bug
17:13 timotimo didn't we put in a workaround for that, though?
17:15 jnthn Yeah, it's the free of a held mutex one :(
17:15 jnthn Not sure if we did nor not
17:15 jnthn *or
17:16 uruwi Link to somewhere mentioning it?
17:16 mohae joined #perl6
17:19 jnthn nine: I tried the catdir thing in and couldn't reproduce the run_alt thing
17:19 abraxxa RabidGravy, timotimo: can someone confirm that this is a bug?
17:19 jnthn uruwi: It's been discussed a bit on #moarvm
17:21 muraiki joined #perl6
17:21 Skarsnik panda still can't find shell::comand, it does not get installled ><
17:21 RabidGravy abraxxa, it's a regression related to precomp can't reproduce without putting code in a module, don't know if it's RTd
17:22 abraxxa RabidGravy: should I open an RT for it?
17:22 timotimo abraxxa: sorry, what now?
17:22 timotimo oh, the CArray[CArray[...]] thing?
17:22 abraxxa timotimo: yes
17:22 abraxxa i don't find a test for that
17:22 timotimo seems buggy, yeah. are you interested in bisecting rakudo to figure out where it started happening?
17:23 abraxxa is it even NativeCall specific of all nested Types?
17:23 abraxxa m: my Array[Array[Str]] $foo .= new;
17:23 camelia rakudo-moar 587a80: ( no output )
17:23 abraxxa m: use NativeCall; my CArray[CArray[int8]] $foo .= new;
17:23 camelia rakudo-moar 587a80: ( no output )
17:24 RabidGravy timotimo, abraxxa 's example overcomplicates it,   in a precomped module a typeconstraint with a typed CArray fails
17:24 RabidGravy it didn't used to
17:24 Skarsnik duh
17:24 timotimo "in a precompiled module" ;_;
17:25 RabidGravy i.e
17:25 abraxxa add precompilation so close to the release isn't a wise decision imho as it's not changing the API but an optimization only that can be added later
17:26 timotimo it changed a lot of api, actually
17:26 RabidGravy m: use NativeCall; sub foo() returns CArray[iuint8] { return CArray[uint8].new }; say foo()
17:26 jnthn Indeed.
17:26 camelia rakudo-moar 587a80: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1r8O6do6Nb␤An exception occurred while parameterizing CArray␤at /tmp/1r8O6do6Nb:1␤Exception details:␤  5===SORRY!5=== Error while compiling ␤  Cannot invoke this object␤  at :␤»
17:26 timotimo well, it was part of the whole curli refactor which changed a lot of api
17:26 Skarsnik gah now shell::command is installed but not precompiled and panda still does not find it ><
17:26 perlpilot abraxxa:  +1  (and all of the .precomp dirs littered everywhere)
17:26 RabidGravy m: use NativeCall; sub foo() returns CArray[uint8] { return CArray[uint8].new }; say foo()
17:26 camelia rakudo-moar 587a80: OUTPUT«NativeCall::Types::CArray[uint8].new␤»
17:26 timotimo in theory, we could release a rakudo completely without precompilation
17:26 abraxxa timotimo: even worse!
17:27 RabidGravy that fails if it's in a module that has been precompiled
17:27 boegel joined #perl6
17:27 abraxxa did 2015.11 have precomp? I've never seen the .precomp dirs before
17:28 jnthn Precomp has been around for ages
17:28 abraxxa i've removed the .= new; as a workaround
17:28 jnthn But was handled at install time
17:28 jnthn By Panda
17:28 abraxxa i see
17:28 jnthn More recently it's been moved in Rakudo and made a bunch more robust
17:28 abraxxa that will root installed, non precompiled code fail
17:29 abraxxa WTF
17:29 abraxxa Type check failed in assignment to $col_namep; expected NativeCall::Types::CArray[NativeCall::Types::CArray[int8]] but got Array
17:29 Skarsnik it's normal that install/share/perl6/site/lib/ is not in where panda search module?
17:29 jnthn Yes, of course it would have been nice if we'd had precomp stuff in Rakudo landed earlier.
17:29 Skarsnik You need the .= new sadly
17:30 RabidGravy yeah, it was at least 14 days ago
17:30 jnthn But that's not really how things work.
17:30 mohae joined #perl6
17:30 timotimo dinner time \o/
17:30 jnthn We make the best effort we can with the limited resource we have.
17:31 abraxxa it's the only point where I need a pointer to a pointer
17:31 RabidGravy exactly
17:31 * [Coke] sees catdir in backscroll and reads catbug
17:31 dalek rakudo/nom: 82e6ca2 | jnthn++ | src/Perl6/Grammar.nqp:
17:31 dalek rakudo/nom: Fix errors on unknown symbols in constants, enums.
17:31 dalek rakudo/nom:
17:31 dalek rakudo/nom: Rids us of a copule of cases of "Cannot invoke this object".
17:31 dalek rakudo/nom: review:
17:31 flussence .oO( nobody from outside showed up for the beta release, so we're tricking them into beta-testing now :)
17:32 RabidGravy well even if more people here had made more effort to keep up
17:32 dalek roast: a4ace08 | jnthn++ | S32-exceptions/misc.t:
17:32 dalek roast: Tests for RT #126987.
17:32 dalek roast: review:
17:32 Skarsnik who/what could I blame? I did rakudobrew nuke && rakudobrew build moar. panda does not work. I even rerun the
17:37 * moritz sighs. Not again, this close before the release
17:38 dalek ecosystem: 859d327 | PerlJam++ | META.list:
17:38 dalek ecosystem: Add Test::Class
17:38 dalek ecosystem: review:
17:38 Skarsnik let's try on e anew user
17:39 mohae joined #perl6
17:42 leedo fails here as well, with a lot of EVAL is dangerous errors
17:42 leedo that is running an existing panda install, and bootstrapping
17:43 jnthn Haven't done a Panda bootstrap in quite a while in this laptop. Seems to have completed fine on Rakudo HEAD.
17:43 * Skarsnik just wanted to patch some modules and write some user code today
17:43 leedo i'll try nuking install, and redoing it
17:45 * jnthn runs panda install HTTP::UserAgent to see if he can make the run_alt thing appear that way
17:45 RabidGravy jnthn, that was "fixed"
17:46 jnthn RabidGravy: "fixed" as in "magically vanished"? :)
17:46 Skarsnik no precompil
17:46 Skarsnik in the code x)
17:46 RabidGravy no precompilation
17:46 jnthn oh
17:46 leedo nuking install seems to let panda install here :)
17:46 dalek nqp: c353663 | (Zoffix Znet)++ | README.pod:
17:46 dalek nqp: Fix 404 URLs
17:46 dalek nqp: review:
17:46 dalek nqp: a1339e2 | lizmat++ | README.pod:
17:46 dalek nqp: Merge pull request #264 from zoffixznet/fix-url
17:46 dalek nqp:
17:46 dalek nqp: Fix 404 URLs in README.pod
17:46 dalek nqp: review:
17:46 jnthn But it reliably produced the error without "no precompilation"?
17:47 Skarsnik Not cool to have essential module broken x)
17:48 RabidGravy but if you were to remove them and run the t/030-cookies.t they would reappear
17:48 jnthn OK
17:48 RabidGravy yes
17:48 jnthn Getting headachey again, so probably time to take a break for now
17:49 Skarsnik Oh I found what is wrong
17:49 RabidGravy there is an RT with a very small replication I think
17:50 nine jnthn: sorry, was on my way home
17:50 nine jnthn: run_alt has become more difficult to reproduce in the past week
17:51 mohae joined #perl6
17:51 jnthn RabidGravy: Yes, I tried the small replication and couldn't replicate it..
17:51 jnthn RabidGravy: Thus why I'm onto the larger one now
17:51 Skarsnik rakudobrew nuke did not nuke panda repository so panda did not fetch/build/install modules like Shell::Commad  did not get properly reinstalled
17:51 RabidGravy hmm
17:51 jnthn Alas, 03-cookies.t passed
17:52 RabidGravy strange
17:52 nine jnthn: yes, my checkout from Dec 13 also passes :/
17:52 Skarsnik so shell::comand did not get precompiled and the precompiled file install
17:52 jnthn nine: Aww
17:52 Skarsnik ah yes and I can't install XML ~~
17:52 Skarsnik who can merge PR in XML?
17:52 jnthn OK, time for a break. bbl
17:52 RabidGravy :)
17:53 nine Skarsnik: at this point I consider rakudobrew to be actively harmful :/
17:54 rurban joined #perl6
17:54 * flussence has always built rakudo "by hand" with a shell script that nukes everything using a «find -exec git-clean», and missed out on all this fun people seem to have with rakudobrew :(
17:54 * Skarsnik want to fork XML in perl6
17:55 lucasb for the record, I too brew my own rakudo :)
17:57 lucasb my adhoc shell script has 'rm -rf ~/.perl6' in it, and it dies if it finds PERL6LIB set in the environment
17:57 lucasb ^^ these things have made the thing sane for me
17:58 muraiki I've always used rakudobrew :(
18:01 stmuk I've found rakudobrew nuke and rm -rf ~/.perl6 fine
18:01 Skarsnik There is no way to put a p5 module in the depends in the Meta file?
18:02 flussence nope
18:02 nine Skarsnik: not yet anyway
18:02 Skarsnik I think it's something needed to at least have panda warn that something additionnal is needed ~~
18:03 nine Skarsnik: we can do better than that :)
18:03 abraxxa i'm annoyed by the breakage every time I touch rakudo especially this close to its first release, maybe I'm coming back in half a year or so
18:03 Skarsnik especially for DBIish that has not obvious library name
18:04 Skarsnik you search for a libmysql, not libmysqlclient. libpostgressql? not libpq xD
18:04 jevin joined #perl6
18:04 Skarsnik s/not/nop/
18:05 mohae joined #perl6
18:06 Skarsnik nine, depend what you can more? if you mean for p5 calling cpan.... I personnaly don't want that. I want the debian package (or build the package with dh_make) installed
18:06 Skarsnik *mean
18:08 dalek nqp: 23538e5 | (Zoffix Znet)++ | docs/ops.markdown:
18:08 dalek nqp: Add Table of Contents for easier navigation
18:08 dalek nqp: review:
18:08 dalek nqp: 9d05ece | lizmat++ | docs/ops.markdown:
18:08 dalek nqp: Merge pull request #265 from zoffixznet/ops-toc
18:08 dalek nqp:
18:08 dalek nqp: Add Table of Contents to docs/ops for easier navigation
18:08 dalek nqp: review:
18:08 nine Skarsnik: like I told AlexDaniel today: what you want is not nearly as important as what you're gonna do about it ;)
18:11 Skarsnik And now I need to edit all the NC doc because of you x)
18:13 nebuchadnezzar I read the 5to6-nutshell and I was surprise by the module import, I had the perl5 habit to always list what I'm using and with perl6 I can do it only if the module writer planned to put some tags
18:13 nebuchadnezzar it empoyer module writers and not module users :-/
18:13 lucasb nqp/ops.markdown already had a little ToC. now it has 2. maybe the earlier can be removed now?
18:14 lucasb *the earlier one
18:15 _nadim So i found time between two Christmas dishes preparation to update Rakudo (600+ commits), it broke a thing or two that were surprising but what I liked most is the speed boost. I haven't checked but Imaybe two  or three times faster. Maybe precomp has something to do with it.  Great work all of you, so far I am enjoying it more than it frustrates me.
18:15 smls joined #perl6
18:16 timotimo _nadim: it's probably a stupid performance regression i introduced in the JIT compiler that was completely killing the multi-dispatch cache
18:16 timotimo it was recently fixed, so maybe that's the difference you saw
18:16 mohae joined #perl6
18:17 dwarring joined #perl6
18:17 Juerd Feedback wanted on an idea for an "unpack" replacement.
18:17 ZoffixW joined #perl6
18:17 ZoffixW lucasb, I think it's fine to keep the old one in. I kinda see it more as a list of categories (that are also links) than necessarily a TOC
18:18 timotimo Juerd: we don't have anything that can determine the position of a named argument
18:18 Juerd timotimo: These aren't named arguments
18:18 Juerd timotimo: I'll add that
18:19 abraxxa is t/04-nativecall/06-struct.t a good place for a CArray[CArray[int8]] test?
18:19 aindilis joined #perl6
18:19 lucasb ZoffixW: ok, both can stay
18:19 nine nebuchadnezzar: yes that's one of the very few changes that I'm not comfortable with
18:19 dalek doc: 78410e8 | (Sylvain Colinet)++ | doc/Language/nativecall.pod:
18:19 dalek doc: Fix all the libfoo to foo in NativeCall documentation (thank to nine x))
18:19 dalek doc: review:
18:19 dalek doc: f23805a | (Sylvain Colinet)++ | / (19 files):
18:19 dalek doc: Merge branch 'master' of
18:19 dalek doc: review:
18:19 xtreak joined #perl6
18:19 Juerd timotimo: I've added that the signature is a mere *@foo
18:19 Skarsnik git I hate you, stop doing useless merge commit ><
18:20 El_Che that feeling when your .t is bigger than your .pm6
18:20 mst Skarsnik: rebase moar
18:20 ZoffixW :D
18:20 Juerd El_Che: Write more POD :)
18:20 ZoffixW Skarsnik, git pull --rebase  ?
18:21 mst El_Che: that's the feeling that you might -just- be approaching having written enough tests ;)
18:21 timotimo Juerd: if it's a sub, that'll throw an error, if it's a method, it'll silently swallowing the named arguments :(
18:21 El_Che mst: I ended rewriting some part of the pm for corner cases I hadn't think of
18:22 El_Che so yeah for testing
18:22 Juerd m: class X { method y (*@foo) { say +@foo } }; => 1, :pair(2), :3pair)
18:22 camelia rakudo-moar 82e6ca: OUTPUT«0␤»
18:22 Juerd Daamn
18:22 ZoffixW El_Che, I had 65 lines of tests for a single letter of code :P here
18:23 _nadim timotimo: In aby case, Great job.
18:23 Juerd timotimo: Have to wrap everything in an array then. Ugly :(
18:23 nebuchadnezzar nine: I made some tests with two modules defining a sub with same name, “use Module1” followed by “use Module2” will happily override things without any warning :-/
18:23 El_Che ZoffixW: hardcore
18:23 Juerd timotimo: Thanks for the heads up though. I was completely unaware of this.
18:23 nebuchadnezzar nine: so, if I do not take care, I can finish by using a sub from Module2 where I want the one of Module1
18:24 nebuchadnezzar s/of/from/
18:24 smls "my @i = $blob.decode(:big, uint32, uint16, uint8);"  looks pretty neat. Juerd++.
18:24 hankache yahou! That's the first time i can update rakudo without nuking everything
18:24 hankache This is Rakudo version 2015.11-756-g82e6ca2 built on MoarVM version 2015.11-113-gbd56e2e
18:24 hankache implementing Perl 6.c.
18:24 ZoffixW \o/
18:24 timotimo - here's new measurements for +=
18:24 El_Che hankache: what the fun in updating without nuking stuff?
18:25 * nine didn't have to nuke for weeks
18:25 smls 6.c has been released?
18:25 timotimo Juerd: thanks for taking the time to write up a proposal :)
18:25 hankache why does it say 6.c?
18:25 nine hankache: because we're gonna release 6.c quite soon
18:25 ZoffixW smls, no, just the version bumped
18:25 smls ok
18:26 ZoffixW hankache, preparing for release
18:26 hankache aha ok
18:26 mohae joined #perl6
18:26 smls Is there a countdown or something? :)
18:26 hankache I wouldn't want to miss it
18:26 Juerd smls: Refresh the page, it looks a little less neat now
18:26 Skarsnik Juerd, if you make this type usable with NC, you are my hero x)
18:27 Juerd Skarsnik: What do you mean by 'usable with'? Also, I'm not a C coder so probably not...
18:27 Juerd timotimo: I've updated the gist to include [] around every template
18:28 Juerd That does have the advantage of being able to use multi methods to get both .decode("utf8") and .decode([...])
18:29 smls still looks better than unpack :)
18:30 Juerd Agreed
18:30 mohae_ joined #perl6
18:30 Juerd And thanks :)
18:31 lizmat m: (^61).ACCEPTS(60.9).say   # this feels wrong
18:31 camelia rakudo-moar 82e6ca: OUTPUT«True␤»
18:31 lizmat ah, but of course, it isn't
18:32 Juerd Hi lizmat. Do you have time to look at my unpack proposal?
18:32 Skarsnik Well we need a type to catch char* from C (0 terminated) as raw data
18:32 lizmat I scanned it...
18:32 lizmat but haven't thought much about it yet
18:32 Skarsnik and not encoded in a Str
18:33 Juerd lizmat: That's okay. At least you didn't hate it then :)
18:33 Juerd Skarsnik: Blob?
18:35 flussence random thought: could we convince .{/de|en/}code('foo') to automatically use an Encode::foo module that's in-scope? would provide future expansion for string charsets as well as any other craziness people dream up.
18:36 Juerd flussence: I hope so, because I think that things like hex and binary are string encodings.
18:36 Juerd flussence: And there are more things like that, like base64...
18:36 Juerd Bit unwieldy to have those all in the mechanism for text encodings.
18:36 muraiki I missed the earlier context for the rakudobrew discussion so I don't know if this is a new thing or not, but the optimizing part of the build is failing
18:36 muraiki Stage mast       : MVM_platform_alloc_pages failed: 12
18:37 El_Che is there a difference between die die<foo>).throw and die<foo>) ? or just syntax?
18:38 stanrifkin joined #perl6
18:38 nine El_Che: if you call .throw you don't need a die
18:39 lizmat die(Exception) basically does a Exception.throw afaik
18:39 chansen_ Juerd: The syntax seems very verbose compared to the "traditional" pack/unpack template
18:40 Juerd chansen_: That is definitely true.
18:40 Juerd chansen_: Do you see this as a good thing or a bad thing?
18:40 timotimo muraiki: that looks a bit like you're running out of ram perhaps?
18:41 muraiki whoa. someone lowered the ram on my development VM to 2GB T_T
18:41 smls_ joined #perl6
18:41 abraxxa is t/04-nativecall/06-struct.t a good place for a CArray[CArray[int8]] test?
18:41 abraxxa i'm adding it to 05-arrays.t
18:41 timotimo muraiki: damn, 2gb isn't enough to build rakudo? :(
18:42 abraxxa it was on my raspberry pi
18:42 abraxxa 240mb ram + 1gb swap file
18:42 abraxxa at least 2015.09 or 10
18:42 flussence my netbook has 1GB and builds rakudo fine...
18:42 muraiki timotimo: I've got about 1.1GB free
18:42 muraiki hmm
18:43 muraiki I'm going to try again, but only building moar manually
18:45 abraxxa how to run tests in a checkout?
18:45 RabidGravy abraxxa, that sounds too specific a test, as I said earlier it's all typed CArrays yhat fail typeconstraints
18:45 abraxxa I always get Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp' (from 'src/Perl6/Pod.nqp')
18:45 chansen_ Juerd: I guess it depends who you ask! I'm used to the concise pack/unpack template, but your syntax looks very clear and extensible!
18:46 abraxxa RabidGravy: better one failing test than none
18:46 lizmat Juerd: far from it
18:46 abraxxa RabidGravy: all other CArrays work for me, only CArray[CArray
18:46 nine abraxxa: ./perl6-m instead of just perl6
18:46 RabidGravy have you got a failing example outside your code?
18:47 abraxxa nine: thanks
18:47 Juerd chansen_: Well, I was asking you. Thanks for the feedback :)
18:47 abraxxa why does the test pass?
18:48 chansen_ Juerd: Why not propose it as an alternative instead of a replacement?
18:48 RabidGravy what test?
18:48 Juerd chansen_: Because the current .unpack is very incomplete and impossible to extend while keeping backwards compatibility.
18:48 abraxxa RabidGravy: ok my CArray[CArray[int8]] $pointer-to-string .= new, 'can instantiate CArray[CArray[int8]]';
18:49 muraiki building moar on its own was ok. so I tried rakudobrew again and during the optimize stage saw my available memory rapidly declining to nothing
18:49 abraxxa yes, lets change the whole pack/unpack syntax one day before release!
18:49 Juerd chansen_: And I don't think there's anything to gain by having both, to be honest
18:49 RabidGravy as I said earlier as well it only fails in precompiled modules
18:49 abraxxa isn't there a code freeze policy?
18:49 muraiki moar was using 99.2% CPU and 59.1% memory.
18:49 Juerd abraxxa: Nope, I don't see this as an immediate change, but I do hope that pack/unpack get marked experimental
18:50 abraxxa Juerd: don't you think you're a bit late?
18:50 nine .tell jnthn fde3d620bf1b22f1b78420e1294a04c663145efe is the last commit with which I can repro run_alt. With b6f0532c2b6fcf95b65f1de63537e91821a123fd it disappeared again. Didn't have to downgrade nqp for that.
18:50 yoleaux nine: I'll pass your message to jnthn.
18:50 Juerd abraxxa: I'll let other people decide that
18:51 lizmat Juerd: ah...  eh...  hmmm...
18:51 Juerd abraxxa: I've contributed to Perl 5 long after its first release and wasn't too late :)
18:51 nine Well if our unpack sucks (and I don't remember anyone working on it in the past year), marking it experimental seems like a good idea.
18:52 flussence chansen_: besides, if we get this verbose stuff in, it'd be trivial to write a Pack::Terse (or *) module that expands the p5 notation to it
18:52 Juerd It most definitely suck. I'm glad it's there, but it's not ready for prime time.
18:52 Juerd s/suck/sucks/
18:52 RabidGravy unpack, works for me and I have made code with it
18:52 chansen_ Juerd: OK, I guess it's better with your verbose syntax that can be extended. We could release a simple wrapper module that provides the concise template API using the new syntax
18:52 chansen_ flussence: ^^
18:53 abraxxa is perl6 searching in ./lib for libs?
18:53 flussence not by default
18:53 Juerd RabidGravy: It ignores unknown characters in the template, which means it can't be extended. And it has some abstraction breakage in a*, because it deals with Str where that should be Blob.
18:53 abraxxa that was removed from Perl 5 because it's a security risk
18:53 RabidGravy but that's fine I'll just stop making modules until everything is perfect ;-p
18:53 Juerd RabidGravy: These things can't be fixed without breaking compatibility
18:53 abraxxa so why does running my rakudobrewed perl6 fail when run from a rakudo git clone then?
18:53 Juerd RabidGravy: If we mark it as experimental, we can keep the current implementation and use that until we have something better.
18:54 Juerd RabidGravy: But then at least users are warned that things will probably change.
18:54 lizmat Juerd: how does your idea conflict with pack/unpack?
18:54 abraxxa i thought the whole API was though out and discussed for FIFTEEN YEARS?
18:54 abraxxa and now unpack/pack sucks?
18:54 abraxxa who wrote the synopsis for it and who agreed that it's good?
18:54 lizmat abraxxa: it's a P5 API, really
18:55 Juerd abraxxa: pack and unpack templates aren't specced.
18:55 abraxxa lizmat: which seems to handle everything you throw at it fine
18:55 Juerd abraxxa: Even if you think Perl 5 pack/unpack templates are great and should be kept, then still the ones we have now in Perl 6 are incompatible and cannot be made compatible without breaking compatibility.
18:56 lizmat abraxxa: S32/Str:503
18:56 abraxxa so why not keep it, marks it as 'like Perl 5 to get going without learning anything new' and add something easier on the brain with a different name?
18:56 lizmat =item unpack
18:56 lizmat B<XXX To be defined>
18:56 RabidGravy I've got a working xbase implementation here, which uses unpack
18:56 abraxxa great, so someone implemented something unspeced
18:56 lizmat abraxxa: hardly 15 years of thinking and speccing
18:56 * abraxxa goes reading Python 3 docs
18:56 Juerd abraxxa: Well, I don't think anyone can actually implement a Perl5-like pack/unpack in the few days we've got left until Christmas... :)
18:56 cdg joined #perl6
18:56 flussence abraxxa: you've had 15 years to complain about it and you wait until *now*?
18:57 lizmat Juerd: I actually started on that but then the flu hit  :-(
18:57 smls_ I wouldn't mind it being marked experimental for now, like the 'is cached' trait was.
18:58 Juerd lizmat: I got struck last week. Three days in bed... And now I'm procrastinating dayjob-things because it's too much to do before I'm leaving on a christmas vacation...
18:58 lizmat Juerd: sounds familiar
18:58 lucasb I'm on a brand new rakudo and panda hangs in '==> Installing Bailador'
18:58 Juerd Heck, the whole .decode to replace .unpack proposal was pure procrastination (from sleeping, though)
18:59 chansen_ flussence++ # Nice counter comment ;o)
18:59 stmuk lucasb: I just saw that issue
19:00 muraiki I was able to make it past optimization stage in rakudobrew . it looks like about 1.1GB of memory was in use, which is about how much free memory I had on the vm where rakudobrew ran out of memory. unfortunately the build then died at with "An exception occurred while evaluating a constant"
19:00 lucasb stmuk: thanks for confirming it!
19:00 abraxxa RabidGravy: the test I wrote is ok but it fails in my code, no idea why
19:00 abraxxa m: use NativeCall; my CArray[CArray[int8]] $pointer-to-string .= new; $pointer-to-string[0] = CArray[int8].new;
19:00 camelia rakudo-moar 82e6ca: ( no output )
19:01 lizmat dinner&
19:01 smls_ Another thing that has a "very Perl 5" API, is the 'Test' module. While that good for P5->P6 newcomers now, I predict that in 10 years it will be seen as baggage in core, and will be hard to get rid of.
19:01 Juerd lizmat: Eet smakelijk
19:01 chansen_ When is it Christmas according to Rakudo/MoarVM developers? I celebrate Christmas on the 24th, do I get my Christmas present? ;o)
19:02 Juerd smls_: That's okay. Test::More moved to Test, so the next thing can be called Test::More again ;)
19:02 smls_ heh ;)
19:02 muraiki chansen_: Orthodox Old Calendar Christmas, Jan 7
19:02 muraiki chansen_: just kidding :)
19:02 muraiki but yeah, if you guys need some extra days, there's always the old calendar
19:02 chansen_ muraiki: Bah, Julian calendar! ;)
19:03 stmuk its probably 25th CLT (Cola Late Time)
19:03 Skarsnik quick survey. what is the version of your libmysqclient on your system? (the for example)
19:03 stmuk 11:59 "just one leetle more commit"
19:03 lucasb another thing I hit is when trying to install 007: 'Could not find _007::Runtime::Builtins in ...'
19:04 abraxxa Skarsnik: how can i determine the version? just by looking at the filename?
19:04 nine Skarsnik: 18
19:05 Skarsnik abraxxa, yes, that how it's should work. (on unix) so.major.minor.subminor.areyoucrazy?
19:05 virtualsue joined #perl6
19:06 smls_ Skarsnik: /usr/lib/
19:06 smls_ though that's actually MariaDB
19:06 abraxxa it seems Ubuntu mysql-client package nor its dependencies contain that lib
19:07 Skarsnik it's libmysqlclient
19:07 Skarsnik that has nothing to do with mysql-client actually
19:07 Skarsnik I think?
19:07 abraxxa a client that doesn require its client library, yeah looks like mysql
19:08 abraxxa there is no package named like that
19:08 abraxxa it's called libmysqlclient18 which should answer your question without installing
19:09 abraxxa i still don't get it why the nested CArray stuff only fails in DBDish Oracle
19:09 TimToady well, after all that agonizing, my advent entry for the 24th just kinda wrote itself in an hour :)
19:10 abraxxa TimToady: did you delay the release until a code freeze period was established and bugs fixed in a not-overhastly manner?
19:10 RabidGravy abraxxa, I think you will find that if you put "no precompilation;" in the top of the file that *does* fail then it will work again
19:11 abraxxa RabidGravy: does the test not use precompilation?
19:11 RabidGravy not a script, no
19:11 Skarsnik it's just mysql found interesting to not follow a major abi version so I am not sure putting mysqlclient, v18 in DBIis is a good idea, since the v16 is not that old
19:12 Skarsnik and I am pretty sure the C api is exactly the same
19:12 * araujo checks after a long while .... nice redesign!
19:12 abraxxa RabidGravy: so precompilation doesn't get tested although it's on by default for production code?
19:12 RabidGravy only for modules
19:13 * abraxxa finds that troubling
19:13 abraxxa can it be tested?
19:13 TimToady it's tested when you run Test :)
19:14 hankache :)
19:14 zengargoylew joined #perl6
19:14 abraxxa which doesn't use NativeCall an nested vars
19:14 muraiki ok, after `rakudobrew nuke moar`, building did not result in the exception I previously saw in it build successfully, yay!
19:14 hankache congrats muraiki
19:15 muraiki now I feel too tired to do anything with it though. heh
19:15 muraiki (not because of these problems, just in general)
19:15 muraiki I think it's time for caffeine
19:15 timotimo christmas tires you out, doesn't it ...
19:15 abraxxa there seems to be no 'use precompilation;'
19:16 timotimo yeah, because that's the default
19:16 abraxxa not for scripts
19:16 timotimo hm. perhaps it'd make sense to turn it on and off for individual statements
19:16 * araujo still needs to go out tomorrow and buy the Christmas food/candies
19:16 timotimo yeah, we don't precompile scripts
19:16 abraxxa and what are .t files?
19:16 abraxxa scripts!
19:16 timotimo yeah
19:16 timotimo so?
19:16 abraxxa i can't write a failing test case
19:16 Skarsnik you need to put the no precompilation in your module file
19:16 timotimo of course you can
19:16 abraxxa i could be moving it into a module
19:16 nine abraxxa: test scripts use quite a few modules
19:16 timotimo you can "use" the test code from your ... yeah
19:17 abraxxa so every t file should be duplicated in a module so it gets tested with and without precomp
19:17 timotimo perhaps we can build a second test runner that just pretends every test file is a module and uses it
19:17 RabidGravy yeah, if the failure is in a module put the code in a module
19:17 stmuk hmm Bailador freezes at the install stage even without using rakudobrew
19:17 abraxxa Skarsnik: the other way round, I want precompilation to get used and show the failure
19:17 nine timotimo: I do wonder wether we could actually precompile scriptes
19:17 timotimo nine: we can, but you'll have to run it with -e ''
19:17 Skarsnik for installed App probably
19:18 RabidGravy abraxxa, fwiw I can't find any way to get the failure in or out of a module
19:18 abraxxa i find it just too brittle as it is now because most of the tests are in scripts and so don't get precompiled
19:18 abraxxa RabidGravy: interesting
19:19 RabidGravy it's very possibly some other set of circumstances that aren't immediately obvious
19:19 rickbike joined #perl6
19:19 Skarsnik could be because the module is loaded with require and not use?
19:20 abraxxa Skarsnik: need DBDish::Oracle::StatementHandle;
19:20 nine Skarsnik: no, both do precompile
19:21 Skarsnik yes but DBIish will require it later x)
19:21 Skarsnik in DBDIsh install_driver
19:21 Skarsnik is there a way to have Test display the type of stuff in got/expected?
19:22 Skarsnik or does is just call .gist?
19:22 abraxxa Skarsnik: maybe we should improve is-deeply
19:22 Skarsnik is-deeply is eqv
19:22 abraxxa as it's output is for human and we don't touch the Test API it shouldn't have negative effects
19:23 abraxxa does this help?
19:24 nine RabidGravy: do we want to keep resources a hash with keys like 'libraries/p5helper' and 'images/foo.png' or do we want to follow the spec that would make it nested like $*RESOURCES<libraries><p5helper>?
19:24 nine lizmat: ^^^
19:24 stmuk oh it does successfully install Bailador but take ages
19:24 nine I'm trying to implement the spec right now, but it makes everything more complicated and I don't know if it actually helps with anything
19:25 Skarsnik Remove Bailador from star and put xml x)
19:25 nine Except... / is a platform dependent thing :/
19:25 Skarsnik for path
19:25 Skarsnik keep the /
19:26 Skarsnik and have stuff that work with it, convert it at the end
19:26 stmuk I liked the API of the p6 XML module -- which is rare for me and XML libraries
19:26 RabidGravy nine, I'm cool either way, spec if you can other if you can't
19:26 Skarsnik I don't like it because I think it leak x)
19:27 hankache lazy list is .. or ...
19:27 hankache ?
19:27 RabidGravy er
19:27 RabidGravy .. is a Range, ... isn't
19:29 RabidGravy e.g
19:30 lizmat nine: yeah, so making it in the hash, would take the platform dependency away
19:30 Skarsnik m: my $a = 4.4e0; say $a.perl; say $a.Str;
19:30 camelia rakudo-moar 82e6ca: OUTPUT«4.4e0␤4.4␤»
19:30 dalek tablets: 45e82d3 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
19:30 dalek tablets: set op table completed
19:30 dalek tablets: review:
19:30 timotimo i don't think there's a problem with just letting the hash key on paths that always have /
19:30 RabidGravy m: say ( 1 .. 2 ).WHAT; say ( 1 ... 2).WHAT;
19:30 camelia rakudo-moar 82e6ca: OUTPUT«(Range)␤(Seq)␤»
19:30 abraxxa RabidGravy: i'm compiling moar again, maybe some later commit already fixed my issue
19:30 nine lizmat: OTOH we could declare the / to be logical, split the path on / and let the excellent IO::Path do the joining
19:31 lizmat timotimo: well, that was the essence of the newio branch, but that didn't make it
19:31 timotimo yeah :(
19:32 flussence .oO( let's use UNC paths on windows, then we can have / everywhere! )
19:32 lizmat but under pressure, everyting becomes fluid
19:32 abraxxa which is then incompressible ;)
19:32 lizmat so nine: if you think it is over enginieerd, then we'll skip
19:32 abraxxa nope, still fails
19:32 nine lizmat: that way, resources in the META6.json would always be an array, its members either strings or hashes for files with special attributes. With the nested structure, it's always hard to know what a hash means (directory or special file)
19:33 Skarsnik my panda is super slow :(
19:33 lizmat nine: fine by me... :-)
19:33 abraxxa Skarsnik: did you feed him too much?
19:33 stmuk hahaha
19:33 nine lizmat: well I do like the ideas and the $*RESOURCES<libraries><p5helper> interface. It's just that implementing it feels like walking uphill through mud :)
19:33 stmuk panda seems slow on DBIish and Bailidor
19:33 lizmat well, that's us core devs being tortured for the greater good
19:34 nine lizmat: it may also just be exhaustion and stress caused by the relentles release count down
19:35 abraxxa what does this mean? Cannot find method 'CALL-ME'
19:35 abraxxa at gen/moar/m-BOOTSTRAP.nqp:2854  (/home/ahartmai/.rakudobrew/moar-nom/install/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::76)
19:35 hankache we do have a countdown?
19:35 hankache where?
19:35 hankache when?
19:35 hankache how?
19:35 nine hankache: in my head ;)
19:35 japhb nine: Not relentless.  It will relent for you as a Christmas present.
19:35 japhb hankache: You could consider the advent to be our countdown
19:36 mst nine:
19:36 abraxxa never mind, typo
19:36 hankache nine: my @brain = @nine-brain.clone ;)
19:36 nine Oh and there's my girlfriend coming home in about an hour and I promised her to actually spend time with her this evening
19:36 Skarsnik lol
19:36 El_Che nine: you lier!
19:37 El_Che -a
19:37 mst this is why you need more than one; then you tell them all you're seeing a different one that night, and spend the time hacking instead
19:37 lizmat nine: could you point me to where you are working on this ?
19:37 Skarsnik Oh great
19:38 Skarsnik everything that use Str given by a NC routine will leak
19:38 japhb mst: That logic is so twisted it got knotted
19:38 timotimo Skarsnik: does "explicitly manage" help?
19:38 leont japhb: don't get him started on knots ;-)
19:38 japhb Point taken
19:38 mst japhb: there's an old joke about that being why mathematicians tend to have a wife -and- a mistress
19:38 Skarsnik There are explicitly managed and should not
19:38 Skarsnik *They
19:39 mst I just sort of reworked it for the oddities of my life ;)
19:39 japhb heh
19:39 abraxxa timotimo: isn't that the source of the leak? because it tells Perl to leave it alone in regards to gc?
19:39 nine lizmat: well with that decision out of the way it should actually be a little patch to Panda::Installer::install for detecting paths beginning with 'libraries/' and applying $*VM.platform-library-name and a similar patch to CompUnit::Repository::FileSystem::resource
19:40 timotimo not actually sure
19:41 hankache a lazy lisy is a (Seq) or a (List) ?
19:41 hankache s/lisy/list
19:41 timotimo Seq is an iterator that will not let you fetch older elements once it's iterated past them
19:41 Skarsnik timotimo, if you do a my $a = native_sub(); and the native_sub is marked as returns Str you get a explicitly-managed Str and... it's probably not a good idea
19:41 timotimo a list is one part "reified" elements, one part iterator(s)
19:43 Skarsnik and I fear a my $b = $a will clone and keep the explicitlymanaged trait
19:44 timotimo clone? why would it clone?
19:45 abraxxa a module use NativeCall; and the test script too results in P6M Merging GLOBAL symbols failed: duplicate definition of symbol NativeCall
19:45 Skarsnik lol
19:46 Skarsnik and should be the output of Test. it show the type of stuff. it's better than just .perl x)
19:48 hankache ++what Skarsnik said
19:49 labster joined #perl6
19:49 RabidGravy right now I'm not feeling confident that I will be able to get a release standard rakudo built *and* test all my modules tomorrow
19:49 abraxxa +1
19:49 abraxxa and I only have one module ;(
19:50 Skarsnik someone know a C function that return a char*?
19:50 RabidGravy yeah, I have 29 :-\ (how did that happen)
19:50 Skarsnik and take like no argument x)
19:50 RabidGravy getlogin()
19:51 Skarsnik Oh thx
19:51 nine lizmat: maybe...we don't even need the patch to rakudo. NativeCall already maps between p5helper and :)
19:51 abraxxa Skarsnik: PassChar in 15-rw-args.c
19:53 Juerd m: method Str::foo { "bar" }; say "foo".foo
19:53 camelia rakudo-moar 82e6ca: OUTPUT«Potential difficulties:␤    Useless declaration of a has-scoped method in mainline (did you mean 'my method Str::foo'?)␤    at /tmp/aS8p7RAPmR:1␤    ------> 3method7⏏5 Str::foo { "bar" }; say "foo".foo␤Method 'foo' not found for invocant of c…»
19:53 Juerd m: class Str { method foo { "bar" } };say "foo".foo
19:53 camelia rakudo-moar 82e6ca: OUTPUT«===SORRY!===␤P6opaque: must compose before allocating␤»
19:53 Juerd Is there a way to extend core classes? I'm looking to move Blob.unpack to experimental.
19:54 RabidGravy m: use MONKEY-TYPING; augment class Str { method foo { "bar" } };say "foo".foo
19:54 camelia rakudo-moar 82e6ca: OUTPUT«bar␤»
19:54 Juerd Great, thank you :)
19:55 abraxxa is something wrong with that code?
19:55 rurban joined #perl6
19:57 Juerd "Cannot augment Blob because it is closed" :(
19:58 flussence Juerd: ah yeah, that sounds familiar to me... never figured out a way around it and ended up making subs.
19:59 flussence ...which doesn't help for what you're doing, of course. :(
20:03 hankache m: my $lazylist = (1 ... Inf); say $lazylist.eager;
20:03 camelia rakudo-moar 82e6ca: OUTPUT«(timeout)»
20:03 nine abraxxa: we don't allow use lib in a module
20:04 hankache this doesn't time out in the latest rakudo ^^
20:04 abraxxa nine: you mean I have to move it before the unit module declaration?
20:05 abraxxa nine: ok, works but not so good error message
20:05 nine abraxxa: move it into the script or use -I or PERL6LIB
20:05 nine abraxxa: to quote jnthn++ "Note that for Perl, we will only support the use of use lib in scripts, not in modules, as its interaction with precompilation is more complex than we have time to reasonably consider (and it's better to wait until we've a good answer than to use a hacky one now)."
20:06 hankache does rakudo timeout?
20:06 nine hankache: no, why should it?
20:06 hankache nine: my $lazylist = (1 ... Inf); say $lazylist.eager;
20:07 hankache it's hanging
20:07 nine hankache: yes, you ask it to do infinite work and it happily starts doing it
20:08 hankache nine then shouldn't we forbid Inf + eager ?
20:08 RabidGravy Skarsnik, this "Consider adding the api version of the library you want to use"  is it possible to shut it up without specifiying the version?
20:08 flussence hankache: you're asking perl6 to solve the halting problem.
20:09 Skarsnik RabidGravy, I was thinking of that. but in most cast it's a fault in the library
20:09 hankache flussence halting problem?
20:10 Skarsnik RabidGravy, do you have an example on where you can't put the version?
20:10 lizmat m: use MONKEY-TYPING; augment class Blob { method foo { "foo" } }   # hmmm... this seems to hang ?
20:10 camelia rakudo-moar 82e6ca: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PRk5uheAut␤Cannot augment Blob because it is closed␤at /tmp/PRk5uheAut:1␤------> 3use MONKEY-TYPING; augment class Blob7⏏5 { method foo { "foo" } }   # hmmm... th␤    expecting any of:␤        g…»
20:11 lizmat ^^^ hangs for me locally, eating all mem
20:11 bobv joined #perl6
20:11 Skarsnik I am worried to receive that from NC these string should not be expmanaged (and why only the first)
20:11 RabidGravy Skarsnik, yes, for files that I have created - the version is irrelevant
20:11 hankache flussence not really, just to throw a warning/error
20:12 Skarsnik RabidGravy, it should not bother if you put a path to the file, it only warn when it's 'foo'
20:12 Skarsnik try ./foo ?
20:12 AlexDaniel joined #perl6
20:14 RabidGravy also I have 8 NativeCall libraries to check and fix
20:14 RabidGravy which really, really sucks
20:16 dalek Inline-Perl5: 320187e | (Stefan Seifert)++ | / (5 files):
20:16 dalek Inline-Perl5: Use platform independent library name
20:16 dalek Inline-Perl5:
20:16 dalek Inline-Perl5: Requires latest panda
20:16 dalek Inline-Perl5: review:
20:16 nine lizmat: there  ^^^
20:17 abraxxa I wish you all a Happy Christmas!
20:18 RabidGravy nine++ # got it
20:22 RabidGravy abraxxa, have a good one
20:22 abraxxa my updated code is on github, I'll open an RT for the CArray[CArray bug
20:23 abraxxa RabidGravy: thanks!
20:26 abraxxa hahaha
20:26 abraxxa my RT is localhost
20:26 abraxxa 127001
20:27 abraxxa
20:27 tadzik :D
20:29 moritz did you know that you can write localhost as 0 too?
20:29 moritz point your browser to http://0:5000/ for example :-)
20:29 tadzik oh, I thought it's :)
20:30 flussence depends on the browser. Some crazy code interprets a bare number as a uint32 IP address
20:30 abraxxa it's ::1
20:30 Skarsnik hey tadzik, did you see the new commit to my pr on json-unmarshal? x)
20:30 Juerd m: pack()
20:30 camelia rakudo-moar 82e6ca: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9llXJ0PwsG␤Calling pack() will never work with any of these multi signatures:␤    (Str $template, *@items) ␤    (@template, *@items)␤at /tmp/9llXJ0PwsG:1␤------> 3<BOL>7⏏5pack()␤»
20:30 flussence (doesn't work in chromium here)
20:30 Juerd I dont understand the error message
20:30 Juerd Will never work with any of these...
20:30 tadzik Skarsnik: not yet, will look now :)
20:30 Juerd Shouldn't that be s/never/only/?
20:31 RabidGravy nah,
20:31 lizmat Juerd: hmmm....
20:31 flussence Juerd: "will never work, "
20:31 RabidGravy m: pack(42)
20:31 camelia rakudo-moar 82e6ca: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jW4_r92yEz␤Calling pack(Int) will never work with any of these multi signatures:␤    (Str $template, *@items) ␤    (@template, *@items)␤at /tmp/jW4_r92yEz:1␤------> 3<BOL>7⏏5pack(42)␤»
20:31 Juerd flussence: Same
20:31 TimToady for each of these signatures, what you said will never work with it
20:32 Juerd RabidGravy: Oh, like that :)
20:32 abraxxa bye!
20:32 flussence maybe it should say "Calling pack() with no arguments" in that one case
20:32 RabidGravy yeah, it's just not clear when there are no args
20:32 Juerd I interpreted the () in 'pack()' as a function sigil, not as an empty signature :)
20:32 tadzik Skarsnik: ooh, I see it now :) Nice!
20:33 * TimToady has scheduled his advent post
20:33 RabidGravy TimToady++
20:33 tadzik ooooh:)
20:33 * flussence gets hyped for 4 hours from now
20:34 Skarsnik tadzik, for the "42" stuff, I had a webservice that send id at string because they don't fit in a int32, but since perl6 Int is a bigint it map nicely x)
20:35 vv3 joined #perl6
20:35 [Coke] it's not too late to mark pack/unpack experimental.
20:35 vv3 joined #perl6
20:35 Juerd [Coke]: I'm working on it, actually :)
20:36 tadzik Skarsnik: yeah, I can see the applications :) I just wonder if maybe there should be a way to keep the module "strict"
20:36 tadzik 'cos now, with your change, it kind of coerces types
20:36 vv3 joined #perl6
20:36 tadzik and I can imagine someone using J::M as sort of a validator, a bit like Json Schemas
20:37 Skarsnik Well it still depend on the type of the attribute
20:37 vv3 joined #perl6
20:37 tadzik m: my $a = Int("99bottles"); say $a.perl
20:37 camelia rakudo-moar 82e6ca: OUTPUT«Cannot convert string to number: trailing characters after number in '99⏏5bottles' (indicated by ⏏)␤  in block <unit> at /tmp/saagdwaJ3_:1␤␤Actually thrown at:␤  in block <unit> at /tmp/saagdwaJ3_:1␤␤»
20:37 tadzik perl6++
20:37 Skarsnik I can't think if it's a NC bug or a failuyre to not have Explicitly managed returned char *
20:38 tadzik Skarsnik: I'm trying to be a devil's advocate and find a case where it could possibly bite someone :P
20:38 vv3 joined #perl6
20:38 Skarsnik There is nothing that make these value explicitly managed in the code
20:38 tadzik though I very much value that we can now handle bigints like in that case you mentioned
20:39 vv3 joined #perl6
20:39 tadzik one could argue that CustomUnmarshaler already covers that, though this is definitely much nicer when it Just Works :)
20:39 vv3 joined #perl6
20:39 Skarsnik Yes x)
20:41 Skarsnik I also bothered RabidGravy to have automaticly _ case converted to -, but it was more me beeing lazy to not mark everything with is json-name for plop_id that end in plop-id x)
20:41 tadzik haha
20:41 Juerd I wish _ and - were considered the same thing
20:41 tadzik that's a good question though: how does JSON::Marshal handle bigints?
20:41 Skarsnik err
20:42 Juerd Since I've become accustomed to the kebab casing, underscores are annoying to type
20:42 tadzik 'cos if it turns them into strings, or we can agree that it should, then I have no other doubts :)
20:43 RabidGravy it will just push them out as they are, if they needed to be strings for an API I'd suggest a custom marshaller
20:43 mohae joined #perl6
20:43 Skarsnik Also having a way to add unmarshaling to some core type could nice too. like webservice send timestamp in ISO-something than DateTime understand. I wanted to have t x)
20:43 Skarsnik *to add that
20:44 Skarsnik It's probably just a matter to be able do add a _unmarshal(DateTime, $json)
20:44 RabidGravy Skarsnik, tadzik I'd suggest another module that provides a bunch of "standard" marshallers/unmarshallers
20:44 tadzik RabidGravy: I just thought about that exactly!
20:45 tadzik well, my idea was to have it in core, but I can be convinced
20:45 RabidGravy so if it's loaded it looks the type up and gets a marshaller
20:46 RabidGravy so if you want the bog standard behaviour do nothing, otherwise load the module
20:46 khw joined #perl6
20:46 tadzik that's not a bad idea
20:46 tadzik still, I think it's kind of our Core Duty to make bigints DTRT
20:46 Skarsnik Yes, but you will need to add something in marsh/unmarch to be able to 'extend' tehm?
20:46 tadzik even more so with marshal than unmarshal
20:46 nine I can't believe my last TODO before the release is done and it didn't even involve a patch to rakudo :)
20:47 tadzik and since all three of us are at our keyboards, we can probably come up with something sensible :)
20:47 RabidGravy I'm not quite sure what the problem with bigints is
20:47 Skarsnik Discord send me BigInt id (aka does not fit on a int32)
20:47 Skarsnik so it send it as string
20:47 tadzik so JSON defines its ints to be int32?
20:47 Skarsnik but perl6 Int are big enought
20:48 virtualsue joined #perl6
20:48 tadzik (I assume so from your example, but I haven't actually checked)
20:48 Skarsnik I have no idea
20:48 vv3 joined #perl6
20:48 tadzik I'll check
20:48 RabidGravy no, it's some other software can't handle it
20:49 Juerd Making something experimental is hard :)
20:49 Juerd Damn lexicals!
20:49 tadzik json spec says nothing about range of "number"
20:49 RabidGravy m say from-json('{ "foo": 11111111111112222222222222222222222222222222222222222222233333333333333333333333333333333}').perl
20:50 RabidGravy m: say from-json('{ "foo": 11111111111112222222222222222222222222222222222222222222233333333333333333333333333333333}').perl
20:50 camelia rakudo-moar 82e6ca: OUTPUT«${:foo(11111111111112222222222222222222222222222222222222222222233333333333333333333333333333333)}␤»
20:50 yqt joined #perl6
20:50 RabidGravy we can parse it
20:50 tadzik right
20:50 tadzik everything looks like it's actually Discord doing something weird here
20:51 [Coke] Do panda modules need to be updated? just ran a freshly built perl6 on in a freshly updated panda:
20:52 tadzik so I'm thinking, maybe it's actually better to have some nice, readymade tool (an unmarshaler probably) to handle this sort of odd documents rather than have it as a standard behaviour
20:53 [Coke] how do you login to perl6 advent with the new layout?
20:53 RabidGravy which is why I'd say if it is application specific it should be possible but not built in
20:53 tadzik [Coke]: I went to, logged in, then went to the advent blog
20:53 punter joined #perl6
20:53 tadzik yeah, I agree on that
20:53 tadzik what do you say, Skarsnik
20:53 vv3 joined #perl6
20:54 vv3 joined #perl6
20:54 tadzik I think we can come up with some nice syntax for this sort of stuff, so keep it explicit, but not make it a hassle
20:54 tadzik I see no possible harm in that :)
20:55 vv3 joined #perl6
20:55 RabidGravy but that's what "unmarshalled-by", "marshalled-by" are for
20:55 tadzik right
20:55 tadzik and is unmarshalled-by(Int(*)) enough to make it work?
20:56 vv3 joined #perl6
20:56 jnthn Juerd: Another way to make pack/unpack experimental is to have them look for a certain symbol, say $?ALLOW-EXPERIMENTAL-PACK, and then look for it to exist (nqp::getlexcaller would do it), and then just export that symbol from experimental when the :pack tag is used.
20:56 yoleaux 18:50Z <nine> jnthn: fde3d620bf1b22f1b78420e1294a04c663145efe is the last commit with which I can repro run_alt. With b6f0532c2b6fcf95b65f1de63537e91821a123fd it disappeared again. Didn't have to downgrade nqp for that.
20:56 RabidGravy so "class F { has $.very-big-number is marshalled-by('Str') is unmarshalled-by('Int') }
20:56 tadzik even that, huh
20:56 tadzik that's solid work on those traits, I see :)
20:56 Juerd jnthn: I just got something working, will submit PR in a minute.
20:57 jnthn OK, nice :)
20:57 [Coke] tadzik: thanks, that did the trick!
20:57 RabidGravy yeah, it's a string method name or a sub :)
20:57 Juerd jnthn:
20:57 jnthn Juerd: looking
20:57 jnthn I'm +1 to making them experimental
20:58 Juerd my constant EXPERIMENTAL-PACK := True; is a hack to make it work for the next callee
20:59 jnthn Yes, was gonna say
20:59 jnthn I think it's brokne otherwise too
20:59 jnthn What happens if you do use experimental :pack; sub foo() { ...use pack... }; foo()
20:59 jnthn I think both can be fixed by using CALLERS:: instead of CALLER::
20:59 jnthn Which searches all the way down the dynamic chain
21:00 Juerd Ah
21:00 Juerd Will try that instead
21:01 vv3 joined #perl6
21:02 vv3 joined #perl6
21:03 vv3 joined #perl6
21:04 vv3 joined #perl6
21:05 Juerd jnthn: Nope, doesn't work with CALLERS
21:05 atweiden joined #perl6
21:05 Juerd jnthn: And I'm out of time, quite possibly for the next few days. :(
21:06 geraud joined #perl6
21:08 jnthn OK, lemme see if I can do it before I get sent to bed :)
21:09 lizmat fwiw, I'm ambivalent to making pack/unpack experimental at this stage
21:09 Skarsnik tadzik, RabidGravy I don't see the issue of doing it in the 'core' since you have to write the Attribute as Int for the coerce to Int to be done
21:10 RabidGravy but if it's coming as a string then it's a string
21:10 hankache anyone has an example of this:
21:10 Skarsnik It's not like you say has $.foo and $foo is automaticly a Int
21:10 tadzik RabidGravy: on the other hand, we already cheat with Rat
21:10 vv3 joined #perl6
21:11 Skarsnik and Num x)
21:11 tadzik or do we, hmm
21:11 vv3 joined #perl6
21:11 tadzik yeah, it's the same story: declaring an attr as Rat means (for JSON::Unmarshal): try to make Rat from this, whatever it is
21:11 RabidGravy there was one that is cheated, because the json doesn't distinguish
21:11 tadzik it will be consistent if Int were to work the same way
21:12 tadzik we also do that with Bool
21:12 vv3 joined #perl6
21:12 tadzik and here there's no excuse
21:13 labster Good morning, #perl6.  Any LHF needing some work?
21:14 RabidGravy I'm cool with it
21:14 Skarsnik LHF?
21:14 lizmat RabidGravy: cool with pack/unpack becoming experimental ?
21:14 Skarsnik Oh low hanging fruit x)
21:14 lucasb labster: LHF: Add --make-install description to rakudo's :)
21:15 lucasb ... help message
21:15 RabidGravy lizmat, that as well ;-)
21:15 labster that sounds pretty low!
21:16 Skarsnik guess_libname in NC should be cached ~~
21:17 RabidGravy Skarsnik, however for marshalling I'm still pretty certain that it will have to be a marshalled-by('Str') for those cases
21:17 Skarsnik probably
21:18 vv3 joined #perl6
21:18 Skarsnik How I can marshal/unmash a timestamp with the 2 trait? well it's marshalled by Str but it can be created like that'string value');
21:19 Juerd jnthn: Great! Thanks
21:19 jnthn Got a patch that seems to work :)
21:19 Juerd To everyone who's going to celebrate: merry christmas!
21:20 Juerd I'm disallowing myself to participate in #perl6 for the next few days because of dayjob deadlines.
21:20 Juerd left #perl6
21:21 RabidGravy DateTime::Parse or something
21:21 RabidGravy whatever H::UA uses
21:22 Skarsnik I mean how I use the trait? x)
21:22 Hotkeys_ Haven't been reading this channel for a few days, any new developments?
21:22 RabidGravy oh
21:22 Hotkeys_ How's the release looking
21:22 dalek rakudo-star-daily: d68d5bd | coke++ | log/ (8 files):
21:22 dalek rakudo-star-daily: today (automated commit)
21:22 dalek rakudo-star-daily: review:
21:23 Skarsnik like has DateTime $timestamp is marshalled-by('Str') is un-marshalled-by('new') ?
21:24 [Coke] so, is fresh panda working for anyone?
21:24 lucasb [Coke]: worked for me when I bootstraped 1 or 2 hours ago. didn't hit the EVAL usage errors you found
21:25 RabidGravy something like "... is marshalled-by('Str') is unmarshalled-by(sub ($d) {$d) })"
21:25 stmuk panda seems to generally work with a few modules slow to install
21:25 RabidGravy for the method name it has to be a method that is called on the value that you have rather than the type
21:28 tadzik [Coke]: works fine here
21:30 labster m: "»ö\x[342]\x[20f0]«".say # Camelia with santa hat
21:30 camelia rakudo-moar 82e6ca: OUTPUT«»ö͂⃰«␤»
21:31 flussence [Coke]: works here too (my daily reinstall process includes `panda install Linenoise`)
21:32 Hotkeys last time I used panda it took so long to start doing things I thought it had hanged
21:32 * flussence should get to work on replacing "daily" there with a script that monitors irssi's logfiles for commit messages...
21:32 Hotkeys lol
21:32 RabidGravy [Coke], how fresh?
21:32 Hotkeys why not just monitor git
21:33 [Coke] both are running the latest commit.
21:33 flussence I don't think inotify works over remote git yet
21:33 [Coke] trying to remove the install directory for perl6 and do a complete rebuild.
21:34 RabidGravy just trying
21:37 Skarsnik err my modules does not work now
21:37 Skarsnik Cannot call infix:«<»(Any, Int); none of these signatures match:
21:37 Skarsnik on a given block
21:38 Skarsnik it worked yesterday
21:39 lizmat Skarsnik: any idea where / how that happens
21:39 lizmat anything to do with dates or instants ?
21:39 Skarsnik no
21:39 lizmat *phew*
21:40 flussence [Coke]: just finished building stuff and reinstalling panda. It takes *ages* at "==> Fetching panda" but eventually completes.
21:40 Skarsnik it fail on that and the last travis build was working
21:40 lizmat flussence: pretty trivial to pump supply onto an IO::Socket::Async supply ?
21:40 Skarsnik There not even a < comparaison on this
21:41 [Coke] going better this time...
21:41 lizmat Skarsnik: which module are we talking about?  something in th eecosystem ?
21:42 Skarsnik Gumbo in the ecosystem (you will need to install XML with notests
21:43 dalek rakudo/nom: bdc8003 | (Juerd Waalboer)++ | / (2 files):
21:43 dalek rakudo/nom: Make pack and unpack experimental
21:43 dalek rakudo/nom:
21:43 dalek rakudo/nom: The current pack and unpack are incomplete and not extensible. Future
21:43 dalek rakudo/nom: improvements will be necessary, but can't be made without breaking
21:43 dalek rakudo/nom: compatibility.
21:43 dalek rakudo/nom:
21:43 [Coke] the panda output "==> Please make sure that inst#/Users/williamcoleda/sandbox/rakudo/install/share/perl6/site/bin is in your PATH" is confusing.
21:43 dalek rakudo/nom: There is currently no language specification for pack and unpack.
21:43 dalek rakudo/nom: review:
21:43 dalek roast: fde8fcf | jnthn++ | S (4 files):
21:43 dalek roast: Tests using pack/unpack should `use experimental`.
21:43 dalek roast: review:
21:43 [Coke] it's giving a perl6 lib style path but it's meant for the system path.
21:43 [Coke] jnthn++ Juerd++
21:44 [Coke] afk a bit
21:45 tadzik [Coke]: yeah, I guess that message is a bit obsolete :)
21:46 dalek rakudo/nom: 4355eac | jnthn++ | src/ (3 files):
21:46 dalek rakudo/nom: Remove "as Foo" coercion trait.
21:46 dalek rakudo/nom:
21:46 dalek rakudo/nom: Which has long been replaced by Foo() coercion types.
21:46 dalek rakudo/nom: review:
21:46 jnthn 'night, #perl6
21:46 timotimo gnite jnthn
21:46 timotimo have a nice 24th :)
21:47 RabidGravy be groovy
21:47 AlexDaniel m: enum Animal (Cat => 25, Dog)
21:47 camelia rakudo-moar 82e6ca: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MoGn2qU4cx␤Undeclared name:␤    Dog used at line 1␤␤»
21:47 stmuk so everything using NC needs to remove 'lib' from the front?
21:47 timotimo oh?
21:47 Skarsnik Yes, blame nine :)
21:48 timotimo huh?
21:48 RabidGravy panda working on a just finished installing rakudo here
21:48 stmuk Cannot locate native library '': cannot open shared object file: No such file or directory
21:49 Skarsnik it's not that stupid, since on windows lib are just foo.dll
21:49 RabidGravy yeah jusr 'curl'
21:49 terjekv joined #perl6
21:49 timotimo yeah, it'll put the lib in front for you
21:50 Skarsnik fun fact: there is some lib that are called liblibfoo x)
21:50 timotimo there's also libowfat (so you can -lowfat)
21:51 RabidGravy and libiberty
21:51 lucasb and libuv (so you -luv it) :)
21:51 geekosaur libroken
21:51 timotimo oh!
21:51 timotimo i never noticed that
21:51 geekosaur (which admittedly goes the other direction)
21:51 terjekv Hi.  We're trying to resolve a circular module call using stubs.  It works fine if the modules are located in the same file, but if they are spread across different files we get the message "the following packages were stubbed but not defined".  Is there a (documented) way to have circular module calls across different files?
21:52 Skarsnik Should I merge than now? DBIish will not work for new rakudo without it x)
21:52 Skarsnik terjekv, You can't sadly I think
21:52 Skarsnik I solved by being loose on some type
21:53 Skarsnik +it
21:53 terjekv Ah.  Right.  Well, that at least explains a lot.  And thanks for the idea.
21:54 [Sno] joined #perl6
21:54 RabidGravy well if you're not using them for typeconstraints you can require the module and the ::('Foo') it to get the package/class whatever
21:54 Skarsnik Maybe it can work if you could do unit module Foo in each file
21:54 RabidGravy I've used that in a couple of places
21:54 Skarsnik but I did not try it
21:55 Skarsnik I think it's weird to not be able to have that
21:55 RabidGravy so e.g.   require Foo;  my $f = ::('Foo').new
21:55 Skarsnik I have a channel class that has an owner (so a User) and the user class has channel on it
21:56 terjekv That sounds oddly familiar.  I'm not quite sure what unit module actually does, looking at the module documentation for a few.
21:56 terjekv (and the ::('Foo').new idiom kinda hurts my eyes)
21:56 RabidGravy yeah it's not pretty
21:57 Skarsnik For me it's a bug x)
21:58 Skarsnik I understand if for the precompile to work
21:59 terjekv Single pass etc, yeah.  But it's a bit odd that you can get around it in the same file but not across files.
21:59 terjekv Also, uhm, what does the "unit" in "unit module Foo" do?
21:59 Skarsnik it declare the file as the Foo unit
21:59 hlafarge joined #perl6
21:59 Skarsnik if you want it's like putting module Foo { } around everything
22:00 RabidGravy which is what I prefer
22:00 Skarsnik but I think remember reading that you can have multi file of the same unit
22:01 terjekv Ah.  Right.  Akin to package {} (conceptually) in perl5?  Makes sense though.
22:01 RabidGravy yeah
22:02 terjekv I think there will be some stabbing at this, thanks for the input!
22:02 RabidGravy there is package, module and class
22:03 Skarsnik I feel like RabidGravy, having code accross multiple module/patch in rakudo/modules to write something that I never finished writing because I spend time patching other stuff xD
22:04 terjekv (It's not bad until a branch -l lists enough output that you reach for grep)
22:04 * flussence is pleasantly surprised to find that `st` has about 17 times more unicode support than `urxvt`
22:04 erisch_ joined #perl6
22:06 * RabidGravy gets jiggy with a Proxy in an AT-KEY
22:06 stmuk ha a script I last fixed 2 weeks ago needs more changes more
22:06 lizmat RabidGravy: in core?
22:08 RabidGravy nah, in this GDBM module which I earlier claimed to be able to finish today but I fell asleep for a couple of hours
22:08 pierre-vigier joined #perl6
22:09 Skarsnik I love at-key x)
22:11 maettu joined #perl6
22:13 labster m: (* // "foo").WHAT.say
22:13 camelia rakudo-moar 4355ea: OUTPUT«(Whatever)␤»
22:15 RabidGravy yeah it's defined
22:16 labster But should it curry?
22:16 lucasb iow, &&, || and // don't participate in whatever currying. (right?)
22:16 RabidGravy PUT IT IN THE CURRY!
22:17 nmpa joined #perl6
22:17 timotimo looks like, lucasb
22:17 raiph joined #perl6
22:18 captain-adequate TimToady: Nice post today.
22:19 dalek roast: d8d63b4 | lizmat++ | S03-smartmatch/capture-signature.t:
22:19 dalek roast: Fix fallout of " as " removal
22:19 dalek roast: review:
22:19 dalek roast: b0e1278 | lizmat++ | S32-temporal/Date.t:
22:19 dalek roast: Fix no special format large/small years fallout
22:19 dalek roast: review:
22:19 timotimo huh? where's toady's post?
22:20 stmuk it was emailed out to those with WP access it seems
22:20 lucasb .oO( today's toady's post )
22:20 captain-adequate Oh... The Perl6 advent calendar.
22:22 captain-adequate Can't seem to find it on the website... Must've just been emailed I guess.
22:24 timotimo i didn't get a post :(
22:24 timotimo maybe it was accidentally published, then quickly deleted again because it was meant to go up in an hour or so?
22:25 labster Don't open your blog posts before christmas, lucasb
22:28 * perlpilot reads timtoady's post now as it's likely he'll have spotty internet later
22:30 timotimo are recorded talks from the LPW going to be up somewhere?
22:30 timotimo ... did talks get recorded?
22:30 krshn joined #perl6
22:32 stmuk mdk tweeted about looking at the video an evening or two ago
22:32 hankache when will the post go live?
22:33 stmuk so I imagine the wheels are turning
22:33 * hankache waiting and waiting and waiting
22:33 timotimo hankache: i can't actually see the post as scheduled in wordpress
22:33 perlpilot hankache, when its meant to be published.  12/24
22:33 dalek rakudo/nom: 047db4b | lizmat++ | src/core/Date (3 files):
22:33 dalek rakudo/nom: Streamline DateTime handling
22:33 dalek rakudo/nom:
22:33 dalek rakudo/nom: - main new logic now in .new($y,$m,$d,$h,$mi,$s,$t) which allows for coercion
22:33 dalek rakudo/nom: - no special format for small/large years
22:33 dalek rakudo/nom: - check-date/check-value helper functions removed
22:33 dalek rakudo/nom: - fixed some cases where multiple of a unit name would not be accepted
22:33 dalek rakudo/nom: - use native ints where possible
22:33 timotimo not sure if i've got sufficient privileges to see it if it was there
22:33 dalek rakudo/nom: - optimized earlier/later a bit
22:33 dalek rakudo/nom: - truncate-parts is now private method truncate-ymd
22:33 dalek rakudo/nom: review:
22:33 * lizmat learned a lot about dates/instants/datetimes and posix today
22:33 diakopter TimToady: should the title have a Day 24: prefix
22:33 hankache perlpilot there are a lot of 12/24 :)
22:34 nine lizmat: it's a ridiculously complex subject
22:34 lizmat I actually found a few issues that I will try to look at tomorrow
22:34 hankache In my part of the word it's already 12/24
22:34 perlpilot hankache: okay, WP says ... Scheduled 2015/12/24
22:35 hankache perlpilot timezone?
22:35 perlpilot hankache, I dunno really.  I was kind of guessing UTC
22:36 perlpilot hankache, see ... your problem is that you're from the unevenly distributed future  :)
22:37 hankache perlpilot :)
22:38 stmuk has the behaviour of File::Find changed in the last 2 weeks?
22:38 perlpilot Under WP's general config is a checkbox for "Show falling snow on my blog until January 4th"   Why is that so much easier to find than the timezone
22:38 perlpilot ?
22:40 perlpilot stmuk: my plan is to eventually make File::Find obsolete-ish by adding an option to dir() for recursion (there's already a :test for constraining what it returns)
22:41 perlpilot (or ... maybe if I just keep mentioning it here, someone will do it for me, 'cause it doesn't look like I'll have time to work on it until next year  :)
22:41 skids joined #perl6
22:41 nine perlpilot: next year isn't that far away
22:42 nine perlpilot: I for one plan to do no hacking at all the next couple of days :)
22:42 Skarsnik and when you will get back, you will get hundred of hungry mail about precompil stuff!
22:42 perlpilot nine: in addition to holiday festivities, I'm moving my family a few hundred miles (still in Texas though :)
22:42 nine And now: sleep. Good night #perl6 :)
22:43 labster lizmat++
22:43 Skarsnik Good night
22:43 perlpilot good night nine!
22:43 labster Good work on the DateTime mess.
22:45 pierre-vigier joined #perl6
22:47 jdv79 FROGGS: around?
22:49 pierre-vigier joined #perl6
22:52 lizmat labster: thank you, it has been on my radar for a while
22:53 lizmat having had to deal a lot with epoch / dates at former $work, I would like to see them faster  :-)
22:53 labster Don't remind me I need to deal with dates at current $work
22:54 labster I'm going to double-check that one of the changes doesn't break large years, though.
22:54 dalek rakudo/nom: 18947f4 | lizmat++ | src/core/
22:54 dalek rakudo/nom: Fix for RT #127003 , zefram++
22:54 dalek rakudo/nom: review:
22:54 starless joined #perl6
22:55 lizmat labster: if it did, please add tests for them  :-)
22:55 perlpilot lizmat++ for DateTime,  labster++ for double-checking  :)
22:55 lizmat because all of my changes are spectest clean
22:56 krshn a long time perl user just getting started on perl6
22:56 krshn what is the best resource to start out with
22:56 RabidGravy
22:56 Skarsnik perl6intro?
22:56 labster >;
22:56 labster -2602446-2807173-1473579083988834741T17:38:49Z
22:57 timotimo <- this one's pretty good
22:57 Skarsnik that an interesting date
22:58 labster The same problem I ran into: anything that stores a year needs to be an Int.
22:58 krshn thanks -- have been going through for a while. I was hoping something like Modern Perl or something
22:58 krshn is great though
22:59 Skarsnik there is a perl6intro thingy but I can't remember the url x)
22:59 timotimo
22:59 jdv79 it looks like my pause changes got reverted.  *sigh*
23:00 krshn timotimo: looks perfect. thanks
23:00 timotimo have fun with it! :)
23:01 krshn loving perl6 so far. but still start writing perl 5 at the drop of the hat
23:01 krshn the biggest hurdle for me is to think in terms of perl 6
23:02 labster lizmat: Either we add a couple Ints, or we add a fast path for normal dates which use int, and a slow path for people who want years in the billions
23:03 krshn let me throw a random question out there
23:03 Skarsnik timotimo, any idea where this error could came from? the previous build (2 days) ago was working and I only changed nc lib path in this. The code pointed by the error is just given on a Int (
23:03 krshn i am a scientist and have always wanted to code only in perl.. will perl6 be my goto language for scientific computing?
23:04 lizmat labster: year is already supposed to be an Int...
23:05 krshn I am currently moving from matlab -> julia and it has been good so far .. but in my opinion, perl6 can be a very good competitor to julia for scientific computing too.. any thoughts?
23:05 Skarsnik No idea. It's not really fast and it does not have lot of testing for Math like other language could have
23:06 krshn it has multiple dispatch, native types
23:06 Skarsnik but since it's easy to create sub language in perl6 with the slang, it can probably be interesting x)
23:06 krshn so potentially, there is hope
23:06 timotimo Skarsnik: that's weird. i don't see an instance of infix:«<» in that code
23:06 hankache krshn scientific computing relies most of the time on functional programming
23:07 hankache as a matter of fact Perl 6 can be used for functional programming
23:07 labster lizmat: here
23:07 hankache it has lazy lists, junctions, hyperoperator, feed operator (pipe)
23:07 lizmat labster++
23:07 perlpilot hankache: heh, "can be"?  that's an understatement :)
23:08 timotimo scientific computing probably also relies on a bunch of matrix manipulation and vector arithmetic and statistics on big series of numbers and such
23:08 krshn thats my point too .. perl6 has a lot of potential
23:08 hankache perlpilot: s/can be/is
23:10 hankache krshn the way I see it, Perl 6 is a mutant, it copied every cool feature from every language out there
23:10 timotimo that'd make it more of a chimera, IMO
23:10 hankache :D
23:10 krshn haha :-)
23:10 labster lizmat: $a and $c and probably $e need to be Int.  Which is why I'm starting to think we need a pessimized path.
23:12 lizmat labster: not before Christmas
23:13 lizmat but yeah  :-)
23:14 lizmat it appears we need an extended format after all  :-(   #127007
23:15 labster All of these ISO edge cases make me want to restrict core DateTime to RFC 3339.
23:16 cygx joined #perl6
23:16 cygx o/
23:16 cygx krshn: perl6 has native arrays and ffi, so it just takes someone to write a bunch of wrappers over the appropriate fortran libs
23:17 timotimo fortran has a different order for multi-dimensional arrays than c (and perl6) do
23:18 cygx just write an AT-POS that mangles the index, and you're good to go
23:18 labster Are we frozen for v6.c, or can I continue to commit bugfixes?
23:18 cygx (assuming you fortran lib uses ISO_C_BINDING)
23:19 cygx don't know off-hand what's required for native fortran bindings
23:19 grondilu Perl 6 for functional programming?  Not really.  No tail recursion.
23:19 Skarsnik spec are freezed I think, but bug fix or unspeced stuff could change I think
23:19 RabidGravy Hmm, the gdbm thing works a lot better without an error callback
23:19 krshn actually, let me ask it from the other angle.. is there anything that structurally constrains perl6 from being good at scientific computing?
23:19 RabidGravy anyway, ttfn
23:20 timotimo ttyl RabidGravy
23:20 timotimo scientific computing was always something we wanted for perl 6 to be good for
23:20 grondilu just make a R slang and be done with it
23:20 timotimo hehe.
23:21 AlexDaniel haha :)
23:21 krshn thats exactly my impression from summarily reading about perl6 features
23:22 krshn wow.. if perl6 does scientific computing, my 10+ years wait will be over -- I started with perl5 10 years ago :-)
23:22 AlexDaniel krshn: yeah. In that sense the possibilities are endless
23:23 AlexDaniel krshn: I think that it needs just a little bit of time for all such things to be written
23:23 krshn i meant, 10+ years of wait will be worth it
23:23 cygx interesting side note: C99 was basically the attempt to eat fortran's lunch regarding scientific computing
23:23 cygx tgmath.h, _Complex, variable-length arrays, restrict, ...
23:23 lizmat labster: bugfix away, I know I am...
23:24 AlexDaniel m: say τ² + ½
23:24 camelia rakudo-moar 18947f: OUTPUT«39.9784176043574␤»
23:24 lizmat labster: but aren't we at least internally working with RFC 3339 ?
23:24 AlexDaniel krshn: ↑ though it already has a lot of cool stuff :)
23:25 cygx .oO( whatever happened to Fortress? )
23:26 krshn yep. I have been on-and-off on perl6 over the past 10 years .. but now, I am going to make a serious attempt at writing all perl in perl6
23:26 jdv79 so, the perl field value in META6.json should be v6 or 6?
23:26 AlexDaniel krshn: great! Make sure to report all bugs that you find :)
23:26 AlexDaniel krshn: if you stumble upon any
23:26 jdv79 since we've now concluded, it seems, that version should not have the v in string form
23:28 kid51 joined #perl6
23:28 krshn does anyone know when a camelia book will be out?
23:29 AlexDaniel grondilu: well, you can still use tail recursion. It's just that there's no tail call elimination :)
23:30 lizmat $ 6 ''
23:30 lizmat +4034522497029953-07-13T17:38:49Z    # labser
23:30 lizmat labster ^^^
23:37 krshn when I try to install the latest version of perl6, I get   Could not find symbol '&bool'
23:37 timotimo ah, yes. you'll have to kill your install folder to make that part go away
23:37 Skarsnik hm, you install with what?
23:38 krshn An exception occurred while evaluating a constant at /home/krshn/local/linux/share/perl6/sources/0FD28AE1C9590AB6C8A04A508BF05A7043967B19:13 Exception details:   Could not find symbol '&bool'     in block  at /home/krshn/local/linux/share/perl6/sources/0FD28AE1C9590AB6C8A04A508BF05A7043967B19:13
23:38 jdv79 woohoo.  fixed.
23:38 Skarsnik timotimo, How I can track down commit? (to find the culprit of my infix < error)
23:38 timotimo "git bisect" helps with that
23:38 AndyDee joined #perl6
23:38 jdv79 that's the fastest pause fix ever.  < 1h.
23:38 dalek roast: 38e9881 | lizmat++ | S32-temporal/DateTime.t:
23:38 dalek roast: Test for RT #127003
23:38 dalek roast: review:
23:38 dalek roast: 0fa2c59 | lizmat++ | S32-temporal/Date (2 files):
23:38 dalek roast: Seems we need an extended format after all
23:38 dalek roast: review:
23:38 krshn checkout out rakudo from git
23:38 krshn nom branch
23:39 timotimo don't forget to always checkout the tools/build/NQP_REVISION and tools/build/MOAR_REVISION inside nqp
23:39 krshn doesn't this do it for me? perl --gen-moar --gen-nqp --backends=moar --prefix=$HOME/local/linux
23:40 Skarsnik it should work
23:40 Skarsnik you just did it? no previous checkout?
23:40 Ben_Goldberg joined #perl6
23:40 krshn so I am getting this error for the first time.. installed it this way 5-6 times in the past
23:41 timotimo krshn: yeah, files left over are causing this problem, i believe
23:41 Skarsnik yes, but is that a clear rakudo directory?
23:41 timotimo i personally have the install folder for perl6 only so i can wipe it if necessary
23:41 Skarsnik because for now the whole stuff does not like old stuff x)
23:41 krshn Skarsnik: yes.. my rakudo is clean
23:41 dalek rakudo/nom: 8955469 | lizmat++ | src/core/Date (3 files):
23:41 dalek rakudo/nom: Fixes for RT #127005 and RT #127007, zefram++
23:41 dalek rakudo/nom:
23:41 dalek rakudo/nom: Plus additional large year value fixed prompted by labster++
23:41 dalek rakudo/nom: review:
23:41 krshn but as timotimo said, it could be left over from previously
23:41 krshn is there a way to delete it ?
23:42 timotimo nothing like "make uninstall"; only rm can do it for you
23:42 krshn I tried deleting only that dir but got a bunch of errors after that
23:42 timotimo which dir exactly?
23:42 timotimo $HOME/local/linux ?
23:42 krshn No.. deleted /home/krshn/local/linux/share/perl6/sources/
23:43 atweiden timotimo: in JSON::Fast source, lib/JSON/ isn't compiling on rakudo 2015.11
23:43 atweiden Unable to parse expression in argument list; couldn't find final ')'
23:43 lizmat oops s/127005/127004/
23:43 cygx krshn: get rid of the whole perl6/ thing
23:43 timotimo atweiden: let me have a look
23:43 krshn ok.. I was hesitant doing that :-(
23:44 timotimo atweiden: is that the version that's inside panda?
23:44 atweiden this is git head
23:44 atweiden but i believe it's the same
23:45 timotimo can you tell me your exact rakudo version?
23:45 timotimo also, does "STATEMENT_LIST('hi')" work for you?
23:45 timotimo like, in a perl6 -e ?
23:45 atweiden it's the 2015.11 release, compiled as
23:45 timotimo oh!
23:45 timotimo you said 2015.11
23:45 timotimo sorry about that
23:46 timotimo yeah, that's incompatible
23:46 atweiden i figured
23:46 timotimo you'll need an earlier JSON::Fast for that
23:46 atweiden so it works on nom?
23:46 krshn cygx: that worked. thanks.
23:47 cygx krshn: when in doubt, go with the nuclear option ;)
23:47 krshn anyone one know happened .. why the complaints?
23:47 krshn hehe :-)
23:47 cygx something-something change of version scheme
23:47 Skarsnik lot of change in precompiled stuff + change everywhere
23:48 krshn is that a recommended workflow when upgrading perl6 -- or this is transient because of so many things changing?
23:48 timotimo it does work on nom, yes
23:48 krshn I mean the nuclear option :-)
23:48 Skarsnik nuke option is the way x)
23:48 timotimo in 2015.11 you'll probably just have to replace STATEMENT_LIST with SEQ
23:49 timotimo can you try that, atweiden?
23:49 cygx krshn: it's supposed to be a one-time thing... until the next time it becomes necessary ;)
23:49 atweiden timotimo 1 sec
23:49 krshn got it :-)
23:49 dalek roast: 2763fa2 | lizmat++ | S32-temporal/DateTime.t:
23:49 dalek roast: Add tests for RT #127004
23:49 dalek roast: review:
23:50 krshn how does something like this work -- perl6 -e 'm: say pi²'
23:50 Skarsnik timotimo, I mean, is there an easy way to deal with the triple npq/rakudo/moar to check old version ? x)
23:50 krshn is pi a predefined variable?
23:50 timotimo m: say pi
23:50 camelia rakudo-moar 18947f: OUTPUT«3.14159265358979␤»
23:50 Skarsnik pi is a constant
23:50 nebuchadnezzar m: my $s = "A\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $;
23:50 timotimo m: pi = "hi"
23:50 camelia rakudo-moar 18947f: OUTPUT«Cannot modify an immutable Num␤  in block <unit> at /tmp/g6Z_B9QU_a:1␤␤»
23:51 timotimo Skarsnik: delete the nqp and moar installations and use --gen-moar --gen-nqp
23:51 labster m: say π;
23:51 camelia rakudo-moar 18947f: OUTPUT«3.14159265358979␤»
23:51 Skarsnik the gen try to match the rakudo version?
23:51 krshn m: pi = "hi"
23:51 camelia rakudo-moar 895546: OUTPUT«Cannot modify an immutable Num␤  in block <unit> at /tmp/U86QMCcP6G:1␤␤»
23:51 timotimo Skarsnik: yes
23:51 timotimo m: say e
23:51 camelia rakudo-moar 895546: OUTPUT«2.71828182845905␤»
23:51 timotimo m: say i
23:51 camelia rakudo-moar 895546: OUTPUT«0+1i␤»
23:51 krshn m: my pi = "hi"
23:51 camelia rakudo-moar 895546: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TyetOZDbok␤Malformed my␤at /tmp/TyetOZDbok:1␤------> 3my pi7⏏5 = "hi"␤»
23:52 nebuchadnezzar interesting, in REPL I got “(True True True)” at the end of my chained map
23:52 Skarsnik m: my constant pi = "hi";
23:52 camelia rakudo-moar 895546: ( no output )
23:53 krshn so you cannot use pi as a variable in code?
23:53 timotimo m: my \pi = 100
23:53 camelia rakudo-moar 895546: ( no output )
23:53 timotimo you can
23:54 timotimo m: my \pi = my $ = 4; pi++; say pi
23:54 camelia rakudo-moar 895546: OUTPUT«5␤»
23:54 Skarsnik most variable have sigil so..
23:54 timotimo if you just have "my \pi = 4", you'll end up with something write-once. if you put a scalar in there, however, it just means you can't replace the scalar with another scalar. but the value inside is changable
23:54 hankache krshn but pi is already defined
23:55 krshn m: my $pi=3; say $pi;
23:55 camelia rakudo-moar 895546: OUTPUT«3␤»
23:55 krshn duh..
23:55 krshn :-)
23:55 krshn what does \pi do?
23:55 hankache m: say pi;