Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-07-01

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:08 dha I just noticed that C<my $foo = "ha";say "beep" if $foo == 0;> works differently in p6 than it does in p5. It looks like in p5 it treats a string with no digits as 0 in a numeric context, but p6 errors out.
00:08 dha I assume that's intentional?
00:09 TimToady yes
00:10 TimToady we also treat string '0' as true now, and only '' is false
00:10 TimToady on the theory that each normal type should have one distinguished false value, not two...
00:11 [Tux] joined #perl6
00:11 TimToady (and because p6 knows the difference between a string and a number to a greater extent than p5 does)
00:11 dha aha.
00:12 timotimo we should have an opt-out to get a 0 that's True ... like 00 instead of just 0. you know, to go with "0" ... because "" vs "0" created the rule that putting a 0 in front makes it true
00:12 TimToady a lot of the differences keep coming back to the type system, because a lot of the original RFCs were underlyingly complaints about the lack of one
00:13 timotimo i think my brain is desperate for some sleep
00:13 TimToady that's so 00
00:14 b2gills m: my $a = 0 but True; say $a if $a
00:14 camelia rakudo-moar 4a7219: OUTPUT«0␤»
00:14 TimToady well, if you want a 2-character 0 that is true, try ~0 then :P
00:14 timotimo that looks a tiny bit like a winking emoticon
00:15 TimToady m: my $a = ~0; say $a if $a
00:15 camelia rakudo-moar 4a7219: OUTPUT«0␤»
00:15 dha m: my $a = -0;say $a if $a
00:15 camelia rakudo-moar 4a7219: ( no output )
00:15 dha uh...
00:15 dha why did we just get different results?
00:16 * TimToady guesses dha's font makes ~ look like -
00:16 dha Upon closer looking, yeah. I think I need new glasses.
00:16 geekosaur or just a better font; ~ sucks in some of them
00:16 TimToady you just need one lens specialized for ~, and the other specialized for -
00:18 dha :-)
00:18 dha Actually, this is not the only reason I need new glasses, so I should really deal with that at some point...
00:19 timotimo deal with it at the focal point :)
00:19 * timotimo disappears into the night
00:27 laouji joined #perl6
00:27 BenGoldberg joined #perl6
00:28 TEttinger unifont remains very legible!
00:29 vendethiel joined #perl6
00:30 geekosaur I always found unifont to be ugly as sin
00:36 japhb Just how ugly do you find sin to be?
00:36 ugexe m: my @bar = eager gather for 1,2,3 -> $i { my %foo; take { %foo }; %foo{$i} = $i; }; say @bar.perl
00:36 camelia rakudo-moar 4a7219: OUTPUT«[{}, {}, {}]<>␤»
00:37 ugexe darn
00:38 hoelzro m: sub foo:bar($/) { ... }
00:38 camelia rakudo-moar 4a7219: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cgdyPA6dES␤Colon pair value '$/' too complex to use in name␤at /tmp/cgdyPA6dES:1␤------> 3sub foo:bar($/)7⏏5 { ... }␤»
00:38 hoelzro m: sub foo:bar ($/) { ... }
00:38 camelia rakudo-moar 4a7219: ( no output )
00:38 hoelzro is that expected?
00:38 TEttinger geekosaur, ugly but clear at least.  Inconsolate is quite pretty and I think is legible
00:38 TEttinger *Inconsolata
00:39 TEttinger http://www.fontsquirrel.com/fonts/Inconsolata but ~ and - remain very similar, especially at size 12
00:39 laouji joined #perl6
00:40 TimToady hoelzro: yes, pair notation, with a few exceptions, generally slurps up any following circumfixish chars
00:40 hoelzro TimToady: so longname methods need the space?
00:40 TimToady m: sub foo:bar[]($/) { ... }
00:40 camelia rakudo-moar 4a7219: OUTPUT«===SORRY!===␤Cannot find method 'ast'␤»
00:40 TimToady m: sub foo:bar()($/) { ... }
00:40 camelia rakudo-moar 4a7219: OUTPUT«===SORRY!===␤Cannot find method 'ast'␤»
00:41 TimToady hmm
00:41 geekosaur yeh, inconsolata's pretty good
00:41 TimToady m: sub foo:bar<>($/) { ... }
00:41 camelia rakudo-moar 4a7219: OUTPUT«5===SORRY!5===␤Null operator is not allowed␤at /tmp/NOQ3S2MrAv:1␤------> 3sub foo:bar<>7⏏5($/) { ... }␤Other potential difficulties:␤    Pair with <> really means an empty list, not null string; use :bar('') to represent the null string…»
00:41 TimToady heh
00:41 TimToady just use the space
00:42 hoelzro you got it =)
00:43 TimToady m: sub foo:bar<x>($/) { ... }
00:43 camelia rakudo-moar 4a7219: OUTPUT«5===SORRY!5=== Error while compiling /tmp/soICC62wKA␤Cannot add tokens of category 'foo'␤at /tmp/soICC62wKA:1␤------> 3sub foo:bar<x>7⏏5($/) { ... }␤»
00:43 TimToady std: sub foo:bar<x>($/) { ... }
00:43 camelia std 28329a7: OUTPUT«ok 00:00 138m␤»
00:43 TimToady rakudo doesn't quite believe in pair-extended names the way std does
00:45 TimToady std: sub foo:bar<x>($/) { ... }; foo:bar<x>()
00:45 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routine:␤     'foo:bar<x>' used at line 1␤Check failed␤FAILED 00:00 139m␤»
00:46 TimToady hmm
00:46 TimToady std: sub foo:bar<x> ($/) { ... }; foo:bar<x>()
00:46 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routine:␤     'foo:bar<x>' used at line 1␤Check failed␤FAILED 00:00 139m␤»
00:46 TimToady interesting
00:46 TimToady std: sub foo:bar<x> ($/) { ... }; foo()
00:46 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routine:␤     'foo' used at line 1␤Check failed␤FAILED 00:00 139m␤»
00:47 * TimToady thinks that used to work better
00:47 flussence std: sub foo:bar<x> ($/) { ... }; bar()
00:47 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Undeclared routine:␤     'bar' used at line 1␤Check failed␤FAILED 00:00 139m␤»
00:49 laouji joined #perl6
00:52 Akagi201 joined #perl6
00:54 tinyblak joined #perl6
00:55 skids m: sub a (:$a, :$b){ $a.say; $b.say }; my %f = (:a(0)); a(|%f, :b(1));
00:55 camelia rakudo-moar 4a7219: OUTPUT«0␤1␤»
00:56 skids m: sub a (:$a, :$b){ $a.say; $b.say }; my %f = (:a(0)); a(:a(2), :a(3), :b(1));
00:56 camelia rakudo-moar 4a7219: OUTPUT«3␤1␤»
00:56 skids m: sub a (:$a, :$b){ $a.say; $b.say }; my %f = (:a(0)); a(|%f, :a(3), :b(1));
00:56 camelia rakudo-moar 4a7219: OUTPUT«Unexpected named parameter 'a' passed␤  in sub a at /tmp/0GpneSrcPJ:1␤  in block <unit> at /tmp/0GpneSrcPJ:1␤␤»
00:56 skids m: sub a (:$a, :$b){ $a.say; $b.say }; my %f = (:a(0)); a(:a(3), |%f, :b(1));
00:56 camelia rakudo-moar 4a7219: OUTPUT«Unexpected named parameter 'a' passed␤  in sub a at /tmp/07JVz0crLm:1␤  in block <unit> at /tmp/07JVz0crLm:1␤␤»
00:59 skids Oh hey someoe else noticed RT#77788 yesterday coincientally
00:59 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=77788
01:08 yeahnoob joined #perl6
01:08 mr-foobar joined #perl6
01:10 rmgk joined #perl6
01:14 vendethiel joined #perl6
01:27 dalek ecosystem: 4b83f6c | (Sterling Hanenkamp)++ | META.list:
01:27 dalek ecosystem: Adding ArrayHash to the ecosystem
01:27 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/4b83f6c05e
01:29 raiph joined #perl6
01:32 dayangkun joined #perl6
01:35 atroxaper joined #perl6
01:38 skids zostay++ those will be useful.
01:38 skids (Though .push gets confusing given what Hash.push does in core.)
01:47 zostay i tried to do something like the same
01:47 zostay the operations are hashish or arrayish based upon the type of arguments
01:50 aborazmeh joined #perl6
01:50 aborazmeh joined #perl6
01:54 tinyblak joined #perl6
01:56 skids Right, but Hash.push does this:
01:56 skids m: my %f = :b; %f.push((:b)); %f.say
01:56 camelia rakudo-moar 4a7219: OUTPUT«b => True True␤»
01:56 skids But also:
01:57 skids m: my %f = :b; %f.push(:b); %f.say
01:57 camelia rakudo-moar 4a7219: OUTPUT«b => True␤»
01:57 skids m: my %f = :b; %f.push(:b(1)); %f.say
01:57 camelia rakudo-moar 4a7219: OUTPUT«b => True␤»
01:57 skids ...does nothing with bare pairs as named args.
01:58 skids So maybe a better thing would be for ArrayHash.push to replace when given named parameters, and do what Hash.push does with positional pairs.
02:00 TimToady joined #perl6
02:04 noganex_ joined #perl6
02:05 skids KnottyPairs are a nice clever little idea, too, BTW.
02:07 vendethiel joined #perl6
02:12 geekosaur joined #perl6
02:31 nys joined #perl6
02:52 zostay thx... i'm not sure how to copy with that... i don't fully understand all the ways in which pairs behave... they still seem strange to me at times
02:53 zostay m: sub t(*@a, *%v) { @a.perl.say; %v.perl.say }; t("a" => 1); t(a => 1);
02:53 camelia rakudo-moar 4a7219: OUTPUT«[:a(1)]<>␤{}<>␤[]<>␤{:a(1)}<>␤»
02:53 zostay for example ^^^
02:54 zostay s/copy/cope/
02:54 zostay anyway, definitely happy to entertain suggestions and patches
02:58 skids zostay: that might be a bug, I dunno.
03:01 zostay sure, but i find the difference between (:b) and :b to be equally subtle and confusing even when i grok what's happening
03:01 zostay => as a constructor has some really interesting power, but there were some things that were nice about it just being a magic comma
03:14 raiph joined #perl6
03:34 ShimmerFairy joined #perl6
03:50 raiph .tell masak jnthn, timtoady, froggs, on unbound names / interface consistency: https://gist.github.com/raiph/84050de6bb3decb69937
03:50 yoleaux raiph: I'll pass your message to masak.
03:51 atroxaper joined #perl6
04:10 dalek rakudo/nom: c8d1126 | (Nick Logan)++ | src/core/CompUnitRepo/Local/Installation.pm:
04:10 dalek rakudo/nom: remove parrot /bin wrapper creation
04:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c8d1126cd0
04:10 dalek rakudo/nom: b35c39f | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm:
04:10 dalek rakudo/nom: Merge pull request #453 from ugexe/patch-3
04:10 dalek rakudo/nom:
04:10 dalek rakudo/nom: remove parrot bin/ wrapper creation
04:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b35c39f33d
04:24 dayangkun joined #perl6
04:28 tinyblak joined #perl6
04:37 dayangkun joined #perl6
04:42 amurf joined #perl6
04:46 laouji joined #perl6
05:03 dalek star: 9e1b5fa | FROGGS++ | docs/announce/2015.06.md:
05:03 dalek star: unmention JVM, too many modules fail
05:03 dalek star: review: https://github.com/rakudo/star/commit/9e1b5fa077
05:06 kaare_ joined #perl6
05:18 vendethiel joined #perl6
05:20 aborazmeh joined #perl6
05:20 aborazmeh joined #perl6
05:20 aindilis joined #perl6
05:24 vendethiel joined #perl6
05:25 gfldex joined #perl6
05:25 laouji joined #perl6
05:31 quester joined #perl6
05:37 Alina-malina joined #perl6
05:41 atroxaper joined #perl6
05:43 atroxaper joined #perl6
05:46 Psyche^_ joined #perl6
06:07 |Tux| joined #perl6
06:09 diana_olhovik_ joined #perl6
06:14 vendethiel joined #perl6
06:22 [Sno] joined #perl6
06:30 masak morning, #perl6
06:30 yoleaux 03:50Z <raiph> masak: jnthn, timtoady, froggs, on unbound names / interface consistency: https://gist.github.com/raiph/84050de6bb3decb69937
06:31 * masak reads that gist
06:32 masak clearly relevant for #perl6: http://elm-lang.org/blog/compiler-errors-for-humans -- HN discussion: https://news.ycombinator.com/item?id=9805978
06:33 Firedancer left #perl6
06:33 masak "It is kind of shocking how much better things get when you focus on the user."
06:36 FROGGS joined #perl6
06:37 vendethiel joined #perl6
06:37 masak raiph: ok, both TimToady and FROGGS suggest throwing a warning in the backlog. I'm probably slow here, but isn't an implicit *%_ and then a warning kind of like inviting someone for dinner and then slapping them for taking food?
06:38 ShimmerFairy "color is a huge usability improvement." and yet their error messages look like walls of one color to me :P
06:39 masak raiph: I mean, if we're warning at the end, couldn't we just drop implicit *%_ altogether, and have the program die at bind-time instead?
06:39 FROGGS masak: warning about something is like deprecating that something.... I think I said that too in that context
06:39 masak right.
06:39 _mg_ joined #perl6
06:39 ShimmerFairy Good thing we have a deprecation warning setup, then :)
06:40 masak nonono
06:40 FROGGS masak: so *if* we warn, the implicit *%_ is just a thing that helps us to warn
06:40 masak *sigh*
06:40 masak I'm not getting through here.
06:40 FROGGS masak: and then we can think about removing the *%_ entirely
06:40 masak ok.
06:40 FROGGS but, I'm not sure either way
06:40 moritz masak: deprecation warnings are only for a transitional period
06:40 FROGGS I just see that *%_ seems to be confusing for some people
06:40 masak I think *%_ and then warning is literally the worst of all possible worlds. I hope we don't get stuck in that combination.
06:41 ShimmerFairy me too. *%_ should just not be there
06:41 masak implicit *%_ is a case of "ok, you thought about this carefully at the design stage. it just didn't end up being beneficial in the implementation."
06:42 moritz one could issue a deprecation warning when an implicit *%_ receives a value at run time
06:42 * ShimmerFairy always finds the "interface consistency" funny when you consider subs never had *%_
06:42 ShimmerFairy *argument
06:45 atweiden joined #perl6
06:48 FROGGS moritz: that was also what we (bartolin and me) were thinking
06:49 FROGGS like: "Gosh, we just dropped a named argument"
06:49 FROGGS though, I don't think this will work out that nicely
06:49 FROGGS we'll get false positives all over the place
06:50 masak false positives?
06:51 FROGGS we will warn too often
06:52 FROGGS like, you add another named arg to class A, and class B, which A inherits from, warns about that extra arg for methods that B does
06:52 FROGGS so you have to tell 'upstream' to change their code, which is crap
06:53 masak that's what interface consistency was meant to solve, no?
06:53 FROGGS exactly
06:53 masak "we can warn when people rely on the feature, but that will get in the way of people correctly relying on the feature"
06:54 masak why do I feel like there's no way to win in this scenario?
06:56 Ven joined #perl6
06:56 FROGGS I dunno, but I share that feeling
06:56 FROGGS 'guess we need a third option :o)
06:58 rindolf joined #perl6
06:58 atweiden hey guys, i am wondering if this is a gap in my knowledge or rakudobug
06:58 atweiden https://gist.github.com/atweiden/00aee14e2ed59471bb59
06:59 atweiden am trying to make copy of %wallet, then update the copy in place (%wllt). I use a scalar container explorer subroutine 'in_wallet' for this, then return the copy.
06:59 atweiden the subroutine 'in_wallet' appears to be updating both %wallet and the copy of %wallet (%wllt). i have tried passing %wallet 'is copy' with identical results
06:59 masak atweiden: yes, you're just copying the reference
06:59 masak that's generally true with objects
07:02 atweiden hmm, i assumed i would need to use ':=' to point to the original class's container for that
07:02 atweiden how should i pass %wallet as a copy only? 'is readonly'?
07:02 masak you need to make a new hash and put the entries from the old hash in the new hash
07:03 masak though an explicit .clone might work too
07:04 atweiden so does 'is copy' not work with objects?
07:04 masak basically not. it doesn't do what would be least-surprise.
07:05 atweiden eh, it makes some sense as i never instantiated a new wallet class.
07:06 masak bit tied up right npw
07:06 masak now*
07:06 masak might be able to help you more later
07:07 atweiden i think i have all the help i will need, it should be straight forward tyvm masak
07:10 salv0 joined #perl6
07:16 vendethiel joined #perl6
07:16 masak rest of channel: idiomatic way to clone a hash?
07:17 Ven joined #perl6
07:20 ShimmerFairy masak: my %newhash = gather for %oldhash { take $_ }    ?
07:21 abraxxa joined #perl6
07:21 darutoko joined #perl6
07:22 Ven o/, #perl6
07:22 masak ShimmerFairy: useless use of gather ;)
07:22 masak ShimmerFairy: that's just `my %newhash = %oldhash`, at least pre-GLR
07:22 masak Ven: \o
07:24 zakharyas joined #perl6
07:30 atweiden masak: appears to be working with for %wallet.kv -> $silo, $wallet { %wllt{::($silo)} = $wallet.clone; }
07:32 tinyblak joined #perl6
07:33 JimmyZ my $newhash = %oldhash.clone?
07:33 Psyche^ joined #perl6
07:33 JimmyZ %newhash
07:34 telex joined #perl6
07:35 steve_mc joined #perl6
07:40 Ven m: sub dynidx(@a, $n) { Proxy.new(FETCH => { @a[$n] }) }; my @a = 1, 2, 3; my $i = dynidx(@a, 1); say $i; @a[1] = 50; say $i;
07:40 camelia rakudo-moar b35c39: OUTPUT«2␤2␤»
07:40 Ven m: sub dynidx(@a, $n) { Proxy.new(FETCH => { @a[$n] }) }; my @a = 1, 2, 3; my $i := dynidx(@a, 1); say $i; @a[1] = 50; say $i;
07:40 camelia rakudo-moar b35c39: OUTPUT«2␤50␤»
07:40 * Ven is reading http://blogs.perl.org/users/david_mertens/2015/06/pdl-features-id-like-to-see-in-perl-6.html
07:42 g4 joined #perl6
07:43 RabidGravy joined #perl6
07:48 quester left #perl6
07:51 RabidGravy morning
07:52 masak \o
07:56 dayangkun joined #perl6
07:56 ShimmerFairy I found a bug:
07:56 ShimmerFairy my @a = 1,2,3; my @b = 2,3,4; my @c = 3,5,7; my $Z; for (@a; @b; @c) { say $_ }
07:56 ShimmerFairy m: my @a = 1,2,3; my @b = 2,3,4; my @c = 3,5,7; my $Z; for (@a; @b; @c) { say $_ }
07:56 camelia rakudo-moar b35c39: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QTu2xSaIiG␤Unsupported use of C-style "for (;;)" loop; in Perl 6 please use "loop (;;)"␤at /tmp/QTu2xSaIiG:1␤------> 3y @b = 2,3,4; my @c = 3,5,7; my $Z; for 7⏏5(@a; @b; @c) { say $_ }␤»
07:56 ShimmerFairy m: my @a = 1,2,3; my @b = 2,3,4; my @c = 3,5,7; my $Z; for (@a; @b) { say $_ }
07:56 camelia rakudo-moar b35c39: OUTPUT«1 2 3␤2 3 4␤»
07:57 masak notabug, methinks
07:57 ShimmerFairy How else should you compose a LoL in the for loop in this case? You can put a ; after @c as a workaround, at least
07:58 ShimmerFairy [@a; @b; @c], which would've been my guess for another way of doing it, doesn't actually work
07:59 domidumont joined #perl6
08:00 ShimmerFairy m: my @a = 1,2,3; my @b = 2,3,4; my @c = 3,5,7; my $Z; for ((@a; @b; @c)) { say $_ }
08:00 camelia rakudo-moar b35c39: OUTPUT«1 2 3␤2 3 4␤3 5 7␤»
08:00 ShimmerFairy ^ another workaround
08:00 atroxaper joined #perl6
08:04 domidumont joined #perl6
08:04 abraxxa1 joined #perl6
08:13 ShimmerFairy m: say "AAA" ~~ / $<letter>=(A)**3 /; say "AAA" ~~ / $<letter>=(A)**{3} /
08:13 camelia rakudo-moar b35c39: OUTPUT«「AAA」␤ letter => 「A」␤ letter => 「A」␤ letter => 「A」␤「AAA」␤ letter => 「AAA」␤»
08:14 ShimmerFairy What's with the different behavior here? In code, I'm using a dynamic variable, which demands the **{} form, though I want the result you get from bare ** (as well as from a simple + quantifier)
08:14 masak ShimmerFairy: that does look like a bug. please submit, kthx.
08:15 ShimmerFairy just for reference to another quantifier:
08:15 ShimmerFairy m: say "AAA" ~~ / $<letter>=(A)+ /;
08:15 camelia rakudo-moar b35c39: OUTPUT«「AAA」␤ letter => 「A」␤ letter => 「A」␤ letter => 「A」␤»
08:16 ShimmerFairy masak: OK, I wasn't sure if there was some hidden super-good reason for it :P
08:16 masak not that I'm aware
08:16 dakkar joined #perl6
08:20 amurf joined #perl6
08:21 Ven http://blog.travis-ci.com/2015-06-30-crystal-and-perl--join-travis-ci/ ooh, that's great to hear :)
08:22 ShimmerFairy masak: rakudobug'd :)
08:23 ShimmerFairy masak: btw, do you happen to know why   (thing)**$*VARIABLE    doesn't work, and you need the braces around $*VARIABLE?
08:24 Alina-malina joined #perl6
08:29 masak ShimmerFairy++
08:29 masak ShimmerFairy: historical raisins.
08:30 masak ShimmerFairy: `x ** y` used to also cover the semantic space that `x +% y` now covers. that is the `y` could be a string.
08:30 masak or a piece of regex.
08:30 jnthn morning, #perl6
08:30 masak the braces are there to catch some of these old thinkos.
08:31 masak not entirely sure it's still needed -- probably everyone has upgraded now.
08:31 masak jnthn: mornin'
08:32 Ulti /win 2
08:32 Ulti erk
08:33 jnthn .oO( /fail 2 )
08:34 ShimmerFairy masak: to be fair, **$*VAR looks like you're doing something suspicious, when out of context :P
08:35 masak ShimmerFairy: well, you should usually put in the spaces, unless you're constrained by :s
08:36 ShimmerFairy masak: for whatever reason, I don't typically put space between the quantifier and the information it uses (so atom+  atom*  atom?  atom**3)
08:41 laouji joined #perl6
08:44 CharellKing joined #perl6
08:45 RabidGravy today starts with more dicking around with a twenty year old P5 module
08:48 jnthn Damn, that's probably older than some people on this channel... :)
08:51 masak ShimmerFairy: I think the difference (for me) is that `**` is an infix operator, and so I tend to put in the spaces. not so for the three postfixes `+*?`
08:53 tinyblak joined #perl6
08:54 ShimmerFairy masak: fair enough, I think when I first learned of ** my mind simply saw it as another quantifier, and decided on the whitespace conventions to match :)
08:54 masak never too late to change ;)
08:54 masak it *is* another quantifier. just an infix one.
08:57 jnthn We don't really parse it as an infix, iirc.
08:59 masak in that case, the regex slang has to have special postfix parsing
08:59 masak well, it has to anyway
08:59 masak since you can `a +`
08:59 * masak .oO( it's a "postfix with benefits" )
09:02 RabidGravy |Tux|, you're an HP-UX type of guy aren't you? Got a minute to test Term::Cap to see if an injudicious merge has been un-done?
09:03 * masak .oO( "You're an HP-UX type of guy, aren't you? Find your perfect match here! [link]" )
09:04 |Tux| :)
09:04 |Tux| RabidGravy, do you want your own HP-UX account?
09:05 RabidGravy Oooooh
09:05 RabidGravy yeah that would be cool, I can banish this forever then ;-)
09:06 |Tux| see private dialog
09:09 jnthn m: my @a = [1,2],[3,4]; say @a[0;0]
09:09 camelia rakudo-moar b35c39: OUTPUT«1␤»
09:09 jnthn m: my @a = [1,2],[3,4]; my @x = 0,0; say @a[|@x]
09:09 camelia rakudo-moar b35c39: OUTPUT«5===SORRY!5=== Error while compiling /tmp/n8J7z8KgOo␤Arg-flattening | is only valid in an argument list␤at /tmp/n8J7z8KgOo:1␤------> 3 @a = [1,2],[3,4]; my @x = 0,0; say @a[|7⏏5@x]␤»
09:09 jnthn m: my @a = [1,2],[3,4]; my @x = 0,0; say @a[||@x]
09:09 camelia rakudo-moar b35c39: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/a8P4TFhoQw:1␤------> 3 @a = [1,2],[3,4]; my @x = 0,0; say @a[|7⏏5|@x]␤Arg-flattening | is only valid in an argument list␤at /tmp/a8P4TFhoQw:1␤------> 3@a = [1,…»
09:10 jnthn m: my @a = [1,2],[3,4]; my @x = 0,0; say postcircumfix:<[ ]>(@a, |@x)
09:10 camelia rakudo-moar b35c39: OUTPUT«0␤»
09:10 jnthn m: my @a = [1,2],[3,4]; my @x = 0,0; say postcircumfix:<[ ]>(@a, ||@x)
09:10 camelia rakudo-moar b35c39: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KdPkoouMHc␤Variable '&prefix:<|>' is not declared␤at /tmp/KdPkoouMHc:1␤------> 3 @x = 0,0; say postcircumfix:<[ ]>(@a, |7⏏5|@x)␤»
09:13 jnthn m: :x(3,3,3)
09:13 camelia rakudo-moar b35c39: ( no output )
09:13 jnthn m: :x(3,3,3).perl.say
09:13 camelia rakudo-moar b35c39: OUTPUT«:x($(3, 3, 3))␤»
09:13 jnthn m: :x(3;3;3).perl.say
09:13 camelia rakudo-moar b35c39: OUTPUT«:x((3; 3; 3).item)␤»
09:13 espadrine joined #perl6
09:18 sjn_phone joined #perl6
09:18 mr-foobar joined #perl6
09:26 jnthn .tell TimToady Was going through S09 in prep for working on multi-dim stuff and spotted various things that seem a little off or in need of review/decisions: https://gist.github.com/jnthn/fa6a9a3618ae322cb581
09:26 yoleaux jnthn: I'll pass your message to TimToady.
09:38 atroxaper joined #perl6
09:41 Ulti can I make an argument for .Bag on Str to be more like Str.comb.Bag?
09:42 Ulti kind of unlikely when someone calls bag on a string they meant a bag with nothing in apart from the string :/ not entirely sure when that would ever be useful?
09:43 Ulti m: say "hello".Bag
09:43 camelia rakudo-moar b35c39: OUTPUT«bag(hello)␤»
09:43 Ulti m: say "hello".comb.Bag
09:43 camelia rakudo-moar b35c39: OUTPUT«bag(l(2), e, h, o)␤»
09:45 sjn_phone_ joined #perl6
09:46 Ulti if you wanted a bag with just the string in you could still do bag("hello")
09:48 sjn_phone joined #perl6
09:48 smls joined #perl6
09:50 |Tux| joined #perl6
09:53 * smls would post a comment on run4flat's blog, but it looks like the login/comment system on blogs.perl.org is utterly borked... :(
09:54 DrForr I just posted something last night, it seemed to work.
09:55 smls strange
09:55 |Tux| joined #perl6
09:57 smls looks like I'm not the only one for whom it's broken: https://github.com/blogs-perl-org/blogs.perl.org/issues/294
09:58 atroxaper joined #perl6
10:04 abraxxa joined #perl6
10:06 RabidGravy |Tux|++ # he's the man with the HP-UX plan!
10:10 amurf joined #perl6
10:15 smls DrForr: Could you post a comment to http://blogs.perl.org/users/david_mertens/2015/06/pdl-features-id-like-to-see-in-perl-6.html for me, with a link to https://smls2.wordpress.com/2015/07/01/re-pdl-features-id-like-to-see-in-perl-6/ ?
10:16 DrForr Uh, not today :/ I guess this is the issue we're talking about.
10:16 smls heh
10:18 DrForr Even after logging in.
10:18 DrForr I don't know how much I can say about this, but I can tell you these issues are being worked on.
10:19 domidumont joined #perl6
10:20 domidumont joined #perl6
10:23 VinceDee joined #perl6
10:26 iH2O joined #perl6
10:26 tinyblak joined #perl6
10:30 iH2O left #perl6
10:32 Akagi201 joined #perl6
10:32 tinyblak joined #perl6
10:34 CharellKing joined #perl6
10:45 |Tux| joined #perl6
10:46 _mg_ joined #perl6
10:53 Ven joined #perl6
10:56 Ven_ joined #perl6
10:56 abraxxa joined #perl6
10:56 rindolf joined #perl6
10:58 RabidGravy joined #perl6
10:59 RabidGravy there
11:03 DrForr Nailed it?
11:03 DrForr (whatever 'it' is...)
11:03 RabidGravy nope, just rebooted laptop due to "new kernel"
11:04 DrForr linode+irssi+screen = never having to say /quit :)
11:04 RabidGravy I remember them olden days when it took the Linux kernel ten years to go from 1 to 2, it appears to have go 3 -> 4+ in less than a year
11:05 tinyblak joined #perl6
11:06 Alina-malina joined #perl6
11:10 spintronic joined #perl6
11:12 atroxaper joined #perl6
11:15 smls DrForr: I managed to post a comment on blogs.perl.org after all, by logging in via OpenID using "openid.stackexchange.com"
11:19 Ven joined #perl6
11:41 masak just throwing this out there, since I'm thinking about it currently: for something like `my {{{$new-identifier}}};` or `sub foo({{{$param}}})` to work inside a quasi, these unquotes need to be sure they are getting an AST of the right type. maybe unquotes should require their content to be statically typed?
11:51 Tux__ joined #perl6
11:55 ShimmerFairy masak: I think you caught this before, but I brought forth the idea that macros are "$thing generators", where $thing is a variety of things (variable, function, class, and so on), and if macros could maybe benefit from specifying what they generate.
11:55 ShimmerFairy I can certainly see unquotes benefiting from the same kind of thing, maybe.
11:56 masak I've yet to think of a case where it's absolutely necessary. the crucial thing is, of course, that the parser knows exactly what to expect next after it's parsed an unquote.
11:57 masak maybe something like `sub foo({{{$param}}})` vs `sub foo({{{$paramlist}}})`
11:57 masak in the former case, it's ok to insert a comma after the unquote. in the latter case not.
11:58 ShimmerFairy How would the parser usually differentiate the two? Or is that an example of something that can only happen in macroland?
11:58 masak it's an example of something that can only happen with unquotes
11:58 masak because usually the parser has all of the program text available at parse time, without holes
11:59 masak but quasis say "here, parse these known things. ignore the holes for now." which is fine, but the parser needs to be sure what "parsing state" it's in at all times, especially after an unquote.
12:00 ShimmerFairy Hmm... how difficult would it be to twist this around, so instead of "how can the parser know what to get next?", it's "what can the parser allow here?", and then the fault lies with the unquoted thing instead of the surrounding text.
12:00 masak oh, sure.
12:01 masak my point is that there can be *no* ambiguity about the parser state. and I'm not sure that's acheivable without requiring that the (Qtree) type of the thing in the unquotes be statically known, at least in some cases.
12:02 RabidGravy joined #perl6
12:02 RabidGravy now that was somewhat of an unscheduled reboot
12:02 CharellKing left #perl6
12:02 masak TimToady++ keeps reminding us that the parser must always know what language it's parsing. this falls under that. the parser is not allowed to be in an ambiguous state.
12:04 iH2O joined #perl6
12:04 ShimmerFairy I'm fine with macros being a bit more static than the rest of Perl 6, if that turns out to be the better solution. (In fact, my earlier suggestion about specifying the macro's "type" probably stems from thinking in too much of C++-ish way :P)
12:05 masak this whole line of thinking stems from me starting to think seriously about unquotes in non-EXPR positions.
12:05 iH2O I have the latest Rakudo Moar untared in /root/.perl6/2015.06 and was trying to compile it with this as usual:
12:05 masak which we'll probably see implemented in 007 before Rakudo.
12:05 ShimmerFairy .oO(  sub foo({{{paramlist}{$stuff}}})  , to make the triple-braces even worse)
12:05 iH2O perl Configure.pl --backend=moar --gen-moar
12:05 iH2O make
12:05 iH2O make install
12:05 iH2O make rakudo-test
12:05 iH2O but "make" fails :( http://pastebin.com/4f3z3P98
12:05 masak ShimmerFairy: ick. no. :)
12:06 masak ShimmerFairy: took me a while to even parse that in my head.
12:06 masak iH2O: looking.
12:07 ShimmerFairy masak: Suddenly my mind is trying to analogize an english workbook sort of thing, where you have example sentences with blank lines where you need to fill in the right thing. I wonder how helpful that framing could be (probably not very)
12:07 masak iH2O: huh. curious.
12:07 masak iH2O: all I can say so far is "it shouldn't fail like that".
12:07 iH2O I should say I have an old distro
12:08 masak shouldn't matter, really.
12:08 iH2O all previous Rakudo versions compiled fine on my distro
12:08 jnthn That's an odd place to fail too...I mean, it almost got right to the end...
12:08 cognominal joined #perl6
12:09 jnthn iH2O: Could you try running the last step manually, but add the option "--ll-exception"?
12:09 masak jnthn++ # helping iH2O
12:09 iH2O yes, I'll be back...
12:09 iH2O I have to reboot...
12:12 ShimmerFairy masak: I want to say you could maybe check the type of the expression appropriately, like making sure $thing in {{{$thing}}} is of type QParamList, before moving on in parsing. But depending on how complex expressions can get in unquotes, that might not be feasible.
12:13 masak ShimmerFairy: onus is on the macro author not to make the expression in the unquote so complex as to be uncheckable.
12:13 masak ShimmerFairy: like, maybe we only allow a single (statically typed) variable.
12:13 masak which is not really a limitation because you can still initialize that variable however you want.
12:14 ShimmerFairy masak: I think moving all the work outside of the quasi would be good practice regardless
12:15 masak right; keep the unquotes small.
12:15 masak maybe we could even mandate that on the parse level. an unquote has to look like {{{$foo}}}
12:15 masak (for any variable $foo)
12:16 ShimmerFairy I don't know if you want to allow other sigils and twigils too :)
12:16 domidumont joined #perl6
12:17 ShimmerFairy masak: would checking the .WHAT of the variable (however that's actually done in the parsing) allow for more freedom than just static typing, or would that not be a considerable improvement on what you can do?
12:17 masak the only optional I can think of that makes sense is sigilless (backslash variables and constants)
12:18 masak but hey, if someone can make it work with @foo or &foo (and can get past the type checking), then be my guest.
12:18 masak like, maybe @params makes sense for a paramlist
12:19 RabidGravy computer really not happy with this heat, may have to get some active cooling going
12:19 ShimmerFairy masak: I'm thinking $var, @var[index-not-slice], %var{key} should be allowed, if the parser is super-strict about the syntax. And maaaaaaybe {{{@foo}}} -> {{{@foo[0]}}}{{{@foo[1]}}}...
12:19 masak ShimmerFairy: recall that "checking the .WHAT" happens at runtime, long after the parse. so that's a no-go.
12:19 ShimmerFairy ah, so there's no .WHAT-like info available at parse time then? Darn, I guess I'll have to live static typing, such a tragedy. :P
12:20 jnthn masak: The alternative I guess is a syntax that makes people spell out the grammatical category if it's not a term.
12:21 ShimmerFairy masak: I also realized, depending on how you name the QTree types, our macros might be mistaken for Qt Code :)  .oO(my QFunction $foo; ...)
12:21 masak ShimmerFairy: you're right, we can't disallow indexing. that's too useful.
12:21 masak ShimmerFairy: fortunately, array/hash elements can be easily type-declared too :>
12:21 jnthn {{{|postfix| $foo}}}
12:21 ShimmerFairy masak: basically, "what does qq// allow for interpolation without requiring braces" is my line of thought
12:22 masak jnthn: right. TimToady++ has been playing around with such ideas.
12:22 ShimmerFairy jnthn: I came up with {{{postfix}{$foo}}} >:)
12:22 masak ShimmerFairy: the Qtree types will end up having names like Q::Given
12:22 jnthn I can see how to get that idea to work with the grammar...
12:22 jnthn More easily than the type one
12:22 ShimmerFairy Alternatively, since everybody wants the colon:     {{{postfix: $foo}}}
12:22 masak jnthn: ok, good to know.
12:23 masak ShimmerFairy: nice
12:23 masak ShimmerFairy: now if we could only get rid of the {{{ }}} :)
12:23 jnthn Because we could actually register a postfix in the LTM-er that has {{{postfix} as the LTM prefix.
12:23 masak I've been thinking about stealing backticks
12:23 ShimmerFairy masak: it would provide nice symmetry with  sub postfix:<stuff>  , incidentally
12:23 masak `postfix $foo`
12:23 ShimmerFairy (well, kinda-symmetry)
12:24 masak and maybe 'expr' should be the default: `expr $bar` same as `$bar`
12:24 AlexDaniel joined #perl6
12:24 jnthn And if we can get the syntax to just be an extra entry into the token table, or at least give it a fixed prefix that will be, then it's not too hard.
12:24 masak or maybe the default should depend on the parsing context.
12:24 jnthn Hm, I'd thought term would be the default :)
12:25 ShimmerFairy masak: I like the use of backticks. I think inserting code in place of text is nicely similar to the shell's "command in place of arguments" :)
12:25 masak ShimmerFairy: there's no .WHAT-like info available at parse-time. and I think I can convince you of that quite easily.
12:25 jnthn (Since term is a grammatical category, and EXPR ain't)
12:25 masak m: for "OH HAI", 42 -> $x { say "In the case of '$x', the type is $x.^name()" }
12:25 camelia rakudo-moar b35c39: OUTPUT«In the case of 'OH HAI', the type is Str␤In the case of '42', the type is Int␤»
12:25 ShimmerFairy .oO( sub expr:<TIMTOWTDI>() { }; )
12:26 masak ShimmerFairy: look at the above eval. at *parse time*, we know nothing about $x.WHAT
12:26 Woodi joined #perl6
12:26 masak ShimmerFairy: at runtime, the qq string gets built twice, with totally different types of $x
12:26 masak ShimmerFairy: same deal with quasi blocks. they get built at runtime, at the site of the quasi statement.
12:26 ShimmerFairy masak: yeah, absolute best the parser could do would be any(Str|Int) , I'd think.
12:27 masak ShimmerFairy: that will not happen.
12:27 masak ShimmerFairy: and, fair enough, what I looped over was really @xs
12:27 masak ShimmerFairy: which I got as a parameter and know nothing about
12:28 ShimmerFairy of course not, I'm just saying if the parser decided to go out of its way to figure out $x, it'd see from there that "sometimes it's a Str, sometimes an Int" when parsing the opening part of the for loop
12:28 masak that kind of type inference is uncharacteristic of Perl 6
12:28 masak was my point
12:29 ShimmerFairy Got it.
12:33 ShimmerFairy I think something like `infix:$operator` would be a nice alternative to those ugly braces :)
12:33 ShimmerFairy .oO(or maybe ☃infix:$operator☄)
12:35 masak you like the colon there? did you see my proposed `infix $operator` ? it's a bit less cluttered and just as clear semantically.
12:35 jnthn .u ☃
12:35 yoleaux U+2603 SNOWMAN [So] (☃)
12:35 ShimmerFairy yeah, b-but... everybody wants the colon! (in reality, I'm fine either way)
12:35 jnthn hah
12:36 jnthn But where's the comet terminator? :P
12:36 ShimmerFairy jnthn: I don't know about you, but I'll never forget snowman-comet
12:36 ShimmerFairy jnthn: it's there, keep looking :P
12:36 tadzik I'll never forget double bacon bug :)
12:36 jnthn oh, so it it is!
12:37 ShimmerFairy And then `` would obviously be the Texas version of ☃☄ :P
12:37 ShimmerFairy tadzik: I'm not familiar with that one
12:38 tadzik ShimmerFairy: when creating a list in compile time, it would duplicate the elements you initialized it with
12:38 tadzik so Array.new("bacon") would contain <bacon bacon>
12:38 ShimmerFairy ah
12:38 tadzik oh, that was a fun project :)
12:42 masak what the bacon duplication project? :P
12:42 masak s/what/what,/
12:42 tadzik at some point :)
12:43 tadzik "Hey, you ever gonna run out of bacon?" "No. Because I work at ze bacon duplication project"
12:43 masak when you're an evil overlord, you have to use "ze" like that instead of "the"
12:44 tadzik Or a muffin thug: https://www.youtube.com/watch?v=3PxCFRgXl6M
12:45 ShimmerFairy "Too bad, I vas gonna offer you zome bacon von my bacon triplication project."
12:46 masak saying "von" is extra evil.
12:47 masak open question: what are all the distinct "parsing modes" in Perl 6 that an unquote can legally appear in?
12:49 ShimmerFairy I think the easiest part of that question would be all the languages on the braid; the main language, regex, Q, ...
12:49 jnthn masak: I'd start out with the various grammatical categories in the grammar...
12:50 jnthn (And then see what's missing.)
12:51 masak ShimmerFairy: let's limit ourselves to the main language for now.
12:52 masak ShimmerFairy: regexes are too different. and not all that critical to get working with unquotes.
12:54 ShimmerFairy fair enough, I think regexes are sufficiently powerful as it is :)  (I wonder if you could argue that inserting code snippets in regex can accomplish a lot of what macros are trying to do for the main language)
12:55 MueThoS joined #perl6
12:56 iH2O joined #perl6
12:57 masak ShimmerFairy: and Q basically falls into 'constant string' and 'main slang'
12:57 iH2O jnthn: can you be more specific how I have to give the option --ll-exception because I get only the message "unknown option"
12:58 masak ShimmerFairy: no, it's not possible to argue that. that's an (understandable) mixing-up of levels.
12:58 masak ShimmerFairy: if that were true, then inserting code snippets into orginary code could also accomplish a lot of what macros are trying to do.
13:00 jnthn iH2O: Change into the rakudo build directory and then
13:00 jnthn ./perl6-m --ll-exception --target=mbc --output=lib/NativeCall.pm.moarvm -Ilib lib/NativeCall.pm
13:00 iH2O I'll be back...
13:01 Dee22 joined #perl6
13:01 masak the suspense!
13:01 muraiki joined #perl6
13:01 jnthn Hasta la vista!
13:06 DrForr .seen niner
13:06 yoleaux I haven't seen niner around.
13:06 DrForr .seen tadzik
13:06 yoleaux I saw tadzik 12:44Z in #perl6: <tadzik> Or a muffin thug: https://www.youtube.com/watch?v=3PxCFRgXl6M
13:06 masak .seen nine
13:06 yoleaux I saw nine 29 Jun 2015 19:47Z in #perl6: <nine> Is there a way besides panda to install a module?
13:06 tadzik DrForr: I'm here
13:07 DrForr It was more of an Inline-Perl5 question, I thought you might've shared nicks.
13:07 tadzik :)
13:08 Woodi hallo today :)
13:09 Woodi maybe  s/{{{...}}}/macro(...);/  ?
13:09 masak Woodi: I'm sorry, but the keyword `macro` is taken by something that actually makes sense to call "macro".
13:09 Woodi masak: oops ? {{{...}}} is not macro ??
13:10 masak indeed not.
13:10 Woodi so what it is ? :)
13:10 masak it's a hole in the code, usually referred to as an "unquote".
13:11 Woodi ah right, template...
13:12 masak but disregarding the choice of name, having some kind of function-call syntax `unquote(...)` would probably work.
13:12 masak maybe &unquote could even be (internally) specified as a macro. :>
13:12 masak there's a certain pleasant metacircularity about that idea.
13:12 Woodi also: can we postpone 6.0.0 to 2016.12 ?  # first! one more year of fun !
13:13 atroxaper joined #perl6
13:13 Woodi there could be many reasons...
13:13 Woodi documentation, "extended beta"...
13:14 Woodi and, of course, making things official will change mood...
13:14 masak Rakudo Star was first released in 2010. I'd say that's a fairly extended beta.
13:14 masak but I can understand the sentiment of wanting to keep us in beta longer :)
13:14 Woodi but I'm not familiar how things are realy matured...
13:15 masak and yet you keep making suggestions as if you were
13:15 masak funny, that
13:15 RabidGravy I started work on Term::Cap on 23/03 and put it aside as I chose to tackle some easier things, it seems quite easy now
13:15 Woodi masak: it's not 0,1; I know something :)
13:16 gtodd joined #perl6
13:16 masak [citation needed]
13:16 Akagi201 joined #perl6
13:18 Akagi201_ joined #perl6
13:21 masak Woodi: I'm sorry. did not mean to be snarky. and I do not want to encourage elitism and haughtiness.
13:22 Woodi there was also discusion about quotemeta - it is like tr/// but not replaces but inserts chars. so maybe ti(%pairs, $string). then: use Quotes; ...; tiSQL($string);
13:22 masak Woodi: I don't think a postponement to 2016 is going to happen. things seem to be on track for Christmas 2015.
13:22 Woodi masak: no wory :)
13:22 * masak .oO( be hapy )
13:23 Woodi right :)
13:24 masak Woodi: I'm hoping we'll see SQL slangs where (injection-)safe string insertion is the default.
13:25 masak ditto HTML/XML
13:26 Sqirrel joined #perl6
13:28 sqirrel_ joined #perl6
13:29 Woodi m: grammar G { rule TOP { 'd' \d }; }; my @r = "abddad2d31c" ~~ m:g/ <G> /;  # we have something like that ?
13:29 camelia rakudo-moar b35c39: OUTPUT«Method 'G' not found for invocant of class 'Cursor'␤  in block <unit> at /tmp/eDHN3Mjszu:1␤␤»
13:29 jnthn If you call it G::TOP it probably works out
13:30 masak m: grammar G { rule TOP { 'd' \d }; }; my @r = "abddad2d31c" ~~ m:g/ <G::TOP> /
13:30 camelia rakudo-moar b35c39: ( no output )
13:30 masak m: grammar G { rule TOP { 'd' \d }; }; my @r = "abddad2d31c" ~~ m:g/ <G::TOP> /; say @r.perl
13:30 camelia rakudo-moar b35c39: OUTPUT«[]<>␤»
13:30 masak \o/
13:30 Woodi empty...
13:31 masak I know how to make it work with .comb
13:31 masak never got that m:g thing to do what I want
13:31 nys joined #perl6
13:32 Woodi I look for some grep like thing that return Match objects. and same thing that can be used in for loop..
13:32 jnthn m: grammar G { rule TOP { 'd' \d }; }; say "abddad2d31c".match(/ <G::TOP> /, :g).say
13:32 camelia rakudo-moar b35c39: OUTPUT«␤True␤»
13:32 jnthn hm
13:32 jnthn Ohh...
13:33 jnthn You used rule
13:33 jnthn token.
13:33 masak m: grammar G { token TOP { 'd' \d }; }; my @r = "abddad2d31c" ~~ m:g/ <G::TOP> /; say @r.perl
13:33 camelia rakudo-moar b35c39: OUTPUT«[Match.new(ast => Any, list => (), hash => EnumMap.new("G::TOP" => Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abddad2d31c", to => 7, from => 5)), orig => "abddad2d31c", to => 7, from => 5), Match.new(ast => Any, list => (), hash => E…»
13:34 masak \o/
13:34 masak oh, and there's EnumMap, winner of "Most Wrongly Named Type"
13:35 jnthn What do you want it to be called? :)
13:35 Woodi thanx, now I can parse game config files :)
13:35 masak anything else. FrozenHash. FrozenMap. ImmutableHash. Can'tTouchThis.
13:35 masak ElsaTheIceQueen.
13:36 masak then if we ever want a map for enums, we'll have that name free! :D
13:36 jnthn I'm not sure all of those are better :P
13:36 masak I'm not sure they are worse :P
13:36 jnthn The last suggestion is at least cool...
13:36 masak more than cool
13:38 masak is there a single German word that captures the feeling of an inheritance hierarchy being so deep that you need an IDE just to manage it? :)
13:38 moritz vererbungsüberwätigt (adj.)
13:39 moritz vererbungsüberwältigt (adj.)
13:39 timotimo +1
13:40 masak "inheritance overwhelming"?
13:40 moritz overwhelmed
13:40 moritz not overwhelming
13:40 masak oh, ok.
13:40 masak yeah, sounds like the word I was looking for.
13:40 * masak tweets
13:40 Woodi so 2017 then ?
13:41 jnthn masak: I think the single English word for it is "enterprisey" :P
13:42 masak Woodi: worst thing is, I have no idea whether you're serious or just trolling. :P
13:44 _mg_ joined #perl6
13:47 amurf joined #perl6
13:50 JimmyZ_ joined #perl6
14:02 iH2O joined #perl6
14:03 iH2O jnthn: http://pastebin.com/e3tb7FbB
14:06 gtodd joined #perl6
14:06 aborazmeh joined #perl6
14:06 aborazmeh joined #perl6
14:14 RabidGravy I don't think it should be released until someone asks why there isn't a mailling list manager written in it
14:15 novice-273K joined #perl6
14:16 jnthn iH2O: Is your install directory a place you've installed a Rakudo before?
14:16 jnthn Hm, looks like it shouldn't be...
14:17 jnthn It seems to be exploding while trying to read some MANIFEST file describing installed modules...
14:18 novice-273K what is the object $¢ ?
14:18 timotimo it's the cursor object
14:18 timotimo i think it's short for $/.CURSOR
14:18 RabidGravy m: say $¢.WHAT
14:18 camelia rakudo-moar b35c39: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ABH1sUVTfQ␤Name must begin with alphabetic character␤at /tmp/ABH1sUVTfQ:1␤------> 3say $7⏏5¢.WHAT␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        stateme…»
14:18 _mg_ joined #perl6
14:19 timotimo you may be using the wrong kind of ¢
14:19 timotimo and it may only be available in nqp?
14:20 jnthn It's only available in the scope of a regex/rule/token
14:20 jnthn And yes, it's current Cursor
14:20 iH2O jnthn:not really, my PATH variable didn't reference the rakudo ~/.perl6 tree I checked that before
14:20 jnthn iH2O: It's not so much about your PATH, but the places listed in the output of running -e "say @*INC"
14:21 RabidGravy I can't actually see what kind of ¢ it is, looks kinda like a euro cent symbol but who knows
14:21 jnthn I've no idea how you'd have ended up with anything invalid in such a file, however
14:21 timotimo i think i once managed to get the wrong kind of ¢ inputted
14:21 timotimo but with having NFG by now that's probably not possible any more
14:23 iH2O jnthn: let me check the output of  "say @*INC" from the previous working rakudo version...
14:24 iH2O brb
14:24 iH2O quit
14:24 gtodd joined #perl6
14:25 JimmyZ_ No such method 'ast' for invocant of type 'Any'
14:25 JimmyZ_ # I had seen it before, but I dont know how it disappeared.
14:25 timotimo that's our great error message for "couldn't parse the json, sorry"
14:25 masak really? :/
14:25 timotimo we could improve the error output for the built-in "from-json"
14:26 moritz JSON::Tiny has a better error message
14:26 timotimo yup
14:26 moritz come to the dark side, we have UX
14:26 masak there's a "from-json" that's not in JSON::Tiny?
14:26 timotimo that's a 2015.06 perl6 ... don't we read from a serialized blob nowadays?
14:27 timotimo we require(d?) json parsing so early, that installing a module wasn't an option
14:27 timotimo m: say to-json(["hi", {:foo, :bar}])
14:27 camelia rakudo-moar b35c39: OUTPUT«[␤  "hi",␤  {␤    "bar" : true,␤    "foo" : true␤  }␤]␤»
14:27 timotimo so we have this, too
14:28 tinyblak joined #perl6
14:28 * masak gets a p5 "core modules" déjà vu
14:29 ShimmerFairy That feels like a really weird thing to have exposed in perl6 core, without so much as a use statement.
14:29 atroxaper joined #perl6
14:30 timotimo yes, it is kinda weird
14:30 timotimo i'm investigating
14:30 masak ooc, what was it that required to-json and from-json?
14:30 timotimo we could hide it away into DO-NOT-LOOK-HERE::
14:31 [Coke] I think it was the modules db.
14:31 timotimo i think so, too ... but that's no longer json nowadays
14:31 masak was gonna say. the need is gone.
14:31 jnthn Oddly though...there's a from-json in the current code?
14:31 jnthn So yeah, I'm confused too
14:32 timotimo ah, we use that to read a manifest file
14:33 masak anything we can do about that? do we have to?
14:33 timotimo not 100% sure
14:33 timotimo i don't know yet where that manifest file is written during the make step
14:34 ShimmerFairy If it _had_ to be somewhere, I'd much prefer nqp::from-json() (though I realize the possibility that may not be easy)
14:35 timotimo that's actually doable by just throwing the implementation into the QASTOperationsMAST/*JAST and exposing it like that
14:53 ilbot3 joined #perl6
14:53 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
14:53 alcaveman joined #perl6
14:53 frew joined #perl6
14:53 ingy joined #perl6
14:53 JimmyZ joined #perl6
14:54 dakkar joined #perl6
14:55 gtodd1 joined #perl6
14:57 uncleyear joined #perl6
14:59 * Woodi is 100% troll free. that is, negative ones
14:59 masak glad to hear it :)
15:00 dakkar joined #perl6
15:01 gtodd joined #perl6
15:04 isacloud joined #perl6
15:05 chansen_ joined #perl6
15:07 vendethiel joined #perl6
15:08 sivoais joined #perl6
15:09 robinsmidsrod joined #perl6
15:10 iH2O joined #perl6
15:12 iH2O jnthn: I removed the 2015.06 version and put back 2015.03 The output of perl6 -e 'say @*INC' is
15:12 iH2O file:/root/.perl6/2015.03/install/languages/perl6/lib inst:/root/.perl6/2015.03/install/languages/perl6 inst:/root/.perl6/2015.03/install/languages/perl6/site
15:12 iH2O (the file:.. above is not a link to click on)
15:13 timotimo that's correct; the prefix used to have a :, now it has a #
15:14 iH2O wise change :-P
15:16 [Coke] Bug in rakudo star. "make rakudo-spectest", gives:
15:16 [Coke] cd rakudo && /Applications/Xcode.app/Contents/Developer/usr/bin/make spectest
15:16 [Coke] cd t/spec && git pull
15:16 [Coke] fatal: Not a git repository (or any of the parent directories): .git
15:16 [Coke] make[1]: [spectest_update] Error 128 (ignored)
15:16 [Coke] I thought we disabled the git check in R* somehow.
15:17 khw joined #perl6
15:19 [Coke] make modules-test failed horribly for me.
15:20 [Coke] Lots of, e.g.: Testing modules/doc with /tmp/rakadak/bin/perl6-m...
15:20 [Coke] Could not execute (/tmp/rakadak/bin/perl6-m t/pod-convenience.t): open3: exec of /tmp/rakadak/bin/perl6-m t/pod-convenience.t failed at /opt/local/lib/perl5/5.16.3/TAP/Parser/Iterator/Process.pm line 168.
15:21 [Coke] (required make install first)
15:22 [Coke] perl6-lwp-simple tests hang on t/socket-sanity.t on OS X behind a firewall/proxy. (many other tests in that module just fail)
15:23 [Coke] So, mostly ok, though. FROGGS++
15:24 captain-adequate joined #perl6
15:28 rarara joined #perl6
15:40 sjn_phone joined #perl6
15:41 ugexe http://blog.travis-ci.com/2015-06-30-crystal-and-perl--join-travis-ci/
15:42 domidumont joined #perl6
15:42 timotimo if i wasn't so strongly on the "make startup faster" team, i'd suggest we throw out file# and inst# and try to auto-detect
15:44 lizmat that was the whole point of making @*INC entries Str again
15:44 lizmat fwiw, I'm not too happy with file# either, open to suggestions as alway
15:44 lizmat s
15:45 japhb OK, I *think* I managed to pick up most of the unquote discussion in the backlog.  Short thoughts:  I like `...` for the unquote markers.  I like unquotes specifying the grammatical category they fill, e.g. `postfix:...` or `postfix ...`.  I would like to "interpolate" several items, e.g. several params into a paramlist, without starting or ending the paramlist.
15:45 timotimo hmm
15:46 japhb I would like to also unquote something "unbalanced", like starting a paramlist but not ending it, or vice versa.
15:47 japhb So perhaps `starting_category|unquote_expr|ending_category` sort of thing, where the first and third are optional and DWIM.
15:47 TimToady so some ideas like | and slip, applied at that level
15:47 yoleaux 09:26Z <jnthn> TimToady: Was going through S09 in prep for working on multi-dim stuff and spotted various things that seem a little off or in need of review/decisions: https://gist.github.com/jnthn/fa6a9a3618ae322cb581
15:47 japhb TimToady: Yes, that.
15:48 [Coke] would it make sense to replace file#foo with a pair of type-enum and value?
15:48 [Coke] (rather than have another mini-language to parse)
15:49 japhb [Coke]: I've wondered why we didn't already to that, but I assumed there was some serialized-form round-tripping needed that I hadn't thought enough about.
15:50 lizmat [Coke]: not sure what you're getting at, could you elaborate?
15:50 lizmat something like file => foo ?
15:51 sergot hi #perl6 o/
15:51 sergot I have a question
15:51 sergot :)
15:51 tadzik shoot :)
15:52 sergot What arguments would you use to convince people to use perl6? :)
15:52 tadzik I see where this is going :)
15:52 sergot I mean, what are the coolest features
15:52 sergot tadzik: I try to gather some information :))
15:53 tadzik right :)
15:53 sergot Grammars are awesome for exaplme
15:53 sergot what else? :)
15:54 iH2O left #perl6
15:57 diana_olhovik joined #perl6
16:00 tinyblak joined #perl6
16:00 RabidGravy sergot, in no particular order, nice concurrency model, clean object model. easy extensibility
16:01 RabidGravy for me anyway
16:02 [Coke] lizmat: yes, file=>$name vs. "file#$name". no clue if it would make things easier/faster/whatever, but special strings make me sad.
16:02 VinceDee joined #perl6
16:03 lizmat [Coke]: have you considered things like 'PERL6LIB=file => foo perl6 program'
16:04 [Coke] nope.
16:04 [Coke] I can see where that'd be painful.
16:04 [Coke] but our interface to INC from env vars doesn't have to equal what we use internally, either.
16:04 [Coke] but that's also painful.
16:05 lizmat yes, it's a world of pain, well, sort of  :-)
16:10 Ven joined #perl6
16:12 spider-mario joined #perl6
16:15 ShimmerFairy joined #perl6
16:17 skids joined #perl6
16:18 dalek rakudo/nom: bcc6128 | lizmat++ | src/core/Variable.pm:
16:18 dalek rakudo/nom: Handle Mu and Nil better
16:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bcc612834b
16:20 uncleyea1 joined #perl6
16:21 flussence m: say 0.base(2)
16:21 camelia rakudo-moar 6bc26a: OUTPUT«0␤»
16:21 flussence hm, my local build is returning '' there
16:21 ugexe sergot: the receptive and easily accessible developers :)
16:22 * TimToady hides behind a bananaphone
16:24 dalek roast: ae33205 | lizmat++ | S02-types/WHICH.t:
16:24 dalek roast: Add X::Parameter::Default::TypeCheck class
16:24 dalek roast: review: https://github.com/perl6/roast/commit/ae33205759
16:24 dalek roast: 3e73c1e | lizmat++ | / (2 files):
16:24 dalek roast: Add/Adapt is default() compile-time checks tests
16:24 dalek roast: review: https://github.com/perl6/roast/commit/3e73c1e6be
16:29 TimToady there's something that's been bothering me about exception names like X::Parameter::Default::TypeCheck
16:29 TimToady the reason we use typed exceptions is so that we can say 'when X::Syntax'
16:30 TimToady but we have here all this specificity like X::Parameter::Default which is merely a package name, not actually part of the isa chain
16:31 TimToady so is pretty useless for smartmatching
16:31 lizmat so what isa tress are you thinking about then?
16:31 TimToady so the question arises, why are we using nested package spaces when hyphens would do just as well
16:31 lizmat X::Comp / X::Syntax / ...
16:32 Ven joined #perl6
16:32 lizmat *trees
16:33 TimToady or CamelCase, like X::ParameterDefaultTypecheck
16:33 TimToady what does the :: buy us?
16:33 lizmat not a lot
16:33 lizmat and then mix in roles like "X::Syntax" for smartmatching ?
16:34 TimToady well, maybe we should be making the longer ones derive from their prefixes in general
16:36 TimToady anyway, don't have the answer, but just wanted to point out something that was bugging me subconsciously for a while
16:36 gtodd joined #perl6
16:37 TimToady typed exceptions are designed for isa typematching, and then we basically throw that away
16:37 japhb TimToady++  # Making the subconscious conscious since ... wait, how long have you been designing now?
16:38 lizmat TimToady: yeah, got that
16:38 lizmat also what is bugging me: $ ack 'die\ ' src/core | wc -l
16:38 lizmat 103
16:39 TimToady what bugs you about that, if it's throwing an exception object?
16:39 lizmat you cannot typematch it ?
16:39 itz__ joined #perl6
16:39 lizmat well, other than X::AdHoc ?
16:40 [Coke] even our non adhoc exceptions are pretty ad hoc.
16:40 lizmat hehe
16:41 TimToady I guess those aren't throwing exception objects...where did I see die X::Stuff.new then?
16:44 TimToady I guess I was thinking of all the fails that return exception objects
16:44 TimToady actual throws tend to use, er, .throw for some reason
16:47 flussence something's not quite right here:
16:47 flussence > use nqp; say (nqp::base_I(0, 2), nqp::base_I(0, 3), nqp::base_I(1, 2)).perl
16:47 flussence ("", "0", "1")
16:51 dalek rakudo/nom: 5bfaaf4 | timotimo++ | src/Perl6/World.nqp:
16:51 dalek rakudo/nom: be even more tolerant in our failsafe error output
16:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5bfaaf405d
16:52 [Coke] masak, thought you might appreciate this:  -> (12:51) From prox [@work], to random: - "Don't ever estimate dumbasser
16:52 [Coke] y" -> (12:51) From prox [@work], to random: - "Don't ever UNDERestimate dumbasse
16:52 [Coke] ry"
16:54 timotimo with SPESH_NODELAY=1, i get the core setting parse to explode as soon as line 15
16:55 timotimo hmm. X::PseudoPackage::InDeclaration could potentially have something to do with dynamic vars going wrong somehow?
16:56 sergot ugexe++
16:56 sergot RabidGravy++
16:56 sergot thanks
17:04 flussence timotimo: I'm trying the spectest with that ooc, and all kinds of things exploding
17:04 timotimo yes, known ;(
17:04 timotimo it already explodes in the nqp tests
17:05 TimToady jnthn, masak: re parsing unquotes, it's not necessary to stick them into the LTM table, we merely have to make each protoregex capable of recognizing something that says "call this instead of any of the ordinary candidates"
17:05 vendethiel joined #perl6
17:05 TimToady an unquote is a basically a one-shot slang macro
17:06 TimToady so all we need is a unique escape that any protoregex can recognize in its standard LTMing
17:06 * TimToady has suggested ¤ in the past
17:06 gtodd joined #perl6
17:08 TimToady so ¤infix:($whatever)  or so would be adequate for proto infix to recognize it should insert $whatever and return
17:09 TimToady presumably feeding $whatever to the action routine for infix
17:10 TimToady which would then vet $whatever for well-formedness via any acceptable AST structure
17:11 TimToady reusable slang macros require more work, and should look like deriving a new language
17:11 TimToady the proposal there was a 'slang' declarator that knows to install methods or regexes into the named slang
17:13 TimToady or the current $~MAIN, by default
17:14 flussence timotimo: here's an interesting thing, almost all the tests that blow up during that run are fudged ones
17:15 timotimo huh?
17:15 timotimo fudged as in: "in a file that the fudger did something with" or "a todo'd test"?
17:16 flussence there's about 5 or 6 *.t files in the list of failures, among a hundred or so *.rakudo.moar ones
17:16 TimToady these slang rules/methods would be structured internally exactly like ordinary rules/methods, but you just 'make' the same sort of QTree/QAST that you'd return if it were simply an unquote
17:16 timotimo hm
17:16 timotimo aren't there just a whole lot more files in total that are fudged?
17:17 flussence maybe, it's just something odd that stood out to me
17:18 tinyblak joined #perl6
17:19 timotimo mhm
17:20 raiph joined #perl6
17:25 amurf joined #perl6
17:30 mr-foobar joined #perl6
17:36 _mg_ joined #perl6
17:40 atroxaper joined #perl6
17:41 timotimo somehow it seems like the invocation for "is_pseudo_package" breaks ... i can't see how it'd give "Callable is actually a pseudopackage!"
17:46 timotimo and when i put a say statement in is_pseudo_package it doesn't crash any more
17:51 nine Good evening!
17:51 yoleaux 30 Jun 2015 21:33Z <DrForr> nine: Silly point to make, but pragmas appear to not be run when declared as 'use utf8:from<Perl5>;' - I realize it's silly but something to think about.
17:52 timotimo hey nine
17:53 yqt joined #perl6
17:54 nine .tell DrForr Yes, use lib:from<Perl5> not working has bothered me for quite a while. It's tedious to have to resort to EVAL for that. I can't really see the point of use utf8:from<Perl5> though. use utf8 only tells perl that the source code is in utf-8. The only source that could affect is the one you give EVAL or run(). And if you do that you may as well include the use utf8; there.
17:54 yoleaux nine: I'll pass your message to DrForr.
17:57 DrForr Yes, I agree that it's somewhat pointless to use in perl6 code seeing as that's guaranteed UTF-8 clean, but I'm trying to come up with a way to migrate p5 code that won't involve steam coming out of my ears, and one notion I had was that being able to use that means that you can start by moving *all* use() blocks out of an EVAL block.
17:57 yoleaux 17:54Z <nine> DrForr: Yes, use lib:from<Perl5> not working has bothered me for quite a while. It's tedious to have to resort to EVAL for that. I can't really see the point of use utf8:from<Perl5> though. use utf8 only tells perl that the source code is in utf-8. The only source that could affect is the one you give EVAL or run(). And if you do that you may as well include the use utf8; there.
17:57 DrForr Ack. Not quite a botloop :)
17:58 DrForr I'm mainly looking at p5-p6 migration strategies, and Dancer2's test suite has soe interesting challenges.
17:59 nine Ok, that does indeed sound like a good use case. So the question remains: how do I actually recognize that the use'd thing is a pragma instead of a module?
17:59 nine I'd like to hear about those challenges. Maybe there's something I can do about them.
18:00 DrForr Well, the traditional way would be to assume that lower-case module names are pragmas, but we all know that's not necessarily the case.
18:01 DrForr What I'm more interested in solving is a different issue, though.
18:01 nine No. there are plenty modules out there, often ones which turn various pragmas on.
18:02 DrForr Sorry, what I meant is merely that I recognize that it can't be done by assuming lc($name) eq $name.
18:03 nine I was just agreeing in an elaborate way :)
18:03 DrForr Ah. got it.
18:03 DrForr That's actually not as interesting to me right now as something related.
18:04 DrForr Namely, I have a t/app.t in my proto-Dancer6 directory, and in there I have:
18:04 DrForr EVAL 'use Dancer2;':lang<perl5>;
18:05 DrForr (may not be quite the right synta, the point is I'm eval'ing 'use Dancer2' in the test directory.
18:05 DrForr s/$/)/
18:06 DrForr The problem is that the module (Dancer2) isn't installed, so I can't do 'use Dancer2:from<Perl5>;' as I can with other test modules that are installed.
18:07 DrForr So it'd be nice to be able to say something like 'use lib:from<Perl5> "t/";' so I can migrate all of the module names out of the EVAL block.
18:08 DrForr My thinking here is that it's easier later on to remove the ':from<Perl5>' bit with a sed pass, rather than having to edit files by hand.
18:08 PerlJam DrForr: You could use PERL5LIB, could you not?
18:09 DrForr Oh, from the command line, let me give that a try.
18:11 DrForr Seems to have no effect. With that I get the same "This appears to be Perl 5 code." error from the perl6 interpreter.
18:11 DrForr Let me throw this up on github first..
18:13 marchelzo_ joined #perl6
18:16 nine It seems like what's preventing use lib:from<Perl5> from working is Perl 6 itself. The Perl5ModuleLoader is not used in that case. It's silently ignored.
18:17 ][Sno][ joined #perl6
18:17 jnthn lizmat: ^^ sounds like something you may know the right place to fix :)
18:22 marchelzo_ how is perl6 coming along
18:22 DrForr I'm not sure if theres a workaround otherwise. Of course the :from<Perl5> and :lang<perl5> syntaxes are pretty much the same, but it irks me that a perfectly valid syntax doesn't work in that edge case.
18:22 DrForr marchelzo_: pretty well, I'd say.
18:23 jnthn DrForr: I suspect the "use lib:from<Perl5>;" can be made to work
18:23 jnthn I suspect we're delegating too late
18:23 marchelzo_ Is there a good estimate for when it will be stable?
18:23 DrForr Oh, I don't doubt it, I also suspect I can't fix it without much more work than is altogether practical. :)
18:23 nine jnthn: use lib is not even handled like all the other pragmas: elsif $name eq 'cur' {   # temporary, will become 'lib'
18:24 PerlJam marchelzo_: it's stable now as far as I'm concerned.
18:24 DrForr marchelzo_: The best way to find out is to try it :)
18:24 marchelzo_ PerlJam: Oh, sorry. I haven't been following it very closely.
18:24 marchelzo_ So the language is finished, but the implementation still needs work?
18:24 PerlJam marchelzo_: there's no such thing as "finished"  :)
18:25 jnthn DrForr: Yes, I suggested lizmat++ look at it as she knows that area of the code very well and may spot what's up faster than the rest of us ;)
18:25 DrForr Yeah, I have been following :) I'm just figuring out where that will lead next for migration.
18:25 marchelzo_ PerlJam: So there are still breaking changes being made to the language?
18:26 jnthn marchelzo_: In some areas, yes, though experience tells that sometimes, the implementation of something forces tweaks to the language design. :)
18:26 jnthn (that was in answer to "the language is finished"
18:26 jnthn )
18:26 DrForr marchelzo_: The odds are right now you won't run into an area that's in flux before 6.0rc1 comes out, let's put it that way :)
18:27 marchelzo_ Is there a good perl6 guide available for free?
18:28 PerlJam marchelzo_: doc.perl6.org  start there
18:28 PerlJam marchelzo_: or better ... http://perl6.org/documentation/
18:28 DrForr There's also learnxinyminutes.com/perl6 # I may have the wrong domain nae...
18:29 PerlJam marchelzo_: the second link I mentioned has a link to learnxinyminutes and a bunch of others
18:29 PerlJam huh.
18:29 marchelzo_ Yeah I saw. Thanks, this is good.
18:30 * PerlJam just noticed that the "Using Perl 6" book is stated as an "Onyx Neon Press book"
18:30 PerlJam (which I find a little weird since it has yet to be published :)
18:32 rickbike joined #perl6
18:35 DrForr That still sound like "You haven't decided on a name? What do you like? You? Good, put 'em together."
18:35 DrForr *sounds
18:42 TimToady well, the GLR is likely to break a few things yet, especially making [] not containerize itself
18:43 rickbike Where in perl6 docs can I find the 'for' syntax? I expected in "Control Flow" section.
18:43 TimToady S04:487
18:43 synbot6 Link: http://design.perl6.org/S04.html#line_487
18:46 marchelzo_ Reading through the learn X in Y minutes for perl 6... it's like they tried to take every feature from every language, plus some more, and fit it into perl 6.
18:47 nine marchelzo_: not every feature. Only the most useful.
18:47 moritz marchelzo_: and the amazing thing is that the result is still coherent
18:47 masak .u currency sign
18:47 yoleaux U+00A4 CURRENCY SIGN [Sc] (¤)
18:48 marchelzo_ I'll have to see that to believe it. I do enjoy most of the features in other languages, but I'm wondering if it might just be too much.
18:48 nine marchelzo_: then by all means you should just try out Perl 6 and see for yourself :)
18:48 masak TimToady: ¤infix:($whatever) and `infix $whatever` are functionally equivalent. but ` is on more people's keyboards than ¤ and also, it doesn't look butt-ugly.
18:49 marchelzo_ It seems there is a lot of "alternate syntax". The language doesn't seem opinionated at all.
18:49 masak and don't come telling me that it looking ugly and being hard to type are features, because I've heard it before and I don't agree. :)
18:49 masak to me, Huffman coding stops somewhere before you make life unpleasant and ugly for users.
18:59 [Coke] who nds hfmn nyw?
18:59 jnthn nt msk
18:59 masak rght
19:00 mst the trouble with doing that is that then later the vowels all escape at once:
19:00 mst AAAAAAAAAAAAAAAAAAAAAAAAAAAIIIIIIIIEEEEEEEEEE
19:00 moritz uou!
19:00 masak (usually they show up in Maori)
19:00 jnthn Wow, it's like crossing from Russia to Finland :P
19:01 nine That's odd. 'lib' really is no pragma in Rakudo but a plain module. Makes it more mysterious that use lib:from<Perl5> just doesn't work as it should
19:02 DrForr nine: Here's motivation. https://gist.github.com/drforr/11014c51d03ecea04fa6
19:03 DrForr With 'use lib;' and declaring the p6 subclass it gives me almost 1:1 translation between the existing p5 code and p6.
19:03 [ptc] .oO( dwn wth vwls! )
19:04 masak jnthn: is that why Russia and Finland are historically enemies? "gv s bck r vwls!" -- "ei ei ei!"
19:04 DrForr dd. ttlly dsmvwlng y.
19:06 [ptc] were they then disemvoweled?
19:06 DrForr And the test still would work after Dancer2::Core:App gets migrated to p6, 'cause the stub needs to do nothing.
19:07 ugexe FROGGS: Are shell/run expected to work with :merge at this time? On moar it outputs 'Aborted' when trying to access .lines/.get. JVM does not error, but only captures the stdout.
19:12 dha joined #perl6
19:13 raiph joined #perl6
19:15 yqt joined #perl6
19:17 zakharyas joined #perl6
19:23 dalek roast: b251b6f | usev6++ | S (2 files):
19:23 dalek roast: Change (and move) test for RT #98854
19:23 dalek roast: review: https://github.com/perl6/roast/commit/b251b6fc0f
19:23 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=98854
19:30 dha m: $x = 123; $x.printf
19:30 camelia rakudo-moar 5bfaaf: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5jSNwuxUv5␤Variable '$x' is not declared␤at /tmp/5jSNwuxUv5:1␤------> 3<BOL>7⏏5$x = 123; $x.printf␤»
19:30 dha m: my $x = 123; $x.printf
19:30 camelia rakudo-moar 5bfaaf: OUTPUT«123»
19:30 dha m: my $x = 123;$x.printf("%d\n");
19:30 camelia rakudo-moar 5bfaaf: OUTPUT«Directives specify 0 arguments, but 1 argument was supplied␤<Internal error while creating backtrace: MVMArray: Can't pop from an empty array   in method AT-POS at src/gen/m-CORE.setting:14779␤  in method next-interesting-index at src/gen/m-CORE.settin…»
19:31 dha Why does C<printf> (and C<sprintf> for that matter) work as a method if you can't give it a format string?
19:31 RabidGravy m: "%d\n".printf(123)
19:31 camelia rakudo-moar 5bfaaf: OUTPUT«123␤»
19:32 RabidGravy it does :)
19:32 bartolin std: sub f { f(|$) }
19:32 camelia std 28329a7: OUTPUT«ok 00:00 138m␤»
19:33 dha ... the FORMAT STRING is the needed object??
19:33 bartolin m: sub f { f(|$) }
19:33 camelia rakudo-moar 5bfaaf: ( no output )
19:33 bin_005 joined #perl6
19:33 dha Ok, why does C<printf> work on a variable containing an integer, then?
19:34 dha (as in my code above)
19:34 dha Because the way you just showed that it works with a format string it completely weird.
19:35 RabidGravy I guess because it becomes a format with just the literal "123" in
19:35 dha The seems to me WHOLLY couterintuitive.
19:36 cognominal joined #perl6
19:37 * dha considers just documenting this as "WTF"
19:37 dha Or "works as a method, but FOR THE LOVE OF ALL THAT IS HOLY, DON'T DO THAT."
19:39 ugexe I SEE what you MEAN
19:41 skids m: sub a ($? is parcel ) { }; &a.signature.say
19:41 camelia rakudo-moar 5bfaaf: OUTPUT«(\?)␤»
19:41 skids m: sub a (\?) { }; &a.signature.say
19:41 camelia rakudo-moar 5bfaaf: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gxOlOzjYy2␤Missing block␤at /tmp/gxOlOzjYy2:1␤------> 3sub a (\7⏏5?) { }; &a.signature.say␤»
19:41 jnthn I think .fmt is the sane thing. I do wonder if .printf on anything besides a file handle makes sense...
19:41 skids I just sent a PR to fix that and related stuff.
19:42 skids (Not the parsing, bit the .perl)
19:44 dha joined #perl6
19:46 dha So, yes, IMO, the method invocation of (s)printf is insane and should be changed. So there.
19:46 espadrine joined #perl6
19:48 b2gills Since the format for s?printf is just a string, and not a special type, I'm not sure that it makes sense for it to be a method on the format
19:49 jnthn dha, b2gills: I'd agree.
19:50 dha Do we still need/have C<srand>?
19:50 Sqirrel joined #perl6
19:51 jnthn yes
19:51 b2gills m: say &srand.signature
19:51 camelia rakudo-moar 5bfaaf: OUTPUT«(Int $seed --> Int)␤»
19:52 dha Ah. Ok, fwiw, it's not in the doc pages, apparently.
19:53 jnthn Add it to WANTED
19:53 jnthn Or encourage somebody else to :)
19:55 dha Can I assume the semantics are largely the same as in perl 5?
19:55 b2gills I'd argue that we should carefully consider the addition of any `.lower-case` methods that get added to built-in types
19:56 b2gills m: for ^5 { srand 1; say rand }
19:56 camelia rakudo-moar 5bfaaf: OUTPUT«0.308302962221659␤0.308302962221659␤0.308302962221659␤0.308302962221659␤0.308302962221659␤»
19:56 DrForr Unicode makes that nontrivial.
19:56 dha Unicode makes everything nontrivial.
19:57 DrForr Even triviality.
19:57 dha indeed.
19:57 b2gills Unicode is better than any current alternative though
19:57 moritz human languages make everything nontrivial
19:58 DrForr Hey, my EBCDIC props earned me some swag at YAPC.
19:58 b2gills humans make everything nontrivial
19:58 DrForr To summarize the summary, people are a problem.
19:59 dha Bingo.
19:59 masak especially users.
20:00 b2gills especially people who don't know how to code but think they know how things should work
20:00 Peter_R joined #perl6
20:01 b2gills m: say 10 ** 10 ** 10 # what?
20:01 camelia rakudo-moar 5bfaaf: OUTPUT«0␤»
20:01 b2gills j: say 10 ** 10 ** 10
20:01 camelia rakudo-jvm 5bfaaf: OUTPUT«Inf␤»
20:02 skids Eh, if it weren't for problems there'd be nothing to do.
20:02 RabidGravy :)
20:02 dha Can I just add "all the stuff that's not documented" to WANTED? :-/
20:02 masak b2gills: please submit a rakudobug, kthx
20:02 * dha looks at the void below "The C<state> Declarator"
20:04 uncleyear joined #perl6
20:05 RabidGravy dha, it's tricky because everyone just goes "it's like static in C" and all the developers either know what that means or pretend they do ;-)
20:06 dha Well, it's described in the p5 docs, for pete's sake. Can't we use that as a template?
20:06 jnthn It's nothing like static in C, 'cus it's per closure clone...
20:07 RabidGravy well yes but you know what I mean
20:07 TimToady masak: you kinda tend to hear only the bikesheddy parts of what I said, which I already disclaimed as 'or so'; my point was from the point of the parser, it's pretty obvious where things hook in
20:07 dha Is C<study> still a thing?
20:07 TimToady dha: no
20:07 masak RabidGravy: "you know what I mean" is not a sufficient riposte when someone says what you said is factually wrong :P
20:08 dha yay.
20:08 bin_005 joined #perl6
20:08 masak TimToady: sorry; I heard that part too. I only replied to the part I disagreed with :)
20:08 masak it's good news about the parser, because that's been a concern for me in the past few days.
20:09 masak looking forward to seeing how it looks in implementation. probably first in 007.
20:09 yqt joined #perl6
20:09 TimToady but, as I've mentioned, there's really no need for a 'macro' keyword, if we can throw normal rules and methods into slangs
20:09 jnthn TimToady: fwiw, I agreed that we don't have to do it with the LTM-er also, it just felt like the easy path :)
20:09 TimToady well, unquotes doesn't need LTM, but slang rules still do
20:10 jnthn I more meant that `infix: ...` as an unquote could just go into the infix alternation
20:10 masak the other day I had the thought that unquotes are a "cross-cutting concern", almost completely orthogonal to the normal grammar rules.
20:10 TimToady 'slang token' roughly corresponds to 'macro is parsed', while 'slang method' corresponds more to bare macro
20:11 jnthn e.g. token infix:sym<unquote> { '`infix:' ~ '`' <unquote> }
20:11 RabidGravy masak, I'm too hot for any other
20:12 TimToady jnthn: well, I'd rather have some unquote escape that is the same everywhere, I think, just to jog people out of reading it as inline code
20:12 TimToady and my liking for ¤ is related to that mental jogging, not to trying to make things hard for people
20:12 TimToady ¤ is trivial to type for anyone with a compose key, and we can also texas it
20:13 masak I agree that it should look "different".
20:13 masak "anyone with a compose key" might be a smaller group than you think :)
20:13 jnthn TimToady: I don't see how that contradicts my implementation suggestion though...I just took backticks as the jogger, which I guess crawl rather than jog...
20:13 * masak .oO( >(o)< )
20:13 TimToady I'd still rather reserve bare ` for user use, but what the texas version is can still be bikeshedded
20:13 timotimo there's also the people with a ctrl-c and ctrl-v combination capable keyboard
20:14 masak yes, but... *sigh*
20:14 TimToady jnthn: oh, the fact that your ` disappearing inside my eyes says it's not 'joggy' enough
20:14 masak "you can write Perl 6 macro code, just copy-and-paste this handy symbol!" is not sexy advice
20:14 TimToady it's no worse than «»
20:14 TimToady it's in Latin-1
20:15 jnthn masak: TimToady did say we can Texas it too
20:16 masak ok, regrouping. my real objection is that it doesn't deserve to be a sigil, because it doesn't really denote a category of variable. it's "the wrong hook".
20:16 TimToady it's...not a sigil
20:16 jnthn Oh, I'd not been seeing it as a sigil.
20:16 TimToady more like a namespace switcher
20:16 masak and for some reason it feels better if it surrounds the unquote, like {{{ }}} or ` ` do
20:17 TimToady no it doesn't :P
20:17 * masak goes and writes some code instead
20:17 TimToady .oO(de gustibus...)
20:17 masak ...non erat multiplicandum :P
20:18 TimToady anyway, categories tend to be associated with pair notation, and infix:() already has its own bracketing for pilliness of the argument
20:20 masak ok, granted.
20:20 vendethiel o/
20:20 TimToady I think of sigils as noun markers, and this is more meta than that
20:20 TimToady in fact, it's kind of a metamarker
20:21 masak by the way, I don't just hate ¤. I hate ¢ too. :P
20:21 * vendethiel happens to have ¤, but still hates it along with c/
20:23 jnthn How about £? :)
20:23 * vendethiel disagrees with a sigil, because it doesn't make sense to forbid {{{Q::Call.new(...)}}} imho
20:23 PerlJam masak: "hate" seems a little strong.  Are you sure?  :)
20:23 dha So, S29 mentions C<syscall>, but doesn't actually say anything about it. Do we still have it, and is it any different from its Perl 5 version?
20:24 TimToady for the Texas version, we'll just use SOMETHING-WICKED-THIS-WAY-COMES:infix:($whatever)
20:24 masak PerlJam: is there a better word for a visceral reaction, wanting for the complete removal of something?
20:25 TimToady and do you hate the set operators?
20:25 jnthn dha: afaik, "gone to module space"
20:25 PerlJam masak: "despise"?
20:25 dha *nod*
20:25 PerlJam masak: loathe?  deplore?
20:25 masak PerlJam: sold.
20:26 masak all three.
20:26 PerlJam heh
20:26 masak jnthn: I just saw µ is in Latin-1. it's not half-bad, as it's the Greek letter for 'm' as in 'macro' :)
20:26 masak µinfix:($op)
20:26 masak hm, a bit too letter-like.
20:27 masak there's also ¶infix:($op)
20:27 PerlJam masak: still seems like an okay design trade-off to me right now.   These things are difficultish to type because you really shouldn't be typing them all that often.
20:27 TimToady .oO(Any sufficiently advanced technology is indistinguishable from nazis.  --Arthur C Godwin)
20:27 jnthn masak: Surprise, a Greek letter looks letter-like :P
20:28 jnthn Now, a Greek bailout, otoh...
20:28 masak PerlJam: I'm a bit tired of that argument. there's a point where de-Huffmanizing something crosses the border into being a mean designer.
20:28 masak threshold*
20:28 masak design*
20:28 TimToady .oO(haters gonna hate)
20:29 PerlJam masak: being "mean" now still leaves open the option to be nicer later.
20:29 masak meh
20:29 masak I'm more in favor of trying to get it right sooner
20:29 timotimo we need someone to build a simple "Emoji" slang that'll allow emoji in identifiers, method names etc
20:29 masak "The pilcrow was a type of rubrication used in the Middle Ages to mark a new train of thought, before the convention of visually discrete paragraphs was commonplace." (about ¶)
20:31 jnthn masak: Is that easier to type than ¤?
20:31 jnthn .u ¤
20:31 yoleaux U+00A4 CURRENCY SIGN [Sc] (¤)
20:32 masak jnthn: ...no :/
20:32 PerlJam What's the compose key sequence for a pilcrow?
20:32 * TimToady goes to take a nap and dream of fillet minions...
20:32 masak and I'm not sure I like any solution that looks like a sigil.
20:32 jnthn And both are Latin-1...
20:32 TimToady masak: are you thinking it looks like a sigil because it relates to currency?  that wasn't in my head at all...
20:33 b2gills where should a test for `10**10**10 > 10**10` go? RT #125524
20:33 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125524
20:33 masak props to anyone who comes up with an ASCII solution that has all the nice properties discussed in the backlog (declares grammatical category, visual pillishness)
20:33 masak TimToady: maybe.
20:35 TimToady nap really &
20:36 masak TimToady: I also think that the fact that it relates to currency makes it a weird choice for unquotes. Perl is usually more connotation-aware than that. which is why I pasted the Wikipedia quote about the pilcrow. at least that one has something resembling a rationale/strange consistency.
20:37 lizmat m: use Test:from<Zip>; ok 1   # the problem with from<> in use
20:37 camelia rakudo-moar 5bfaaf: OUTPUT«ok 1 - ␤»
20:38 masak I love the Test.pm from Zip
20:39 dha S29 indicates that C<tie> and C<tied> are replaced by container types. Are containers in this context documented explicitly somewhere?
20:39 jnthn m: use lizmat:from<Echt>;
20:39 camelia rakudo-moar 5bfaaf: OUTPUT«===SORRY!===␤Do not know how to load code from Echt␤»
20:39 bin_005_e joined #perl6
20:39 lizmat but that's because the module  'lizmat' does not exist
20:39 jnthn Oh...it looks at the from as a fallback?
20:40 lizmat yes
20:40 FROGGS joined #perl6
20:40 jnthn Yeah, that's probably the wrong way...I figure :from just just very early on delegate to another appropriate loader.
20:40 jnthn *should just
20:40 FROGGS o/
20:40 lizmat well, yes, that's the plan
20:40 masak aye.
20:40 lizmat wish I had the inspiration to work on that
20:41 lizmat the hot weather is seriously messing with my motivation
20:41 jnthn urgh
20:41 lizmat 35 today, 38 tomorrow
20:41 jnthn OMG
20:41 jnthn That's horrible
20:41 vendethiel- joined #perl6
20:41 muraiki you crazy people and your celsius
20:41 dha muraiki++
20:41 PerlJam lizmat: you're not in Texas are you?
20:41 lizmat 95 today, 105 tomorrow
20:42 lizmat no, in the NL
20:42 ugexe 95 seems about average :)
20:42 lizmat if you're in TX with airco
20:42 lizmat this is NL and no airco
20:43 jnthn It's climbing to 35C here in Prague by the weekend. Thankfully I'll be in Kyiv by then, which will be a few degrees cooler and I'll have airco there...
20:43 jnthn The warm evenings are probably gonna hose my sleep the next couple of nights, alas...
20:43 lizmat yeah, on a tropical schedule now: up at 5:30 to air out the house
20:43 masak jnthn: better implement all the hard stuff tonight, then! :P
20:43 lizmat :-)
20:44 * masak is implementing prefix/postfix precedence in 007
20:44 masak ...for custom ops.
20:45 jnthn Well, I started on multi-dim stuff earlier today...
20:45 dalek rakudo/nom: bf717b8 | (Nick Logan)++ | src/core/CompUnit.pm:
20:45 dalek rakudo/nom: deprecation fix: CompUnit.precomp s/pipe/shell/
20:45 dalek rakudo/nom:
20:45 dalek rakudo/nom: This may be better expressed as something like `my $proc = run($*EXECUTABLE, @args, :merge); my $result = $proc.out.lines.join` once the `:merge` implementation works.
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bf717b8389
20:45 dalek rakudo/nom: a92a407 | FROGGS++ | src/core/CompUnit.pm:
20:45 dalek rakudo/nom: Merge pull request #455 from ugexe/patch-5
20:45 dalek rakudo/nom:
20:45 dalek rakudo/nom: deprecation fix: CompUnit.precomp s/pipe/shell/
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a92a407580
20:46 masak TimToady: fwiw, I agree with you that whatever unquote marker we arrive at should "jog" the reader a bit.
20:46 lizmat jnthn: could you update the Changelog with things you've done the past week ?
20:47 lizmat it would help me with the P6W
20:47 masak TimToady: {{{ }}} is quite good at that. a little too good, perhaps. while also re-using hash/block syntax, which isn't so great.
20:48 jnthn lizmat: I'm in the middle of some $dayjob stuff, but if I gisted you my worklog for the last week would that help? :)
20:48 lizmat yes
20:48 jnthn lizmat: What date do you want from
20:48 jnthn ?
20:48 lizmat from 23 June or thereabouts
20:49 PerlJam masak: How about ¶ ... ⁋  ?  ;>
20:50 jnthn lizmat: https://gist.github.com/jnthn/13d6303ea8bf4ea3b57f
20:50 AlexDani` joined #perl6
20:52 b2gills I wish I could blame the heat for a lack of motivation, it's more likely from the concussion I had many years ago. .oO( I remember that day like it was tomorrow )
20:52 muraiki b2gills: I've had 3 concussions, with the most recent about 2 weeks ago. horrible things. the second one was the worst... I still had symptoms 2 years later
20:53 timotimo lizmat: i think you'll have to do this one, too, lizmat >_<
20:53 lizmat timotimo: working on it :-)
20:53 muraiki but I was at least able to blame it for solving the wrong problem twice (we have new people learning perl5 and I answered a completely different question than the homework assignment asked... twice)
20:53 masak PerlJam: pretty :)
20:54 masak PerlJam: the ⁋ can be read as "and now back to your regularly scheduled ⁋arsing" :⁋
20:54 jnthn .u ⁋
20:54 yoleaux U+204B REVERSED PILCROW SIGN [Po] (⁋)
20:54 jnthn Not in my font
20:55 lizmat I was looking at an RT ticket earlier today, until I realised it was a P5 ticket (#125522 to be precise :-)
20:55 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=125522
20:55 jnthn :(
20:55 dha The documentation on C<time> could use a bit of fleshing out.
20:55 muraiki night all
20:56 masak synbot6: you paste URLs to P5 tickets? traitor! :P
20:56 dalek roast: 58afbdf | usev6++ | S06-signature/slurpy-params.t:
20:56 dalek roast: Use existing ticket number RT #113964
20:56 dalek roast: review: https://github.com/perl6/roast/commit/58afbdfc26
20:56 synbot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=113964
20:57 jnthn The most interesting bit of that ticket is this quote:
20:57 jnthn The parser needs to commit to whether the brace is opening a
20:57 jnthn nested lexical scope before arbitrary expressions inside the braces
20:57 jnthn can be parsed
20:57 jnthn In Rakudo we actully parse it as a lexical scope and then migrate symbols back out of the now-throwaway scope if we analyze it to be a hash :)
20:59 * masak .oO( Perl 6 people: "Look, we already solved this, and the solution is nice!" -- Perl 5 people: "Did you hear something? I thought I heard something." ) :P
20:59 jnthn I think our ability to do it probably lies in some pretty deep differences :)
21:00 jnthn Not a borrowable little thing.
21:01 masak troo
21:01 dha Do we have a perl 6 equivalent to C<times>?
21:02 lizmat dha: not that I'm awar
21:02 lizmat e
21:02 dha Ok, that's what it looked like.
21:03 amurf joined #perl6
21:03 lizmat I wonder how hard it would be to make a times() using NativeCall
21:03 PerlJam lizmat: hold on a sec and I'll show you  :)
21:04 ugexe j: my @a = 1,2,3,4; my @b = gather for @a -> $i { KEEP take $i; UNDO take $i; state $x++; $x > 2 ?? 1 !! 0 } # known? (keep/undo in gather for jvm)
21:04 PerlJam lizmat: class Timing { has $.time = time; has tms $.times = times;
21:04 camelia rakudo-jvm 5bfaaf: OUTPUT«control operator crossed continuation barrier␤  in code  at /tmp/aIBbap9MWf:1␤␤»
21:04 PerlJam }oops
21:04 PerlJam lizmat: https://gist.github.com/perlpilot/6ad78bada61335115510
21:04 PerlJam that probably leaks like a sieve though
21:04 PerlJam (I was playing with this the other day)
21:05 masak "control operator crossed continuation barrier"? that's a new one.
21:05 bin_005_e_q joined #perl6
21:05 lizmat masak: seen it a few times when using gather/take on the jvm
21:07 dha C<tr///> doesn't seem to be in the docs...
21:08 tinyblak joined #perl6
21:09 ugexe http://design.perl6.org/S05.html#Transliteration
21:10 dha Yeah, in the specs, but not the docs.
21:10 ugexe ah
21:11 dha The spec document also doesn't really describe C<tr///> but more the C<.trans> method.
21:12 dha Although I'm assuming it works the same way as in p5, except that you specify ranges differently.
21:15 lizmat PerlJam: any idea how your times() implementation works with (libuv) threads?
21:15 PerlJam nope
21:15 japhb ASCII unquote marks: ~~~ at start and end, like '~~~$qtree~~~'.  Mnemonic: Stitch this in ~~~here~~~.
21:16 PerlJam japhb: worse than {{{ }}} IMHO
21:16 atroxaper joined #perl6
21:16 japhb PerlJam: I think it's a little less over-pillish, but it's just an idea.
21:19 arnsholt What about ⦃$ast⦄, with Texas {|$ast|}?
21:20 masak arnsholt: not Latin-1, I guess.
21:20 arnsholt Definitely not Latin-1
21:20 japhb masak: Latin-1 isn't a hard requirement as long as there's a Texas version, IIUC.  Hence set ops.
21:21 Sqirrel joined #perl6
21:21 masak *nod*
21:21 timotimo the rakudo star announcement changelog has "native arrays" as a change ...
21:22 dalek rakudo/nom: 88153ff | lizmat++ | docs/ChangeLog:
21:22 dalek rakudo/nom: Some more ChangeLog entries of last week
21:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/88153ffc03
21:22 lizmat timotimo: I think that's correct, from the previous Rakudo Star
21:22 timotimo that's not that verbose
21:22 [Coke] lizmat: "is required" on attrs.
21:23 Novice-273C joined #perl6
21:23 Novice-273C m: say "ok" if / < +alpha >+ / for "abcd"
21:23 camelia rakudo-moar a92a40: ( no output )
21:24 dalek rakudo/nom: bf3c167 | lizmat++ | docs/ChangeLog:
21:24 dalek rakudo/nom: has $.a is required, FROGGS++
21:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bf3c167db0
21:26 Novice-273C say "but without leading space before subrule it works. why?" if / <+alpha >+ / for "abcd"
21:27 Novice-273C m: say "but without leading space before subrule it works. why?" if / <+alpha >+ / for "abcd"
21:27 camelia rakudo-moar a92a40: OUTPUT«but without leading space before subrule it works. why?␤»
21:28 FROGGS lizmat: I was just the merger of the 'is required'
21:28 beastd joined #perl6
21:28 lizmat ah, who did the work then>
21:28 lizmat ?
21:28 FROGGS [Coke]++ did all the work
21:28 lizmat also: could you describe what you did with pipe() / shell() / run()   (I seem to have lost track)
21:28 lizmat [Coke]++
21:29 FROGGS pipe() only gave you stdout, and was in fact invoking a shell
21:30 FROGGS now you can read stdout/stderr from run() and shell() by passing :out and :err, and you can write to its stdin by passing :in
21:30 FROGGS so pipe() is limited and was deprecated
21:31 lizmat ok, will mention that  :-)
21:31 FROGGS you can also suppress e.g. stderr from a subprocess by passing :!err
21:31 lizmat FROGGS: BTW, this is the breakage I see on the JVM: https://gist.github.com/lizmat/573712315223a7bbca11
21:31 FROGGS the default is to inherit the std streams from your process, which is identical to passing :in('-'), :out('-'), ...
21:32 FROGGS O.O
21:33 lizmat $ perl6-j -e 'say QX "echo"'
21:33 lizmat Unable to execute 'echo' (ff00)
21:34 ugexe i ran into that today as well
21:35 espadrine joined #perl6
21:35 dha Can I assume C<umask> is gone?
21:35 lizmat actually, no, it *is* a method on IO
21:36 dha Ah.
21:36 itz_ joined #perl6
21:36 dha Thanks.
21:36 lizmat m: IO.umask.say
21:36 camelia rakudo-moar a92a40: OUTPUT«18␤»
21:37 lizmat m: IO.umask.fmt("%o").say  # better  :-)
21:37 camelia rakudo-moar a92a40: OUTPUT«22␤»
21:39 dha Huh. An attempt to use C<undef> as a verb tells me "in Perl 6 please use undefine function or assignment of Nil"
21:39 dha Can you actually undefine a function in p6?
21:39 lizmat no...
21:40 dha ok, so maybe that error message should be changed... :-)
21:40 lizmat m: my $a is default(42) = 666; say $a; undefine $a; say $a
21:40 camelia rakudo-moar a92a40: OUTPUT«666␤42␤»
21:43 TEttinger joined #perl6
21:44 dalek rakudo/nom: 9c2c36b | lizmat++ | src/Perl6/Grammar.nqp:
21:44 dalek rakudo/nom: Clarify use of undefine(), dha++
21:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c2c36b870
21:50 FROGGS lizmat: btw, the jvm spectest errors you pasted seem to be caused by a crash of the evalserver
21:51 lizmat FROGGS: perhaps, but I'm running it without any TEST_JOBS= setting, so serially, does it use the evalserver then?
21:52 FROGGS yes
21:52 lizmat how can I otherwise make sure I don't use the evalserver ?
21:52 FROGGS so you dont have the startup time every time
21:52 masak 'night, #perl6
21:52 FROGGS I dunno
21:52 FROGGS you probably have to hack the harness script
21:52 timotimo gnite masak
21:52 FROGGS gnight masak
21:52 lizmat FROGGS: not reaily interested in good startup times, just in good results
21:52 lizmat gnight masak
21:53 lizmat good tests, really  :-)
21:54 gcole joined #perl6
21:59 espadrine joined #perl6
22:01 dalek rakudo/nom: 6cfc5e0 | lizmat++ | docs/ChangeLog:
22:01 dalek rakudo/nom: Mention deprecation of pipe()
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6cfc5e011d
22:01 jnthn probably gone for night &
22:02 FROGGS gnight jnthn
22:04 lizmat good night, jnthn
22:04 telex joined #perl6
22:07 rickbike joined #perl6
22:07 FROGGS dalek: ?
22:08 FROGGS lizmat: I just pushed a fix for QX
22:08 japhb joined #perl6
22:08 lizmat ok, will test
22:11 dalek rakudo/nom: a436fec | FROGGS++ | src/core/Proc.pm:
22:11 dalek rakudo/nom: check status of closed stream in QX, lizmat++
22:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a436fecb0c
22:12 dha I'm guessing C<use> is still part of p6, even though it's not in the docs?
22:12 lizmat Another Perl 6 weekly has been wrought: https://p6weekly.wordpress.com/2015/07/01/2015-26-half-way-through-the-year/
22:12 dha lizmat++
22:12 lizmat dha: if it's not in the docs, it should be :-)
22:12 lizmat it is very much a part of Perl 6
22:12 dha I thought so too!
22:13 lizmat and on that note, I'm going to call it a (short) night
22:13 dha but putting it into the search field at doc.perl6.org does not produce results.
22:13 rickbike Can I access just the captured elements in a global match, like as an array?
22:13 lizmat someone should put it on the doc todo then  :-)
22:13 rickbike http://design.perl6.org/S05.html#Capturing_from_repeated_matches doesn't work, no match.
22:14 dha lizmat-  should it be in WANTED?
22:14 lizmat yeah, WANTED  :-)
22:14 lizmat good night, #perl6!
22:14 dha Indeed. Will put it in.
22:15 dha good  night lizmat
22:16 cognominal lizmat++
22:17 vendethiel- 'night lizmat :)
22:20 dha So, S32 says that C<utime> is gone, replaced by C<Path.times>. But I can't find C<Path.times> in the docs.
22:20 Possum joined #perl6
22:21 dha looking in IO::Path is similarly unhelpful.
22:22 AlexDani` what is the easiest way to know the current iteration number when using a for loop? Like if I had $i or something
22:22 timotimo you can iterate over a list's .kv
22:22 timotimo to get the iteration number as well as the item
22:23 timotimo m: for lines[0].words.kv -> $i, $w { say $i, $w }
22:23 camelia rakudo-moar a436fe: OUTPUT«0Céad␤1slán␤2ag␤3sléibhte␤4maorga␤5Chontae␤6Dhún␤7na␤8nGall␤»
22:24 AlexDani` hm
22:24 RabidGravy joined #perl6
22:24 AlexDani` ok, but anything shorter? :)
22:24 timotimo m: for lines[0].words { say ++$, $_ }
22:24 camelia rakudo-moar a436fe: OUTPUT«1Céad␤2slán␤3ag␤4sléibhte␤5maorga␤6Chontae␤7Dhún␤8na␤9nGall␤»
22:24 timotimo m: for lines[0].words { say $++, $_ }
22:24 camelia rakudo-moar a436fe: OUTPUT«0Céad␤1slán␤2ag␤3sléibhte␤4maorga␤5Chontae␤6Dhún␤7na␤8nGall␤»
22:25 timotimo ^- anonymous state variable
22:25 AlexDani` huh!
22:25 AlexDani` ok, that's it
22:26 hahainternet aww man i just discovered the REPL doesn't have previous/next with arrows
22:26 hahainternet am i being dumb or have i got an ancient version or what
22:26 FROGGS m: for lines[0].words.kv { say $^i, $^word }
22:26 camelia rakudo-moar a436fe: OUTPUT«0Céad␤1slán␤2ag␤3sléibhte␤4maorga␤5Chontae␤6Dhún␤7na␤8nGall␤»
22:26 AlexDani` FROGGS: indeed!
22:26 FROGGS hahainternet: you need to install Linenoise via panda
22:27 hahainternet FROGGS: o/
22:27 dha So, S29 says "Should replace C<vec> with declared buffer/array of C<bit>, C<uint2>,
22:27 dha C<uint4>, etc."
22:27 dha has it, in fact, been replaced?
22:28 AlexDani` m: .say for dir
22:28 camelia rakudo-moar a436fe: OUTPUT«"/home/camelia/star".IO␤"/home/camelia/.cpanm".IO␤"/home/camelia/.local".IO␤"/home/camelia/.npm".IO␤"/home/camelia/.perl6".IO␤"/home/camelia/.perlbrew".IO␤"/home/camelia/.rcc".IO␤"/home/camelia/.ssh".IO␤"/home/camelia/Perlito".IO␤"/home/c…»
22:33 nowan joined #perl6
22:34 dha There appears to be a C<wait> method in the C<Supply> role. I'm am unclear whether this relates to Perl 5's C<wait> function. any ideas?
22:37 AlexDani` do I have to close filehandles or are they closed automatically when it gets out of scope?
22:39 timotimo not when it gets out of scope, but when it gets garbage collected eventually
22:40 AlexDani` hm, in other words it is not a good idea to rely on that?
22:42 timotimo correct
22:42 timotimo you can annotate variables with a phaser that'll execute when they go out of scope, though
22:42 timotimo i think that's "will leave { ... }"
22:46 RabidGravy dha, not really
22:47 dha Yeah. Figures.
22:47 RabidGravy there is no core fork() so the notion of wait is redundant
22:48 timotimo can't you also wait for pids that you didn't start yourself?
22:50 RabidGravy you could, but that hey
22:51 dha I have finished perlfunc. *thud*
22:51 timotimo awesome :)
22:52 timotimo Supply.wait blocks until the Channel was closed or threw an error
22:52 dha I'm still trying to figure out if this is something anyone is actually going to use.
22:53 timotimo i surely won't :)
22:53 timotimo except, maybe if i end up talking to a perl5 user again
22:53 dha Yeah, I'm guessing that, of the people in this channel, I'm probably the most likely to actually find any of this helpful. :-)
22:54 timotimo we do get newcomers all of the time, i bet many of them have a history with perl5 as well
22:54 RabidGravy Supply.wait?  Sure, it saves a Promise is you've started off a thread that is going to pump a bunch of stuff to a Supply
22:54 [Coke] dha++
22:55 RabidGravy ;-)
22:55 timotimo i wouldn't call that "save a supply" to be honest
22:55 timotimo because it uses a supply internally :)
22:56 RabidGravy promise
22:56 timotimo er
22:56 timotimo yes, promise
22:57 RabidGravy oh I know, just one you need to know about ;-)
22:57 timotimo sure
22:58 timotimo a whole lot of the async and multithreading stuff gives you "less stuff to know about"
22:58 rickbike I can't get a match from lol() per  http://design.perl6.org/S05.html#Capturing_from_repeated_matches
22:58 RabidGravy but yeah dha++ # documenting
22:59 dha Thanks.
22:59 timotimo rickbike: it could be that that's not yet implemented :\
22:59 b2gills dha: Perl 5's `wait` is more or less replaced with `await` which works on Promise objects
23:00 dha Ah. I thought that might be a possibility, but was unclear.
23:00 amurf joined #perl6
23:00 timotimo hm, there's tests
23:00 timotimo ah, i see, 'lol()' is supposed to give you the result of the match object?
23:00 b2gills The use-cases are similar but there is quite a difference
23:00 RabidGravy sorta kinda but Promises don't have anything to do with processes
23:00 timotimo that's interesting
23:01 timotimo rickbike: your code might work if you use @().lol
23:01 timotimo nothing in rakudo connects the sub lol to the current match object
23:11 rickbike timotimo: Yes, @().lol     Thanks!
23:12 timotimo there could be/ought to be a ticket in our request tracker for this feature
23:13 timotimo searching for "lol" gives "0 tickets found"
23:13 timotimo so i guess i'll create one later tonight
23:13 rickbike Where is the RT?
23:13 timotimo rt.perl.org
23:14 timotimo you can feed it via rakudobug@perl.org
23:16 rickbike I'll send a bug report.
23:16 timotimo cool
23:16 timotimo it'll be something like "lol() doesn't refer to the current match result" or something
23:17 Sqirrel joined #perl6
23:31 tinyblak joined #perl6
23:32 maddingue joined #perl6
23:36 lucasb joined #perl6
23:41 lucasb m: my @a; undefine(@a); say @a.defined
23:41 camelia rakudo-moar a436fe: OUTPUT«True␤»
23:42 lucasb m: my %h; undefine(%h); say %h.defined
23:42 camelia rakudo-moar a436fe: OUTPUT«True␤»
23:42 lucasb ^^ This feels a little strange. Has it already been discussed?
23:47 dha m: my @a = <1 2 3 4>;say @a;undefine(@a);say @a;
23:47 camelia rakudo-moar a436fe: OUTPUT«1 2 3 4␤␤»
23:47 dha m: my @a;say @a.defined;
23:47 camelia rakudo-moar a436fe: OUTPUT«True␤»
23:48 dha m: my @a;@a.perl;
23:48 camelia rakudo-moar a436fe: ( no output )
23:48 dha m: my @a;say @a.perl;
23:48 camelia rakudo-moar a436fe: OUTPUT«[]<>␤»
23:49 dha I guess a declared variable is considered true, by virtue of having been... typed? I dunno.
23:49 dha m: say @q.defined;
23:49 camelia rakudo-moar a436fe: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tJAlIeDXt1␤Variable '@q' is not declared␤at /tmp/tJAlIeDXt1:1␤------> 3say 7⏏5@q.defined;␤»
23:50 dha I'm now wondering under what circumstances .defined would ever return false.
23:51 ugexe m: sub foo($bar?) { say $bar.defined }; foo()
23:51 camelia rakudo-moar a436fe: OUTPUT«False␤»
23:52 dha Hm. Apparently defined will return true for any instance. It returns False on the type object, but otherwise true.
23:52 lucasb My thought was that undefine() makes sense for scalar vars. But for arrays and hashes... those will never be undefind by assigning Empty to them
23:52 lucasb *undefined
23:53 dha m: my $x;say $x.defined;undefine($x);say $x.defined;
23:53 camelia rakudo-moar a436fe: OUTPUT«False␤False␤»
23:53 ugexe m: sub foo($bar?) { say $bar.defined }; foo(Any)
23:53 camelia rakudo-moar a436fe: OUTPUT«False␤»
23:53 dha Huh.
23:53 ugexe m: sub foo($bar?) { say $bar.DEFINITE }; foo(Any)
23:53 camelia rakudo-moar a436fe: OUTPUT«False␤»
23:54 lucasb I think what I was trying to say is about the name of the function.
23:55 lucasb iirc, both Python and Ruby has a .clear method on theirs lists/arrays and hashes/dicts
23:55 ugexe i dont think you are supposed to use Empty
23:57 lucasb yeah, I'm behind on the new semantics of GLR and Nil/Empty. I don't know what happened the previous months :)
23:59 b2gills array and hash variables get initialized for you ( by default )

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

Perl 6 | Reference Documentation | Rakudo