Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-07-25

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:01 TimToady will try it again with inlining disabled
00:03 TimToady anyway, this is also on an I7, so we're not being shabby :)
00:06 TimToady hmm, actually, it ran faster with inlining disabled, so I'm confused
00:07 TimToady assuming MVM_SPESH_INLINE_DISABLE=1 time b2b3b is the correct incantation
00:09 jnthn Hm, weird.
00:13 TimToady maybe some distortion from inserting instrumentation
00:13 jnthn Mebbe
00:13 TimToady it was only slightly faster, and I do have that bogus loop that only runs once each time through the outer looop
00:13 TimToady fixing that, and retiming
00:14 jnthn I did spot some rather weird deopts going on the other day when fixing the OSR bug, which I still need to look into.
00:15 TimToady but I rather suspect my 9 minutes was the JVM number
00:15 jnthn OK.
00:18 Psyche^_ joined #perl6
00:18 BenGoldberg joined #perl6
00:18 TimToady huh, taking out the inner loop added 10 seconds o.O
00:19 jnthn o.O
00:19 TimToady 4:47 to 4:58
00:20 TimToady trying the disabled inline version again without the loop, just for kicks
00:21 * TimToady wonders if he keeps reporting timings every five minutes, he can keep jnthn++ up all night...
00:23 colomon go go go!
00:24 TimToady now slower with inline disabled, 5:04
00:25 TimToady though this time I uttered: time (MVM_SPESH_INLINE_DISABLE=1 ./b2b3b)
00:26 TimToady so as to use the shell timer rather than /usr/bin/time
00:26 TimToady maybe that does something weird
00:28 BenGoldberg If your test program is single-threaded, and if your computer is multi-cored, then you should be able to time a few different variations at once, without them interfering with one another.
00:28 [Coke] m: use Test; try { try { die 'qwerty'} ; say ~$!; die }; say $!;
00:28 camelia rakudo-moar 6cc807: OUTPUT«qwerty␤␤  in block  at /tmp/5fkXk0S2J0:1␤␤»
00:29 [Coke] we have a test that expects that second usage of $! to have qwerty in it.
00:30 BenGoldberg m: use Test; try { try { die 'qwerty'} ; say ~$!; die ~$! }; say $!;
00:30 camelia rakudo-moar 6cc807: OUTPUT«qwerty␤qwerty␤  in block  at /tmp/xxrMqArP8c:1␤␤»
00:30 BenGoldberg m: use Test; try { try { die 'qwerty'} ; say ~$!; die $! }; say $!;
00:30 camelia rakudo-moar 6cc807: OUTPUT«qwerty␤qwerty␤  in block  at /tmp/bjpTjQZ_NA:1␤  in block  at /tmp/bjpTjQZ_NA:1␤␤»
00:30 TimToady updated the RC entry to avoid the loop
00:31 BenGoldberg [Coke], What is 'die' supposed to do when not given any args?
00:31 TimToady in p5 it uses "Died" for the message
00:32 [Coke] test says:
00:32 [Coke] die; # use the default argument
00:32 TimToady m: die
00:32 camelia rakudo-moar 6cc807: OUTPUT«␤  in block  at /tmp/R6AwNcpnQr:1␤␤»
00:32 BenGoldberg p56: die
00:32 camelia p5-to-p6 : OUTPUT«die␤»
00:33 Alina-malina joined #perl6
00:33 BenGoldberg m: use Test; try { try { die 'qwerty'} ; say ~$!; die $_ }; say $!;
00:33 camelia rakudo-moar 6cc807: OUTPUT«qwerty␤use of uninitialized value of type Any in string context  in block  at /tmp/ELgL8teQhc:1␤␤use of uninitialized value of type Any in string context  in block  at /tmp/ELgL8teQhc:1␤␤␤  in block  at /tmp/ELgL8teQhc:1␤␤»
00:33 TimToady eval: die; # do we have this one currently?
00:33 jnthn Well, the summer heat is doing a fairly good job of keeping me awake...
00:33 BenGoldberg m: die $_
00:33 camelia rakudo-moar 6cc807: OUTPUT«use of uninitialized value of type Any in string context  in block  at /tmp/X_jC_qlE9u:1␤␤Error while creating error string: No exception handler located for warn␤»
00:34 jnthn ...what?
00:35 TimToady maybe it should just asy "Confused" :)
00:35 TimToady *say
00:37 lue "Insulting programmer detected in block ..."
00:38 nbrown joined #perl6
00:39 TimToady mabye ti sluohd jsut asy "Cufsenod"
00:39 jnthn :P
00:40 * jnthn goes to try and rest
00:40 TimToady o/
00:40 jnthn Should have more time again for Perl 6 things soon :)
00:40 jnthn o/
00:40 TimToady oh, removing the *.base(3) makes it faster again
00:40 BenGoldberg joined #perl6
00:40 TimToady so maybe it's the extra map and closure
00:41 BenGoldberg n: die;
00:41 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Died␤  at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤  at /tmp/SaZx9WvbdC line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line…»
00:42 BenGoldberg "Died" just like p5
00:43 TimToady plus the map was disabling the for-range optimization
00:44 carlin masak: $real-life interfered, but am still hunting
00:45 [Coke] ok, removing test.
00:46 dalek roast: 4aab931 | coke++ | S02-types/compact.t:
00:46 dalek roast: use standard "NYI"
00:46 dalek roast: review: https://github.com/perl6/roast/commit/4aab931fe8
00:46 dalek roast: 6600ef0 | coke++ | S02-magicals/dollar_bang.t:
00:46 dalek roast: Remove incorrect test
00:46 dalek roast:
00:46 dalek roast: die with no args does NOT reuse $!
00:46 dalek roast: review: https://github.com/perl6/roast/commit/6600ef0ac9
00:46 BenGoldberg rn: try { die }; say $!.perl
00:46 camelia niecza v24-109-g48a8de3: OUTPUT«"Died"␤»
00:46 camelia ..rakudo-{parrot,jvm,moar} 6cc807: OUTPUT«X::AdHoc.new(payload => "")␤»
00:47 Alina-malina joined #perl6
00:48 lue I almost want to say that arg-less &die should generate a warning, or maybe die with an appropriate message :) .
00:50 [Coke] m: say ( 1 ^^ 42 ).perl
00:50 camelia rakudo-moar 6cc807: OUTPUT«Nil␤»
00:50 BenGoldberg arg-less die should warn that the behavior of arg-less die is not yet specced ;)
00:50 TimToady could usefully say "Died ($! was 'such and so')" when $! is set
00:50 [Coke] ^^ should that be False?
00:51 [Coke] n: say ( 1 ^^ 42 ).perl
00:51 camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] i…»
00:51 TimToady given that it's trying to return one or the other, I think Nil makes sense
00:51 TimToady (and is false)
00:52 [Coke] updating test...
00:52 Akagi201 joined #perl6
00:53 TimToady m: say [^^] 0,0,42
00:53 camelia rakudo-moar 6cc807: OUTPUT«42␤»
00:53 TimToady m: say [^^] 0,1,42
00:53 camelia rakudo-moar 6cc807: OUTPUT«Nil␤»
00:53 TimToady m: say [^^] 3,1,42
00:53 camelia rakudo-moar 6cc807: OUTPUT«Nil␤»
00:54 TimToady n: say Nil.perl
00:54 camelia niecza v24-109-g48a8de3: OUTPUT«Nil␤»
00:54 TimToady m: say 1 ^^ 42
00:54 camelia rakudo-moar 6cc807: OUTPUT«Nil␤»
00:54 TimToady odd
00:55 TimToady m: say (1 ^^ 42).defined
00:55 camelia rakudo-moar 6cc807: OUTPUT«False␤»
00:55 dalek roast: fe656e4 | coke++ | S03-operators/short-circuit.t:
00:55 dalek roast: fix expected return type:
00:55 dalek roast:
00:55 dalek roast: 20:51 < TimToady> given that it's trying to return one or the other, I
00:55 dalek roast: think Nil makes sense
00:55 dalek roast: review: https://github.com/perl6/roast/commit/fe656e4876
00:57 [Coke] m: say ( 7 ^^ 7 ).WHAT
00:57 camelia rakudo-moar 6cc807: OUTPUT«Nil␤»
00:58 TimToady otoh, maybe it should return ()
00:58 TimToady since it's specced to do that in list context
00:58 TimToady and Nil doesn't make () anymore
00:58 TimToady well, isn't supposed to
00:59 TimToady m: say ( 7 ^^ 8 ).list.perl
00:59 camelia rakudo-moar 6cc807: OUTPUT«().list␤»
00:59 TimToady m: say Nil.list.perl
00:59 camelia rakudo-moar 6cc807: OUTPUT«().list␤»
00:59 TimToady that's probably a bug
00:59 dojmi joined #perl6
00:59 dalek roast: 9766670 | coke++ | S03-operators/short-circuit.t:
00:59 dalek roast: fix expected return type:
00:59 dalek roast:
00:59 dalek roast: 20:51 < TimToady> given that it's trying to return one or the
00:59 dalek roast: other, I think Nil makes sense
00:59 dalek roast:
00:59 dalek roast: ... is what TimToady said about the first one. "close enough!"
00:59 dalek roast: review: https://github.com/perl6/roast/commit/97666704dd
00:59 TimToady m: say ()[0].perl
00:59 camelia rakudo-moar 6cc807: OUTPUT«Nil␤»
01:04 dayangkun joined #perl6
01:04 kurahaupo joined #perl6
01:05 [Coke] m: Mu ~~ 0
01:05 camelia rakudo-moar 6cc807: OUTPUT«Type check failed in binding <anon>; expected 'Any' but got 'Mu'␤  in method ACCEPTS at src/gen/m-CORE.setting:1480␤  in block  at /tmp/G1dWK8MLkP:1␤␤»
01:05 [Coke] ^^ tests expect this to work.
01:05 thou joined #perl6
01:06 TimToady offhand, don't see a good reason why it shoudn't
01:06 TimToady m: Mu ~~ Junction
01:06 camelia rakudo-moar 6cc807: ( no output )
01:07 TimToady just needs to have an ACCEPTS Mu and then rejects it :)
01:07 rurban1 joined #perl6
01:07 TimToady ACCEPTS that accepts Mu*
01:07 TimToady m: Mu ~~ 'foo'
01:07 camelia rakudo-moar 6cc807: OUTPUT«Type check failed in binding <anon>; expected 'Any' but got 'Mu'␤  in method ACCEPTS at src/gen/m-CORE.setting:1480␤  in block  at /tmp/1hGHK6byNI:1␤␤»
01:07 TimToady that too
01:08 TimToady unless people are expecting junctions to autothread on the left, and I don't think they should
01:09 TimToady m: say 1 | 2 ~~ Junction
01:09 camelia rakudo-moar 6cc807: OUTPUT«True␤»
01:09 TimToady m: Mu ~~ Int
01:09 camelia rakudo-moar 6cc807: ( no output )
01:09 TimToady so it's just the :D case
01:10 FROGGS__ joined #perl6
01:12 dalek specs: 533c76b | TimToady++ | S03-operators.pod:
01:12 dalek specs: make ^^ return Nil on too many trues
01:12 dalek specs: review: https://github.com/perl6/specs/commit/533c76b5e0
01:14 TimToady that might change again, as we force Nil to not produce () in list context
01:14 TimToady if list comprehensions are depending on that behavior of Nil
01:15 dalek roast: 0c689b3 | coke++ | S03-smartmatch/any- (2 files):
01:15 dalek roast: mark some tests for RT #122395
01:15 dalek roast: review: https://github.com/perl6/roast/commit/0c689b3b72
01:15 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122395
01:17 TimToady would be funny if all our logical operators had to return () for false, but maybe they do, since 'if' is really just an 'and' in disguise
01:18 TimToady must cogitate on that smore
01:21 rindolf joined #perl6
01:29 nbrown joined #perl6
01:45 SevenWolf joined #perl6
01:48 telex joined #perl6
01:50 klapperl joined #perl6
01:51 chenryn joined #perl6
01:53 Akagi201 joined #perl6
01:57 figoe joined #perl6
02:07 noganex_ joined #perl6
02:12 Mouq m: say(1;2) # wtf
02:12 camelia rakudo-moar 6cc807: OUTPUT«12␤»
02:12 Mouq m: say(my $a = 42; ' ';$a = 15)
02:12 camelia rakudo-moar 6cc807: OUTPUT«15 15␤»
02:12 Mouq Why.
02:13 Mouq std: say(my $a = 42; ' ';$a = 15)
02:13 camelia std 0f2049c: OUTPUT«ok 00:01 125m␤»
02:13 Mouq TimToady: Should this be illegal?
02:14 Mouq m: say((my $a = 42; ' ';$a = 15))
02:14 camelia rakudo-moar 6cc807: OUTPUT«WARNINGS:␤Useless use of constant string " " in sink context (line 1)␤15␤»
02:15 BenGoldberg n: say(my $a = 42; ' ';$a = 15);
02:15 camelia niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Slicel lists are NYI at /tmp/Uvbc4gXmBm line 1:â�¤------> [32msay(my $a = 42; ' ';$a = 15)[33mâ��[31m;[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die…»
02:22 ventica Can we create a "Try Perl6" page using Rakudo on JVM... like this page for Arc?: http://tryarc.org/
02:23 BenGoldberg A java applet with a jakudo REPL would be cool :)
02:23 lustlife joined #perl6
02:31 hoelzro Try Perl 6 would be awesome
02:32 BenGoldberg The tryarc.org page uses ajax to send the user's typed-in code to the web server.
02:32 hoelzro I'm still hoping that the JS backend matures
02:33 kaare_ joined #perl6
02:34 bjz_ joined #perl6
02:34 silug joined #perl6
02:39 hoverboard joined #perl6
02:41 Akagi201 joined #perl6
02:43 TimToady std: say( $_ for 1..10 )
02:43 camelia std 0f2049c: OUTPUT«[31m===[0mSORRY![31m===[0m�Unable to parse argument list at /tmp/HY9zRL6JzR line 1:�------> [32msay[33m�[31m( $_ for 1..10 )[0m�Couldn't find final ')'; gave up at /tmp/HY9zRL6JzR line 1:�------> [32msay( $_ [33m�[31mfor 1..10 )[0m�Parse…»
02:43 TimToady at least that's illegal
02:45 hoelzro if anyone's interested, I made a gist on some ideas/questions I had about the Perl 6 language: https://gist.github.com/hoelzro/71b65aec6cdc2574da60
02:47 TimToady I would consider all those to be declarations
02:47 TimToady but generally people would use the #= form on parameters and return values
02:48 hoelzro TimToady: thanks for taking the time to look!  should you even be reading right now? =)
02:48 TimToady and yes, they're intended to merge
02:48 TimToady this particular makes sense for the #| form
02:48 TimToady *ly
02:49 TimToady which is likely to be a paragraph
02:49 hoelzro alright, good to see that my thinking was right on that
02:49 TimToady the problem with advanced filehandle options is that some VMs make it really hard
02:50 * hoelzro .oO( and that I don't have to change the implementation... )
02:50 hoelzro ah ha
02:50 TimToady we should probably provide such facilities with warnings that they may not be portable
02:51 hoelzro maybe instead of including them within the language itself, there could be third party modules that only work on particular VMs?
02:51 TimToady or that, but you'd like things to be portable by feature, and not by "use MyOS;"
02:51 hoelzro use IO::Dup; or something could provide a candidate for open(IO::Handle)
02:52 TimToady right
02:52 hoelzro but would IO::Dup be provided with the interpreter? or by a third party lib?
02:52 hoelzro or does it matter?
02:53 TimToady well, it only matters what names we make available by default; whether something gets pulled in on first use should in many cases be transparent
02:53 btyler joined #perl6
02:53 thou joined #perl6
02:54 TimToady of course, there are the features like "augment" that we require them to also declare monkey business of some sort
02:55 TimToady there may also be some features that can be emulated, but sometimes emulations are partial
02:55 TimToady see 'fork' for P5 on Windows for instance
02:56 hoelzro that was the exact example I'd thought of =)
02:56 TimToady or maybe can emulate it, but it runs 10000 times slower
02:56 TimToady at what point does performance become part of the API?
02:57 TimToady and it's okay for me to read in moderation, so irc seems fine
02:58 TimToady it's the backlog that gets tiresome to my eyes
02:58 hoelzro good thing I caught you now, then!
02:58 TimToady otoh, I'm kinda the only person who is not allowed to declare backlog bankrupcy :)
02:59 hoelzro =)
03:00 TimToady actually, at the moment I'm only in arrears on July 16-21
03:01 TimToady and only in #perl6, I already caught up in #moarvm
03:04 hoelzro well, it's not going anywhere!
03:05 TimToady that's what people have been saying for years :)
03:08 rurban1 joined #perl6
03:09 TimToady in a year or so, I'd like to buy a big billboard in the middle of silicon valley that says "Perl 6 lives.  You were wrong."  :)
03:10 hoelzro hehe
03:10 TimToady or just photoshop one and let it go viral :)
03:10 hoelzro I think I've been a regular for 2 years now
03:10 hoelzro like, as of tomorrow
03:10 hoelzro it's amazing how much it's progressed
03:11 TimToady happy anniverserary
03:11 hoelzro thanks!
03:11 hoelzro I just hope that others like it as much as I do!
03:11 hoelzro although that won't stop *me* from writing it
03:12 TimToady it's the most gratifying thing to continue to see new participants, to make up for all those developers dropping like flies along the way :)
03:12 hoelzro =)
03:13 [Coke] TimToady++
03:14 TimToady well, you're obviously from hardier stock :)
03:14 rurban1 joined #perl6
03:15 TimToady maybe some hobbit ancestry :)
03:16 TimToady I obviously have some, since my toes are hairy, I love mushrooms, and I'm hard to kill off...
03:18 TimToady historian: Please s/some/some hobbit ancestry/ if you're putting me into a quotes file someday.  Pray omit the brackets.
03:20 TimToady actually, if I'm to recapitulate Tolkien, I should wait about ten years, and then "Perl 6 lives!" will appear as grafitti in a New York subway.
03:27 [Coke] dd
03:28 hoelzro Cannot make changes, 'modifiable' is off
03:32 TimToady 0+0 records in
03:32 TimToady 0+0 records out
03:32 TimToady 0 bytes (0 B) copied, 2.17737 s, 0.0 kB/s
03:33 hoelzro and now we see which 'dd' [Coke] wanted =)
03:37 btyler are bindings meant to evaporate after a statement is completed in the repl? "my @foo = 1 .. 5; <enter>" --> 1 .. 5 "@foo; <enter>" --> nothing
03:37 btyler the variable is declared in scope, but there's nothing there anymore
03:37 btyler sorry, my @foo := 1 .. 5;
03:42 TimToady looks like a bug to me
03:44 TimToady at some point the current REPL needs to be scrapped and integrated correctly with the compiler so that we know when multi-line constructs are being entered, and when we can just continue the compilation from line to line.
03:44 TimToady at that point I think a lot of these issues will go away
03:47 TimToady in fact, that's why there's a line in STD.pm6's ws that reads:  | $ { $¢.moreinput }
03:48 btyler hmmm. that would be really nifty
03:49 btyler I was investigating a better representation for lazy things in the repl, since I keep accidentally hitting enter on (1..Inf).grep({ ... something }) and then locking the repl and losing my state
03:49 TimToady you'd also have to notice the parser state and decide whether to execute immediately or just add to the accumulation
03:49 TimToady it ought to be use .gist for the output, which should not try to print something infinite
03:50 TimToady m: say 1..Inf
03:50 camelia rakudo-moar 6cc807: OUTPUT«1..Inf␤»
03:50 hoelzro what does the REPL do atm? .Str?
03:50 TimToady m: say (1..Inf).grep(20)
03:50 TimToady dunno
03:50 hoelzro .gist would make more sense, imo
03:50 camelia rakudo-moar 6cc807: OUTPUT«(timeout)»
03:50 TimToady looks like an infinite grep is not considered infinite though
03:51 btyler right
03:51 TimToady it should get tired after a while, for .gist purposes :)
03:51 btyler it does .gist, line 36 of rakudo src/Perl6/Compiler.nqp
03:51 btyler unless the thing in question doesn't know how to gist, then it just presents the string coercion (I think)
03:52 TimToady maybe gist is a context like eager, lazy, etc.
03:53 TimToady be eager till it starts to hurt, then quit :)
03:54 btyler worth noting that infinite greps have the same issue in .perl
03:55 TimToady well, in that case, .perl should obviously return (1..Inf).grep(20) :)
03:55 btyler how does one roundtrip a list that's been partially reified?
03:55 btyler (if that matters)
03:55 dalek tablets: 6598f3d | (Herbert Breunung)++ | docs/ (2 files):
03:55 dalek tablets: basic quoting
03:55 dalek tablets: review: https://github.com/perl6/tablets/commit/6598f3d45f
03:56 btyler I suppose it ought not to matter how much of the list has been computed
03:57 TimToady In theory, theory is better than practice, but in practice, practice is better than theory.
03:57 TimToady don't remember who said that...
03:57 BenGoldberg In theory, theory is the same as practice, but in practice, they are different.
03:58 lichtkind joined #perl6
03:59 lichtkind chhers
04:00 lichtkind did anybody lookes into my asking?
04:04 gfldex joined #perl6
04:08 dalek roast/S26-WHY: 329d202 | (Rob Hoelz)++ | S26-documentation/why- (3 files):
04:08 dalek roast/S26-WHY: Test documentation of anonymous parameters
04:08 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/329d202be1
04:08 dalek roast/S26-WHY: 4575233 | (Rob Hoelz)++ | S26-documentation/why- (3 files):
04:08 dalek roast/S26-WHY: Test documenting invocants
04:08 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/4575233bf8
04:08 dalek roast/S26-WHY: caf4161 | (Rob Hoelz)++ | S26-documentation/module-comment.t:
04:08 dalek roast/S26-WHY: Add test for module + semicolon comment
04:08 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/caf4161e38
04:08 dalek roast/S26-WHY: 248eccb | (Rob Hoelz)++ | S26-documentation/wacky.t:
04:08 dalek roast/S26-WHY: Add test for stranger commenting scenarios
04:08 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/248eccb0a1
04:08 dalek roast/S26-WHY: 9461c28 | (Rob Hoelz)++ | S26-TODO:
04:08 dalek roast/S26-WHY: Remove tests I've added from TODO
04:08 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/9461c287af
04:08 dalek roast/S26-WHY: 28c3aef | (Rob Hoelz)++ | S26-TODO:
04:08 dalek roast/S26-WHY: Add question to TODO
04:08 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/28c3aef374
04:08 hoelzro lichtkind: which would that be
04:08 hoelzro ?
04:09 lichtkind change the heading of the tablets
04:15 nbrown joined #perl6
04:18 dalek roast: 1dffa82 | (Rob Hoelz)++ | S26-documentation/10-doc-cli.t:
04:18 dalek roast: Fix broken RT reference
04:18 dalek roast: review: https://github.com/perl6/roast/commit/1dffa82da6
04:18 dalek Heuristic branch merge: pushed 58 commits to roast/S26-WHY by hoelzro
04:31 PotatoGim joined #perl6
04:42 thou joined #perl6
04:43 dayangkun joined #perl6
04:45 slavik joined #perl6
04:49 woolfy joined #perl6
04:49 lizmat joined #perl6
04:51 slavik left #perl6
05:00 chenryn joined #perl6
05:07 jack_rabbit joined #perl6
05:09 * lue wonders what it would take for sized native types to work properly...
05:10 TimToady a champion, of course... :)
05:11 lue it'd be nice if I couldn't do my uint8 $a = 256, mainly :)
05:15 TimToady m: subset uint8ish of uint8 where * < 256; my uint8ish $a = 256;
05:15 camelia rakudo-moar 6cc807: OUTPUT«Type check failed in assignment to '$a'; expected 'uint8ish' but got 'Int'␤  in block  at /tmp/3E1WkaVWtt:1␤␤»
05:15 TimToady hmm
05:17 TimToady m: subset uint8ish of uint8 where * < 256; my uint8 $a = 256.uint8ish;
05:17 camelia rakudo-moar 6cc807: OUTPUT«No such method 'uint8ish' for invocant of type 'Int'␤  in block  at /tmp/YH3gSU2fQZ:1␤␤»
05:17 TimToady m: subset uint8ish of uint8 where * < 256; my uint8 $a = uint8ish(256);
05:17 camelia rakudo-moar 6cc807: OUTPUT«Cannot invoke this object (REPR: Uninstantiable, cs = 0)␤  in block  at /tmp/r9HxiaHQja:1␤␤»
05:18 TimToady m: my uint8 $a = uint8(256);
05:18 camelia rakudo-moar 6cc807: OUTPUT«Cannot invoke this object (REPR: P6int, cs = 0)␤  in block  at /tmp/to6LXUMw0Y:1␤␤»
05:18 TimToady m: my uint8 $a = Uint8(256);
05:18 camelia rakudo-moar 6cc807: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/o9oE4IxP0pâ�¤Undeclared name:â�¤    Uint8 used at line 1. Did you mean 'int8', 'uint8'?â�¤â�¤Â»
05:19 lue or maybe trying to assign a too large number will store just the LSB (effectively large-num % 256). In any case  my uint8 $a = 300; say $a; should not output 300
05:20 TimToady nodnod
05:27 dalek tablets: d32f641 | (Herbert Breunung)++ | docs/ (2 files):
05:27 dalek tablets: interpolation of quotes
05:27 dalek tablets: review: https://github.com/perl6/tablets/commit/d32f6416f3
05:33 chenryn joined #perl6
05:47 xinming joined #perl6
05:48 rurban1 joined #perl6
06:18 nbrown joined #perl6
06:22 zengargoyle TimToady: Debain's fortune-mod science has: In theory, there is no difference between theory and practice. In practice, there is. -- with no attribution.  google / wikiquotes gives many possible sources amongst which is Yogi Berra and a couple CS UML peeps.
06:23 TimToady so it was probably Abe Lincoln, or maybe Paul Bunyan...
06:23 zengargoyle http://www.nature.com/neuro/journal/v8/n12/full/nn1205-1627.html says: Nobel laureate chemist Manfred Eigen
06:30 thou joined #perl6
06:31 hoverboard joined #perl6
06:33 [Sno] joined #perl6
06:42 anaeem1_ joined #perl6
06:43 kaleem joined #perl6
06:49 rurban1 joined #perl6
06:53 Mouq m: say join ', ', &trait_mod:<is>.candidates.map({ .signature.params.grep({.named & ! .optional & ! .slurpy}) })>>.name.uniq
06:53 camelia rakudo-moar 6cc807: OUTPUT«$DEPRECATED, $rw, $nativesize, $unsigned, $hidden, $array_type, $readonly, $box_target, $parcel, $default, $inlinable, $onlystar, %spec, &equiv, &tighter, &looser, $assoc, $copy, $required, $export, $SYMBOL, $docs, $hidden_from_backtrace, $pure, $dynamic, …»
06:55 zakharyas joined #perl6
06:57 brrt joined #perl6
07:00 Alina-malina joined #perl6
07:04 ventica joined #perl6
07:05 ventica .
07:05 ventica m: my Dog $spot; say $spot.WHAT;
07:05 camelia rakudo-moar 6cc807: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Type 'Dog' is not declaredâ�¤at /tmp/_2Zjs59RYN:1â�¤------> [32mmy Dog[33mâ��[31m $spot; say $spot.WHAT;[0mâ�¤Malformed myâ�¤at /tmp/_2Zjs59RYN:1â�¤------> [32mmy [33mâ��[31mDog $spot; say $spot.WHAT;[0mâ�¤    expec…»
07:06 ventica m: my $spot; say $spot.WHAT
07:06 camelia rakudo-moar 6cc807: OUTPUT«(Any)␤»
07:06 ventica_desktop joined #perl6
07:06 ventica m: my Int $i; say $i.WHAT;
07:06 camelia rakudo-moar 6cc807: OUTPUT«(Int)␤»
07:07 ventica m: my $num; my $type=Int; say ($type($num)).WHAT;
07:07 camelia rakudo-moar 6cc807: OUTPUT«Cannot find method 'Int'␤  in block  at /tmp/YE11BBhkjq:1␤␤»
07:07 ventica .oO(S02 must outdated)
07:09 ventica m: my int $i; my Int $j; say $i.WHAT == $j.WHAT;
07:09 camelia rakudo-moar 6cc807: OUTPUT«Invocant requires an instance, but a type object was passed␤  in method Bridge at src/gen/m-CORE.setting:4498␤  in sub infix:<==> at src/gen/m-CORE.setting:4415␤  in block  at /tmp/PypFkUEfJD:1␤␤»
07:11 avuserow now I feel a bit silly. turns out that the deprecation warnings I saw previously in the rakudo star modules were previously fixed by FROGGS++ moritz++ supernovus++ and retupmoca++, so now I have what appears to be a happy MoarVM build, and a promising parrot test run in progress
07:12 avuserow that just leaves release announcement editing, sanity checking, and the final upload, unless I'm missing something?
07:12 TimToady m: my int $i; my Int $j; say $i.WHAT === $j.WHAT;
07:12 camelia rakudo-moar 6cc807: OUTPUT«True␤»
07:13 TimToady ventica: you picked numeric equality there
07:13 airen I need to look at the moarvm ebuild for gentoo. Gives errors and says it's looking for things in /var/tmp/portage
07:13 airen Which is just hilariously wrong
07:13 ventica hrm, was worried abt that
07:14 ventica why is it true thought
07:14 ventica though?
07:15 moritz m: say so 1|2|3 ~~ 2
07:15 camelia rakudo-moar 6cc807: OUTPUT«True␤»
07:15 TimToady probably because native types are only kind of implemented
07:16 ventica ok... so spec-behavior will return false?
07:16 TimToady probably oughta
07:16 ventica m: say "foo".WHAT; # experiment...
07:16 camelia rakudo-moar 6cc807: OUTPUT«(Str)␤»
07:17 ventica k
07:17 TimToady but types on natives have to be carried by the native descriptor rather than the object, so it might be cheating currently
07:17 ventica m: my Str $s; say $s.WHAT === "foo".WHAT;
07:17 camelia rakudo-moar 6cc807: OUTPUT«True␤»
07:18 TimToady r: my uint64 $i; say $i.WHAT
07:18 camelia rakudo-{parrot,jvm,moar} 6cc807: OUTPUT«(Int)␤»
07:19 ventica mhmm
07:19 TimToady otoh, storage types are kind of like subset types, which have a constraint, and a base type, which would be Int in such a case
07:20 psch morning #perl6
07:20 TimToady int8 would be like a subset of Int where * < 256
07:20 moritz and a lower boundary too :-)
07:20 TimToady er, where * ~~ -128 .. 127
07:20 psch airen: re ebuild: holysword was here two nights ago; apparently there's about 10 tickets on the gentoo tracker for the moarvm ebuild already
07:21 psch lue++ had some idea after holysword left afair
07:21 ventica m: my Str $s="foo"; say $s[0];
07:21 camelia rakudo-moar 6cc807: OUTPUT«foo␤»
07:21 psch http://irclog.perlgeek.de/perl6/2014-07-23#i_9065693
07:21 * ventica surprised
07:24 ventica m: my Str $s="foo"; say $s.substr(0);
07:24 camelia rakudo-moar 6cc807: OUTPUT«foo␤»
07:24 ventica oh
07:24 ventica m: my Str $s="foo"; $s.substr(0).say;
07:24 camelia rakudo-moar 6cc807: OUTPUT«foo␤»
07:24 * ventica argh
07:25 ventica ohhhh
07:25 ventica m: my Str $s="foo"; $s.substr(0,1).say;
07:25 camelia rakudo-moar 6cc807: OUTPUT«f␤»
07:25 ventica ha
07:25 sergot o/
07:25 psch m: "foo".substr(*, 1).say
07:25 ventica \o
07:25 camelia rakudo-moar 6cc807: OUTPUT«No such method 'Int' for invocant of type 'Whatever'␤  in method substr at src/gen/m-CORE.setting:5797␤  in block  at /tmp/we94kCMUrz:1␤␤»
07:26 Ven joined #perl6
07:26 psch m: my &letters = "foo".substr(*, 1); say letters($_) for 0..2
07:26 camelia rakudo-moar 6cc807: OUTPUT«No such method 'Int' for invocant of type 'Whatever'␤  in method substr at src/gen/m-CORE.setting:5797␤  in block  at /tmp/i21O_7dom8:1␤␤»
07:26 psch m: my &letters = "foo".substr({*}, 1); say letters($_) for 0..2
07:26 camelia rakudo-moar 6cc807: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/YPZXhQLuD7â�¤{*} may only appear in protoâ�¤at /tmp/YPZXhQLuD7:1â�¤------> [32mmy &letters = "foo".substr({*}[33mâ��[31m, 1); say letters($_) for 0..2[0mâ�¤    expecting any of:â�¤        method…»
07:27 ventica m: say *.WHAT;
07:27 camelia rakudo-moar 6cc807: OUTPUT«(Whatever)␤»
07:28 Ven psch: are you just looking for $_ here ?
07:28 psch m: my &letters = { $^a.substr: $^b, 1 }; say for letters( "foo", 0..2 )
07:28 camelia rakudo-moar 6cc807: OUTPUT«␤»
07:28 Ven oh. you're trying to partial apply it
07:28 psch Ven: right, i think so :)
07:29 * psch is tempted to just leave it at that with a "eh, Whatever"
07:29 psch m: my &letters = -> $a, $b { $a.substr: $b, 1 }; say for letters( "foo", 0..2 )
07:29 camelia rakudo-moar 6cc807: OUTPUT«␤»
07:29 psch oh hm
07:30 psch m: my &letters = -> $a, $b { $a.substr: $b, 1 }; say letters( "foo", $_ ) for 0..2
07:30 camelia rakudo-moar 6cc807: OUTPUT«f␤o␤o␤»
07:30 psch there it is
07:30 * ventica 0_0  @  ->
07:31 ventica what is the term for the arrow there? (need to go read up on it)
07:31 Ven ventica: closure?
07:31 TimToady pointy block? lambda?
07:32 Ven m: my &letters = { $^a.substr($^b, 1) }; say letters("foo", $_) for 0..2
07:32 camelia rakudo-moar 6cc807: OUTPUT«f␤o␤o␤»
07:32 ventica as used above ... (12:30:13 AM) psch: m: my &letters = -> $a, $b { $a.substr: $b, 1 }; say letters( "foo", $_ ) for 0..2
07:32 Ven psch: ^
07:32 psch Ven++: yeah, that's more concise
07:32 Ven ventica: what TimToady++ just said :-)
07:32 ventica an equal followed by an arrow looks like alien-speak to my eyes
07:33 psch a block with placeholders implies a thin arrow?
07:33 ventica ok
07:33 Ven ventica: he's assigning (`=`) a pointy block (`->`) to "&letters"
07:34 ventica ok... and pointy-block is how a lambda looks in perl6 , correct?
07:34 TimToady m: say (-> $a, $b { $a * $b })(2,21)
07:34 camelia rakudo-moar 6cc807: OUTPUT«42␤»
07:34 ventica aha, thx TimToady
07:34 * ventica lightbulb
07:35 TimToady m: say (-> $a, $b { $a * $b }).WHAT
07:35 camelia rakudo-moar 6cc807: OUTPUT«(Block)␤»
07:35 * psch answers his own question with "yes", refering to S06:1931
07:35 * synopsebot Link: http://perlcabal.org/syn/S06.html#line_1931
07:36 Ven psch: {} and -> {} are basically the same, really. One can be confused with hashes, and the other allows for parameters, but AFAIK, it's the same otherwise.
07:37 darutoko joined #perl6
07:37 TimToady m: say { $_ * 2 }(21)
07:37 camelia rakudo-moar 6cc807: OUTPUT«42␤»
07:38 TimToady m: say { [*] @_ }(2,21)
07:38 camelia rakudo-moar 6cc807: OUTPUT«42␤»
07:38 FROGGS ohh noes... another RT ticket to solve :/
07:39 FROGGS ohh what does my irc client here? O.o
07:39 FROGGS joined #perl6
07:42 ventica m: my $foo = {$_ * 2}; say $foo.WHAT;
07:42 camelia rakudo-moar 6cc807: OUTPUT«(Block)␤»
07:43 psch m: ({$^a}).signature.say
07:43 camelia rakudo-moar 6cc807: OUTPUT«:($a)␤»
07:43 psch m: ({ }).signature.say
07:43 camelia rakudo-moar 6cc807: OUTPUT«No such method 'signature' for invocant of type 'Hash'␤  in block  at /tmp/HADtyUZ3BK:1␤␤»
07:43 ventica u made camelia sad
07:43 ventica :P
07:43 TimToady m: {;}.signature.say
07:43 camelia rakudo-moar 6cc807: OUTPUT«:($_? is parcel)␤»
07:44 psch oh, @_ and %_ are only supposed to show up in the signature when they're referenced inside the block i gather
07:44 TimToady yes
07:45 psch that does make sense
07:50 rurban1 joined #perl6
07:51 jack_rabbit joined #perl6
07:52 FROGGS japhb: the 'weird' work estimate is that way so that there are more measurements with lower values and less with higher...
07:52 dmol joined #perl6
07:53 ventica my %foo = {"bar" => 42}; say %foo.perl;
07:53 ventica uho
07:53 ventica uhoh&
07:53 FROGGS japhb: scaling=>double was kinda useless because the old code cannot handle codepoints > 0xFFFF or so, so there where not much measurement points at all
07:54 FROGGS japhb: and scaling=>linear will take ages to complete
07:54 FROGGS japhb: feel free to make it available as scaling=>weird :P
07:55 Alina-malina joined #perl6
07:56 ventica m: my %foo = {"bar" => 42}; say %foo.perl; #oops
07:56 camelia rakudo-moar 6cc807: OUTPUT«("bar" => 42).hash␤Saw 1 call to deprecated code during execution.␤================================================================================␤%foo = itemized hash called at:␤  /tmp/MvapE_RPyC, line 1␤Please use %foo = %(itemized hash) inste…»
07:56 ventica m: my %foo = {"bar" => 42}; say %foo<bar>;
07:56 camelia rakudo-moar 6cc807: OUTPUT«42␤Saw 1 call to deprecated code during execution.␤================================================================================␤%foo = itemized hash called at:␤  /tmp/ZIXLyrG1Qt, line 1␤Please use %foo = %(itemized hash) instead.␤----------…»
07:57 ventica oh
07:57 ventica nvm
08:02 ventica_desktop m: my Int $i; my $whatter = {$_.WHAT}; say $whatter($i);
08:02 camelia rakudo-moar 6cc807: OUTPUT«(Int)␤»
08:05 denis_boyun_ joined #perl6
08:05 psch m: my &renew = -> { $^a = ::($a.WHAT).new }; my $a = 5; say $a; renew $a; say $a;
08:05 camelia rakudo-moar 6cc807: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/e47wRWQvsi�Placeholder variable '$^a' cannot override existing signature�at /tmp/e47wRWQvsi:1�------> [32mmy &renew = -> { $^a = ::($a.WHAT).new }[33m�[31m; my $a = 5; say $a; renew $a; s…»
08:05 psch m: my &renew = { $^a = ::($a.WHAT).new }; my $a = 5; say $a; renew $a; say $a;
08:05 camelia rakudo-moar 6cc807: OUTPUT«5␤use of uninitialized value of type Int in string context  in block  at /tmp/Sy35ui90N3:1␤␤Not enough positional parameters passed; got 1 but expected 2␤  in method new at src/gen/m-CORE.setting:12869␤  in block  at /tmp/Sy35ui90N3:1␤␤»
08:06 psch that probably would work better with a non-core class
08:06 moritz no
08:06 moritz your problem is that .WHAT returns the type object
08:06 moritz not the name
08:06 psch ahh
08:06 moritz use $a.^name instead
08:06 psch so i don't even need the lookup
08:06 psch or that, yes
08:07 moritz right, you can say $a.WHAT.new
08:07 ventica_desktop o.O
08:07 psch m: class A {my &renew = { $^a = $a.WHAT.new }; my $a = 5; say $a; renew $a; say $a;
08:07 camelia rakudo-moar 6cc807: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/sVQloWZ23iâ�¤Unable to parse expression in block; couldn't find final '}' â�¤at /tmp/sVQloWZ23i:1â�¤------> [32m }; my $a = 5; say $a; renew $a; say $a;[33mâ��[31m<EOL>[0mâ�¤    expecting any of…»
08:07 masak good antenoon, #perl6
08:07 psch uh
08:08 ventica_desktop o/
08:08 psch m: my &renew = { $^a = $a.WHAT.new }; my $a = 5; say $a; renew $a; say $a;
08:08 camelia rakudo-moar 6cc807: OUTPUT«5␤Cannot assign to a readonly variable or a value␤  in block  at /tmp/Pmg8cECwW0:1␤␤»
08:08 psch m: my &renew = -> $a is rw { $a = $a.WHAT.new }; my $a = 5; say $a; renew $a; say $a;
08:08 camelia rakudo-moar 6cc807: OUTPUT«5␤0␤»
08:08 psch masak o/
08:08 moritz m: my &renew = <-> $a { $a = $a.WHAT.new }; my $a = 5; say $a; renew $a; say $a;
08:08 camelia rakudo-moar 6cc807: OUTPUT«5␤0␤»
08:08 psch ah, more shortcuts :)
08:08 moritz a bit syntactic sugar for RW arguments :-)
08:08 psch moritz: did you see my update to PR #295, ooc?
08:09 masak psch: $a.new should work, too
08:09 psch m: my &renew = <-> $a { $a = $a.new }; my $a = 5; say $a; renew $a; say $a; # does it?
08:09 camelia rakudo-moar 6cc807: OUTPUT«5␤0␤»
08:10 ventica_desktop is there a way to get back the lexical name of $foo? Something like "$foo.^myname" === "foo"
08:10 moritz psch: I saw what you wrote, but I didn't get around to an actual code review. Sorry
08:10 moritz ventica_desktop: $foo.VAR.name
08:10 ventica_desktop ah
08:10 psch moritz: no worries, i just wanted to mention the spec change and all, whenever you (or anyone else, really) has time
08:10 isBEKaml joined #perl6
08:10 ventica_desktop nice
08:11 ventica_desktop so much better than $$foo !
08:13 ventica_desktop ooh, .fmt is nice
08:17 Ven ventica_desktop: trying out Perl 6? :)
08:18 thou joined #perl6
08:19 ventica_desktop Ven: yes; hoping to contribute
08:19 ventica_desktop wud like to work on MoarVM
08:20 ventica_desktop longtime P5 user... been cautiously waiting on the sidelines for P6... now feels like the time to jump in :)
08:20 moritz \o/
08:20 moritz and I see you already found #moarvm
08:20 ventica_desktop yeah, chatted with jnthn on what needs doing
08:21 Ven ventica_desktop: if you're still in your "first learning" stage, feel free to try out https://github.com/Nami-Doc/learnxinyminutes-docs/blob/master/perl6.html.markdown :P
08:21 ventica_desktop he recommended work on Asyn Socket I/o
08:21 ventica_desktop Ven: thx for the tip.... bookmarked
08:21 Ven (you're definitely not a guinea pig for my tutorial :P)
08:22 ventica_desktop Ven: I know you're hiding food pellets...
08:25 fhelmberger joined #perl6
08:25 FROGGS avuserow: that sounds promising! please let me know if you have a release candidate I could test
08:28 xinming joined #perl6
08:33 masak ventica_desktop: \o/
08:33 moritz avuserow: do you need a commit bit for rakudo/star ?
08:35 * Ven doesn't see avuserow's messages :o)
08:36 * Ven realizes he just doesn't have enough backlog here
08:40 isBEKaml|2 joined #perl6
08:42 isBEKaml joined #perl6
08:43 ventica_desktop o/ masak
08:45 ventica_desktop Ven: I'm not grokking the :<value><name> named-parameter syntax... I mean, I think I am but a part of me is very surprised by it...
08:46 Ven ventica_desktop: you mean f(:a(1)) ?
08:46 ventica_desktop no, f(:1a)
08:47 ventica_desktop me no likey
08:47 Ven oh, alright. It's mainly for (:2th) and such.
08:48 Ven (maybe I shouldn't talk about it ? Or is the explanation confusing ?)
08:48 ventica_desktop explanation is clear
08:48 ventica_desktop I just don't like the feature... or I think it may only have limited +ve application, like the one you just mentioned
08:49 ventica_desktop its my experiecne that blub programmers have a tendency to misapply this kind of feature
08:49 Ven well, I'm not the one responsible for the feature :P.
08:49 ventica_desktop Can you write f(:"bar"foo) ?
08:49 psch m: $_ = "foo"; s:2nd/o/u/; .say
08:49 camelia rakudo-moar 6cc807: OUTPUT«fou␤»
08:49 Ven ventica_desktop: no, don't think so
08:49 psch that's the reason for the feature - i've never considered it in a general case
08:50 Ven then I probably shouldn't explain it here
08:50 ventica_desktop as long as a person follows best practice, ican see how t's nice
08:50 jack_rabbit joined #perl6
08:50 psch see S06:635
08:50 synopsebot Link: http://perlcabal.org/syn/S06.html#line_635
08:51 rurban1 joined #perl6
08:51 * Ven realizes he needs to explain but and does.
08:51 Ven (as separate ones, I mean)
08:56 psch m: sub foo(Int :$named) { say $named }; foo :5named
08:56 camelia rakudo-moar 6cc807: OUTPUT«5␤»
08:56 ventica_desktop 8|
08:56 psch it's *probably* not a great idea to use it like that, but there is this "don't forbid insanity" thingy... :)
08:57 psch m: sub foo(Int :$named) { say $named }; foo :"bork"named
08:57 camelia rakudo-moar 6cc807: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/rQGUpEFbc4â�¤Two terms in a rowâ�¤at /tmp/rQGUpEFbc4:1â�¤------> [32mub foo(Int :$named) { say $named }; foo [33mâ��[31m:"bork"named[0mâ�¤    expecting any of:â�¤        argument listâ�¤        â€¦Â»
08:58 Ven psch: that's not allowed (and it's good) :P
08:59 * Ven likes to forbid insanity far more than usual #perl6ers++
08:59 * ventica_desktop relieved
09:02 ventica wait, so an idiomatic for(@arr) is actually taking a lambda?
09:02 ventica for @arr -> $arr { ... }  ; the -> is a "pointy-block"?
09:02 jnthn Yes
09:02 ventica nice
09:02 jnthn Meaning that you can go over things two at a time just by giving it two args, for example.
09:02 jnthn *params
09:03 ventica oh that is so sweet
09:03 ventica two-at-a-time in P5 is a pain
09:03 isBEKaml left #perl6
09:03 moritz m: for <a b c> Z 1..* -> $char, $number { say "$char: $number" }
09:03 camelia rakudo-moar 6cc807: OUTPUT«a: 1␤b: 2␤c: 3␤»
09:04 ventica :)
09:04 jnthn The other really common idiom with 2-at-a-time is
09:04 Ven ventica: it's even greater than what you think, because it means $_ is the same everywhere !
09:04 jnthn m: my %h = a => 2, b => 3; for %h.kv -> $key, $value { say "$key = $value" }
09:04 camelia rakudo-moar 6cc807: OUTPUT«a = 2␤b = 3␤»
09:05 Ven That's what I like when I "teach" people p6, I just can say "you remember that $_ you could use in lambdas ? Well, you pass a lambda to for, so gg !"
09:05 jnthn Where .kv makes a (key, value, key, value, ...)
09:05 ventica jnthn: super nice
09:06 Ven m: my %h = <a 2 b 3>; for %h.kv -> $k, $v { say "$k = $v. " } # ventica: you can init hashes that way too
09:06 camelia rakudo-moar 6cc807: OUTPUT«a = 2. ␤b = 3. ␤»
09:06 ventica mhmm
09:08 ventica m: say (1,2) eqv (1,3);
09:08 camelia rakudo-moar 6cc807: OUTPUT«False␤»
09:08 ventica m: my $a=1; say ($a,2) eqv (1,2);
09:08 camelia rakudo-moar 6cc807: OUTPUT«True␤»
09:08 * Ven doesn't really like that there's so much equality operator
09:08 ventica hmm ok
09:08 ventica was thinking something different
09:09 * Ven thinks it hurts transitivity
09:09 ventica yeah but that's really part of Perl culture
09:09 ventica we always had a lot of kinds of equalities
09:10 * Ven hasn't done any perl 5 :)
09:10 ventica ah
09:10 jnthn Generally, there are plenty of operators, 'cus if you don't statically know the types of data, you really want to know the semantics of the operation.
09:10 jnthn Thus the split of + and ~ also.
09:11 ventica there are lots of P5 stackexchange questions of the variety 'why is "" false AND 0 false??'
09:11 ventica Ven: as u note, break transitivity... :P
09:11 ventica breaks*
09:13 ventica m: my @a = 1 .. 3; say @a;
09:13 camelia rakudo-moar 6cc807: OUTPUT«1 2 3␤»
09:13 ventica m: my @a = 3 ..1; say @a;
09:13 camelia rakudo-moar 6cc807: OUTPUT«␤»
09:13 ventica mkay
09:13 * Ven is just worried of non-commutative equality, like in some languages
09:14 masak "" and 0 are both false because there are natural transformations Str => Bool and Numeric => Bool which work very well when "" and 0 map that way.
09:14 moritz ~~ is explicitlz non-commutatative
09:14 Ven yeah, it makes sense for ~~.
09:14 moritz but the rest (==, eq, ===, eqv) are all commutative and associative
09:15 moritz and transitive
09:15 masak well, s/associative/chaining/
09:15 moritz right
09:16 psch that reminds me of how little i understood of trying to make ~~ chaining
09:16 psch other chaining ops map to vm operations, ~~ maps to an ast
09:16 psch wrapping that whole in an :op<chain> doesn't work, wrapping everything also doesn't
09:16 moritz https://en.wikipedia.org/wiki/Transitive_relation#Counting_transitive_relations is interesting
09:16 psch i.e. #81336 (i think it was?) is still out of my reach :P
09:16 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=81336
09:16 ventica masak: Yeah, but I think what hangs up non-Perlers is that if False === ""  and False == 0, then "" === 0, but that's obviously not true
09:17 ventica correction: False === 0
09:17 moritz psch: personally, I think that ~~ shouldn't be chaining
09:17 masak ventica: that's not what === means :)
09:17 masak m: say False === 0
09:17 camelia rakudo-moar 6cc807: OUTPUT«False␤»
09:17 ventica masak: I'm shaky in p6 equivalences... i mean it in pseudocode
09:17 psch moritz: jnthn recommended a patch to see how it'd work, but if anything i also think it rather shouldnt
09:18 moritz ventica: those people confuse identity and coercion. That's forgivable
09:18 psch well, "recommended" is maybe too strong a word
09:18 masak ventica: I think the proper way to think about it is *mappings*. if everything gets flattened to Bool, then False is 0 is ""
09:18 masak ventica: if everything isn't, then... they're not equal, in general.
09:18 moritz the same argument can be made the other way too, you know? if 2 is True and 3 is True, does that mean that 2 and 3 are the same?
09:18 ventica masak: Sure... and I totallythink that way... I think this is a problem that comes from the blackboard (or whiteboard as the case may be)
09:19 moritz if you do it for True values, you quickly realize how silly that approach of thinking is
09:19 ventica moritz: I think the people who object to "" == 0 == False, will also struggle with 2 == True
09:19 ventica since 1 == True
09:19 ventica so are you saying 1 == 2?
09:19 nbrown joined #perl6
09:20 * masak .oO( the mapping isn't injective! )
09:20 ventica my opinion is that ppl that think that way should probably stick to Mathematica...  :P
09:20 pecastro joined #perl6
09:21 masak I see nothing wrong with basing your language on established theory.
09:21 masak better than basing it on a hunch :)
09:22 * Ven groans
09:22 ventica *+*  wth is that??
09:22 masak m: my $c = * + *; say $c(40, 2)
09:22 camelia rakudo-moar 6cc807: OUTPUT«42␤»
09:23 Ven ventica: if you're reading it in my tutorial, it's probably explained :)
09:23 ventica my @primes = 1, 1, *+* ... *; # lazy infinite list of prime numbers, computed using a closure !
09:23 Ven right to the right or below
09:23 Tene These days I'm pretty unhappy with implicit coercion.
09:23 masak it's a closure that takes two parameters, and adds them. hence the +
09:23 Ven Tene: coercion is not DWIMmy :P
09:23 ventica hmm, going to need some time to beat that one into my skull
09:24 masak Tene: I teach Python, so I see what you mean. but I feel Python goes to the other extreme, and wants every coercion to be explicit.
09:24 Tene These days I prefer "" == 0 to be TYPE ERROR
09:24 ventica wait, what? : say @primes[^10]; #=> 1 1 2 3 5 8 13 21 34 55
09:24 ventica primes = fib seq?
09:24 masak ;)
09:24 masak ventica: wrong name for the array, methinks.
09:24 masak is that from Ven's tutorial?
09:24 ventica yeah
09:24 Ven yeah haha, I think I changed it to be fib, but didn't change the explanation
09:25 Tene But, haskell is there for me already; no need for Perl to also be haskell
09:25 Ven comments getting out of date hahaha.
09:25 Ven Also, you're getting confused with *+* because I used to explain * before, but I've moved it below, and now everything is broken
09:25 ventica the section on list comprehensions is pretty crazy... it's not ven's fault, list comprehensions in p6 appear to be mandatory insanity...
09:25 psch m: my &whatever = * + *; my &placeholder = { $^a + $^b }; say whatever 5, 5; placeholder 5, 5; # pretty similar actually
09:25 camelia rakudo-moar 6cc807: OUTPUT«10␤»
09:25 ventica Ven: ah, makes sense
09:25 psch ENOSAY :(
09:25 Ven ventica: you can jump to that part: "# You can also use the "whatever star" to create an anonymous function"
09:25 masak Tene: Haskell has too much explicit pattern matching. pattern matching is boilerplate, repeating the same "shape" of a type over and over again. I'm waiting for a language that solves that.
09:26 Ven masak: too much explicit pattern matching ?
09:26 masak too much explicit pattern matching.
09:26 psch m: my @fib = 1, 1, $^a + $^b ... 20; say @fib
09:26 camelia rakudo-moar 6cc807: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/EwYggOtot9�Cannot use placeholder parameter $^a in the mainline�at /tmp/EwYggOtot9:1�------> [32mmy @fib = 1, 1, $^a[33m�[31m + $^b ... 20; say @fib[0m�»
09:26 Ven psch: mising those {}.
09:26 masak psch: need curlies.
09:27 psch right.  i did it right the first time... :)
09:27 Ven masak: well, it's easy: import Prelude hiding (.); a . b = b a
09:27 Ven masak: then you can do data.field :P
09:27 lelf joined #perl6
09:27 ventica Haskell... to use a phrase I learned from Doug Hofstadter... exceeds my abstraction limit :P
09:28 masak Ven: I think we are talking about different things.
09:28 Ven masak: you don't need to extract a shape that way ;)
09:28 psch m: my @fib = 1, 1, { $^a + $^b } ... 20; say @fib # where do they go? or is this broken?
09:28 camelia rakudo-moar 6cc807: OUTPUT«(timeout)»
09:29 Ven psch: it's not broken -- 20 is just never "hit"
09:29 jnthn 20 isn't a fib?
09:29 psch oh right
09:29 ventica its' not
09:29 ventica 21
09:29 ventica 8+13=21
09:29 psch i'm assuming too much magic it seems
09:29 Ven m: my @fib = 1, 1, { $^a + $^b } ... * > 20; say @fib # psch <- safety
09:29 camelia rakudo-moar 6cc807: OUTPUT«1 1 2 3 5 8 13 21␤»
09:31 Ven ventica: updated the tutorial to be saner in its ordering :)
09:31 ventica subset Even of Int where * %% 2; # <-- this is quite aesthetic, but how in the world can it possibly be efficiently implemented??
09:31 Ven ventica: what do you mean, efficiently implemented ?
09:31 ventica Ven: Cool... still working through... about the 50% mark now
09:31 Ven You'd have to do the checks yourself, it's just doing it For You.
09:31 ventica Ven: I mean, in P6 guts
09:31 Ven ventica: you should see the explanation for whatever star, just a little below (I just modified it to be at the Correct Place)
09:32 ventica Ven: ok... I get the basic idea... but laziness seems so dangerous to me
09:32 Ven embrace it :)
09:32 ventica like, hang bugs hiding behind every corner...
09:32 jnthn We did have it more magical in the past.
09:34 ventica btw, what is the P6 def'n of "closure"... that word is heavily overloaded in the industry, seems to mean a dfferent thing to everyone
09:34 ventica im happy with a pointer into the synopses...
09:35 moritz ventica: a code object that contains references to outer lexicals
09:35 ventica just it's next wider scope?
09:35 ventica i mean parent scope?
09:35 ventica incl. globals, of course
09:35 moritz lexicals from any outer scoper
09:36 ventica k... I was always fuzzy on P5 scoping, so this is going to be a bit of a chore to get straight in my head
09:36 moritz and since the setting (which provides the operators and built-in classes) is provided as an outer context, every non-trivial piece of code is a closure
09:36 * Ven now realizes why he moved it in the first place ... erm
09:36 ventica the P5 classic-scoping/my/our scoping is ... bleh
09:44 * Ven is now moving everything in his tutorial ... sigh
09:44 ventica i like the concept of flip-flop (my background is comp. H/W) but the syntax is a bit awkward i think
09:44 Ven I moved it because I needed to have loops explained. Sigh.
09:45 Ven so either I rollback everything and I move the sequence operator "later", either I don't know.
09:46 ventica Ven: The 55% of the tutoral i got thru is good... it's a difficult subject :P
09:47 Ven you skipped the OO part ?
09:47 Ven because I think flip flop is near the end
09:47 ventica yeah, i've see the ff operator before and was curious
09:47 ventica besides, I hate OO
09:47 ventica too bureaucratic for my tastes
09:47 ventica in fact, the lack of OO is one of the reasons i fell in love with P5
09:48 ventica i mean, ignoring all the 'bless' yuckiness
09:48 masak I used to think OO was too bureaucratic. then I saw it done well.
09:48 masak most of it isn't done well, it's cargo-culted to the max.
09:48 ventica masak: I'm not religious abt it, but I pretty much don't think it can be done well... i know others disagree
09:48 Ven I used to love OO. Then I just realized I just wanted a better module system ...
09:49 ventica yup
09:49 Ven Well, except for one thing: subtyping is both terryfying me and exciting me.
09:49 masak I'm not religious about it either. and yes, modules/encapsulation go a long way.
09:49 masak OO inheritance is way overplayed.
09:49 ventica the p6 way of doing type-restrictions are the ideal, IMO
09:49 Ven damn those C++ guys :P
09:49 ventica personally, I think typing is mostly a lot of hot air
09:49 Ven ventica: thanks for proof-reading :p
09:49 masak I blame Plato.
09:50 ventica exactly, it really is plato
09:50 ventica strange how a guy dead for nearly 2,500 years is dictating our PL paradigms...
09:50 Ven not that one :P.
09:51 * Ven chuckles
09:51 ventica Ven: yw... i can't go any further tonight... i'm already up way too late
09:51 Ven (well, at least, I don't think so hahahaha)
09:52 rurban1 joined #perl6
09:52 * Ven mumbles something about typing being the movable image of the immovable thingies
09:53 ventica lol
09:53 ventica m: my $foo = *; #<-- all the typing I will ever need....
09:53 camelia rakudo-moar 6cc807: ( no output )
09:53 Ven To each his own :)
09:54 Ven ventica: do you think the tutorial is "good enough" to be "unveiled to the real world" :P ?
09:54 ventica Ven: What I've gone thru so far is good
09:55 ventica good balance between detail and parsimoniousness
09:55 Ven 'hope that convinced you to use some perl 6 here and there :P
09:55 ventica oh, i've already been on board for years... just been waiting for it to get stabler
09:56 ventica (if stabler is a word... :P)
09:57 ventica Ven: I think ur tutorial is hitting a sweet-spot... the docs are thorough but take too long to go through... the test suite is too terse and doesn't explain what anything is doing
09:57 ventica i feel like goldilocks
09:58 Ven haha yeah, I started using it really fast for my personal projects, where I can just do Whatever I Want.
09:58 * jnthn wonders if Ven++'s tutorial - Ven willing, of course - might deserve inclusion in doc.perl6.org too, since that lacks a good introduction
09:58 Ven jnthn: well, you'll have to tell me. But it was built exactly for this purpose
09:58 * masak is happy that ventica-goldilocks can bear the tutorial :P
09:59 Ven masak: I'm happy it's not too big a serving, or too hot, to stomach :).
09:59 ventica lolol
09:59 ventica or too hard to sleep on
09:59 masak that remains to be seen.
09:59 psch it does seem a bit hard to sleep on
09:59 Ven watcha doing to my tutorial.
09:59 ventica lol
09:59 psch seeing as you're still up ventica :P
09:59 ventica true
10:00 ventica i threw the idea of a rakudo+JVM "Try Perl 6" page out earlier today (no, I don't have the web programming skills to make it happen)... that + a Ven-style tutorial would definitely not be too hard or soft to sleep on....
10:01 ventica you know, just click the line of code to copy/paste it over into the webtoy REPL
10:01 psch was it pugs that was behind try.perl6.org when it was still up? (which might well have been a few years ago)
10:02 ventica psch: now u mention it, i'm vaguely remembering that
10:02 psch i dimly remember that having existed at one point, long before i really considered trying to do thinks with perl6
10:02 ventica I was thinking of Try Arc (I love Arc, it's a cute little language)
10:02 ventica yeah, p6 was strictly PoC at that time
10:03 ventica something like this ---> http://tryarc.org
10:03 masak psch: yes. that was Pugs.
10:03 ventica http://tryarc.org/
10:03 ventica oops
10:03 ventica arc> (+ 1 1)
10:03 ventica 2
10:03 masak psch: would be great to get to the point where we have a try.perl6.org again.
10:04 chenryn joined #perl6
10:04 ventica arc> (pr "Me and Perl6 are best buds")
10:04 ventica Me and Perl6 are best buds"Me and Perl6 are best buds"
10:04 ventica masak: exactly
10:05 Ven Arc is kinda dead, though :(
10:06 masak except that it still drives HN.
10:06 masak there does seem to be a little bit of life in Anarki.
10:06 ventica Ven: it lacks a BDFL ... which is kind of a necessary thing for a language to actually develop into something useful...
10:06 Ven paul graham would be the one, but he stopped in 2009 right ?
10:06 ventica last i heard
10:06 masak the fact that the link at http://arclanguage.org/install 404s is a bloody embarassment.
10:06 thou joined #perl6
10:07 colomon hmmm, big batch of build failures on http://host07.perl6.com:8080/report last night.  :\
10:08 jnthn colomon: Ugh. Any way to get the build log?
10:08 psch how much would go wrong with stuffing m-camelia into a chroot or jail and slapping a website onto the front, ooc?
10:08 psch and maybe also "what would go wrong"
10:09 psch (feel free to stop enumerating at the biggest show stopper)
10:09 colomon jnthn: no.  was just trying to duplicate it here.
10:09 psch the obvious thing i can see is persistence
10:09 ventica psch: Not a showstopper for a Try*
10:10 * colomon has been trying to resist posting a p6 fib implementation here: https://news.ycombinator.com/item?id=8084354
10:10 psch i guess any efforts in that direction are better served with "fix the REPL"
10:10 * masak checks what went wrong in Druid
10:11 * colomon is building latest rakudo-moar
10:11 ventica psch: yeah, but, what use is a REPL if no one is using it?
10:11 ventica I haven't been following p6 news for the last year or so... I had no idea how healthy it acually is
10:12 masak ventica: it's hard to see from the outside.
10:12 ventica don't laugh
10:12 masak not laughing.
10:12 ventica masak: I know
10:12 masak the echo chamber is a real thing. it's difficult for stuff to get out.
10:12 ventica i'm just thinking that there are probably a lot of old P5ers like me assuming the same thing that I was "yeah, p6 will be here one day... when I'm ready to retire"
10:13 masak "Perl 6 is the future, and always will be"
10:13 ventica hehe
10:13 psch ventica: well, camelia has her own set of problems, the REPL could probably be put onto try.perl6.org easier
10:13 masak that meme/joke/preconception is really hard to get rid of.
10:13 colomon jnthn: my first try failed to duplicate the build failure (Math::Vector)
10:14 colomon jnthn: secnd try as well
10:14 masak same here.
10:14 masak Druid builds/tests fine here.
10:15 Ven masak: I don't believe it's hard to get rid off. I just believe we're not really "trying" yet, because we don't feel ready
10:15 psch additionally the backlog says something about perl6-js for try.perl6.org i think, which does seem the neatest
10:15 masak Ven: I don't believe it's an on/off switch.
10:15 Ven masak: that's not what I said, though.
10:15 Ven That's something that has to be started.
10:16 masak Ven: it's more an area-under-the-curve thing. the more ready we are, the more users we can unleash on the thing.
10:16 colomon jnthn: I'm calling random transient failure.  will rerun smoke test now and see what happens.
10:17 Ven masak: definitely. But "publicizing the language" hasn't started yet
10:18 masak Ven: I have no idea what that means.
10:18 masak Ven: some days I feel like everyone is doing their own "but is it *released*!?" shell game.
10:18 Ven masak: exactly what I've said. You don't hear about it on hackernews, you don't see articles explaining how X did Y with it on /r/programming, you don't ...
10:19 Ven No, I think that's what you see because you're used to seeing that. I don't see that.
10:19 masak I'm tired of it. I'm using Perl 6, I've been using it since 2005. there's no release I'm looking forward to.
10:19 Ven To the outside world, Perl 6 is not even something known to exist. They don't hear about it, so they don't know about it. So they don't learn it, use
10:19 Ven They don't happen to read a blog post that uses it for examples, etc.
10:20 ren1us I think a lot of that is more prejudice against the perl label than perl6 specifically.
10:20 masak I'm tired of theories explaining why people don't care or don't get the right information. I just want to write Perl 6 code, and help improve Perl 6.
10:20 masak I want to do things that *matter*, not engage in useless games of semantics.
10:20 colomon masak: "no release I'm looking forward to" -- that's a great point.
10:21 Ven masak: Then do. But don't be annoyed that people don't understand you, because you're not opening yourself to explanations
10:21 masak I'm sick and tired of trying to PR things right.
10:21 colomon I'm using p6 pretty much every day for $work and for accomplishing useful things
10:21 masak I want to build things.
10:21 Ven Definitely. Perl has an insanely bad reputation among programmers. That's why, when I start speaking about Perl 6, I usually correct them when they say "perl"
10:21 masak Ven: I'm not annoyed that people don't understand me. I *don't care*.
10:22 masak I have a *great language* at my fingertips. I think I understand better than most how great it is, because I used it back when it was a feeble, non-great thing.
10:22 Ven masak: well, you seemed to be annoyed, considering how you spoke of it
10:22 * colomon wants to point out that $work and "accomplishing useful things" are not mutually exclusive.  ;)
10:23 ventica Encouraging developers - especially P5ers - to try Perl6 is not PR... it's just common sense. I think a webtoy (Rakudo+JVM or whatever) should be made available ASAP ... I would have been here a year or two ago at least
10:23 Ven colomon: exactly. When I did my talk, I started off with something like "I started using in prod Perl 6 around 2 months after learning it"
10:24 masak Ven: well, concepts like "ready", "release" and "production" *are* important. they're just not important to *me* and what I do. others are welcome to drown themselves in those matters.
10:24 Ven masak: I disagree. You have plenty of users not interested in these notions
10:24 masak fine.
10:25 Ven You are (or were). I am. And we can teach those people just fine -- It's a good way to build an userbase. Even though that's probably not right for the "perl phiolosphy"
10:26 ventica m: my $work; my $useful_things; say $work === $useful_things;
10:26 camelia rakudo-moar 6cc807: OUTPUT«True␤»
10:26 masak here's what I want to do with my life: I want to use Perl 6. I want to find delight in the code I write. I want to occasionally blog about it, and delight others. I want to learn about programming, and compilers, and VMs, and optimization. I want to help people find delight in all those things.
10:26 ventica Looks like you're right colomon :P
10:27 ren1us I think a webtoy is a great asset, but I also think that a big obstacle for people is the learning curve and lack of information.  As tutorials start popping up, more answers appear on stackoverflow, etc, more people (especially younger people first exposed to python) are probably going to stick with the language.
10:27 masak I don't want to spend my days on reddit arguing against people who don't want to be convinced that the product I'm using every day is worthy of their respect and attention.
10:28 ventica masak: Exactly. Roll out a webtoy and silence the critics.
10:28 masak I don't want to spend brain cycles teasing out the exact nuances of "ready" or "production".
10:28 masak because *it doesn't matter*. to me.
10:28 masak ventica: I'm glad you found your way here. sorry about the rant.
10:29 ventica masak: np... I understand the feeling overall... the general public is always unreasonably judgment, and from a position of complete ignorance too
10:29 ventica judgmental*
10:29 masak ventica: got it in one.
10:29 Su-Shee joined #perl6
10:29 Su-Shee good morning folks..
10:30 masak ahoj Su-Shee.
10:30 Su-Shee lemme remind you all of yapc::eu coming up and that there's room for lightning talks we would happily fill with some showing off of Perl 6.
10:30 Su-Shee because.. YOU KNOW.. ONLY THREE PEOPLE SUBMITTED PERL6 STUFF. ;)
10:31 masak oh, that bad, eh?
10:31 Su-Shee masak: very.
10:31 masak well, as it happens, I have a Perl 6 lightning talk ready to submit.
10:31 Su-Shee masak: you, jnthn, lichtkind.
10:31 masak it's called "Camel <--> Butterfly"
10:31 Su-Shee masak: haha.. :)
10:31 * masak goes ahead and submits it
10:32 Su-Shee good.
10:32 Su-Shee because not that I don't like the two of you speaking, it would be nice if people actually started showing off more things..
10:32 masak yeah, only three p6 speakers. that's surprising.
10:33 masak Su-Shee: thanks for the heads-up.
10:33 * jnthn thought lizmat had a talk too
10:33 Su-Shee jnthn: yes, the cocooning talk.
10:33 masak ok, so four.
10:33 masak and jnthn has two talks, no?
10:33 jnthn Well, it's fairly Perl 6 :)
10:33 jnthn Yeah, I submitted two so now I need to think of two lots of things :P
10:34 FROGGS *g*
10:34 Su-Shee masak: yes. but that's not even the same number of .. dancer talks alone!
10:34 jnthn heh, on Twitter: "Yes, speakers go ahead, submit MOAR lightning talks!"
10:34 Su-Shee sadly, I thought too late of it, otherwise I would have just ordered a range of talks and left you to fill it ;)
10:34 jnthn Moar? :)
10:34 Su-Shee jnthn: yeah, I can't tweet stiffly ;)
10:35 * jnthn could do a lightning talk on Moar :)
10:35 Su-Shee jnthn: you already have a talk talk about it :))
10:35 jnthn True :)
10:35 jnthn Maybe I'll find some other nice lighting talk idea :)
10:36 Su-Shee jnthn: I'm well aware that I can fill an entire yapc with you alone. which I would totally do because you're a great speaker. a nice yajc ;)
10:36 colomon "Repeated character (') unexpectedly found in character class" -- warning during rakudo-moar build in smoke test (last night)
10:36 masak Su-Shee: lightning talk submit'd.
10:36 Su-Shee masak: merci.
10:36 masak de rien.
10:37 masak colomon: I also get the warning during the build of src/Perl6/Grammar.nqp
10:37 masak colomon: no line number, though :/
10:39 jnthn Su-Shee: Gee, I'd have to write a lot of slides for that :P
10:40 Su-Shee jnthn: no, you'd have to write a program for writing your slides. and that would be talk nr 1 ;)
10:40 FROGGS masak: grep for ['/'
10:40 jnthn That's not a bad idea :)
10:40 Su-Shee jnthn: considering that the output format doesn't have to be powerpoint necessarily..
10:41 * colomon 's son just woke up and the first words out of his mouth were "What's a synonym for synonym?"
10:42 masak colomon: "equivalent", "metonym"
10:42 masak colomon: "analogue"
10:42 jnthn .oO( "digitale" )
10:42 * psch found the same stackexchange question as masak it seems
10:43 masak psch: no, I went for thesaurus.com :)
10:43 masak FROGGS: no such luck :/
10:43 masak anyway, Druid still builds just fine here.
10:43 psch masak: ah, that's clearly more direct
10:45 FROGGS m: my $path = ""; $path ~~ s:g { '/.'+ ['/' | $] }   = '/';     # xx/././xx -> xx/xx
10:45 camelia rakudo-moar 6cc807: ( no output )
10:46 colomon masak++  :)
10:47 Ven joined #perl6
10:47 * Ven submits https://github.com/adambard/learnxinyminutes-docs/pull/687
10:48 masak Ven++
10:49 FROGGS m: "''" ~~ / <[']>+ /
10:49 camelia rakudo-moar 6cc807: ( no output )
10:49 Ven (WTB proof-reading, thanks :P)
10:50 masak I opened it in a tab. will read it later today.
10:50 Ven thanks :)
10:52 rurban1 joined #perl6
10:53 * Ven will try again later tonight
11:00 FROGGS ohh, there is a <?['.']>
11:01 masak FROGGS++
11:02 FROGGS rakudo/src/Perl6/Grammar.nqp:3498:            || <?{ $*QSIGIL }> <?['.']> <?>
11:03 masak git blame: jnthn, 0f60583f, Jul 31 2011.
11:03 jnthn bah, what an idiot
11:03 masak jnthn++
11:03 moritz git config --global alias.praise blame
11:04 masak git confic --global alias.whodunit blame
11:04 masak g*
11:05 lelf joined #perl6
11:06 tempire joined #perl6
11:07 FROGGS jnthn: that was probably when we changed it from <?before, and there the quotes where valid :o)
11:07 jnthn Ah, true :)
11:07 erdic joined #perl6
11:07 FROGGS damn, we did sooo much things in the past I barely remember :D
11:17 dalek roast: 2944d8b | (Tobias Leich)++ | S03-smartmatch/any-num.t:
11:17 dalek roast: fix fudge line
11:17 dalek roast: review: https://github.com/perl6/roast/commit/2944d8b2bd
11:21 nbrown joined #perl6
11:26 dalek rakudo/nom: 8ff995d | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
11:26 dalek rakudo/nom: remove quotes from character class
11:26 dalek rakudo/nom:
11:26 dalek rakudo/nom: Things inside a character class should not be quoted, since the quotes would be picked up
11:26 dalek rakudo/nom: as characters to match. Thankfully the compiler warns now about these mistakes.
11:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ff995d30d
11:38 PZt joined #perl6
11:39 hoelzro morning #perl6
11:44 brrt joined #perl6
11:44 hoelzro I showed this to TimToady last night, but I thought I'd repost it in case someone else missed it and wanted to comment: https://gist.github.com/hoelzro/71b65aec6cdc2574da60
11:53 rurban1 joined #perl6
11:53 FROGGS hoelzro: I know it won't help but I don't like #= and #| :o(
11:54 hoelzro FROGGS: I've seen a couple express a similar opinion; what would *you* prefer?
11:55 FROGGS #^ instead of #= ?
11:55 thou joined #perl6
11:55 FROGGS so one can *see* where it belongs to, and does not have to memorize it
11:55 hoelzro yeah, I like that
11:55 hoelzro what about if it's on the same line, though?
11:55 hoelzro #< ?
11:55 FROGGS hmmm
11:56 FROGGS well
11:56 FROGGS same line or after the statement is kinda the same
11:56 FROGGS so #> and #< would be enough for all cases
11:56 hoelzro that sounds great to me
11:57 FROGGS let's wait for the dark lord's intervention first :o)
11:58 hoelzro which one? =P
11:58 FROGGS *g*
11:58 moritz #> and #< can come from putting an old-style diff into a comment
11:59 FROGGS true, he's more like Dumbledore... Guido is perhaps more like the Dark Lord (without trying to be offensive)
11:59 moritz (am I a dark lord now for trying to intervene?)
11:59 FROGGS moritz: is that a problem within a comment?
11:59 FROGGS we'll see
11:59 anaeem1_ joined #perl6
11:59 hoelzro I think that all of the core contributors are dark lords/ladies in their own ways =)
12:00 FROGGS yeah, we speak Parcel >.<
12:01 Ven .oO( I don't know the specifics, I was just told I'd get cookies )
12:01 hoelzro buh-dum tsch
12:02 anaeem1 joined #perl6
12:03 sergot m: "a".encode('windows-1252');
12:03 camelia rakudo-moar 6cc807: OUTPUT«Unknown string encoding: 'windows-1252'␤  in method encode at src/gen/m-CORE.setting:6553␤  in block  at /tmp/3vFX77EfuQ:1␤␤»
12:03 sergot m: "a".encode('cp-1252');
12:03 camelia rakudo-moar 6cc807: OUTPUT«Unknown string encoding: 'cp-1252'␤  in method encode at src/gen/m-CORE.setting:6553␤  in block  at /tmp/YMaI4F3uYV:1␤␤»
12:08 sergot m: "a".encode('windows1252');
12:08 camelia rakudo-moar 6cc807: OUTPUT«Unknown string encoding: 'windows1252'␤  in method encode at src/gen/m-CORE.setting:6553␤  in block  at /tmp/rrNuuDhVV2:1␤␤»
12:09 FROGGS perhaps it is not wired up correctly
12:10 FROGGS but I know that MoarVM supports it
12:12 sergot What aboout parrot and jvm?
12:12 sergot p: "a".encode('windows1252');
12:12 camelia rakudo-parrot 6cc807: OUTPUT«encoding #-1 not found␤  in method encode at gen/parrot/CORE.setting:6559␤  in block  at /tmp/VIFWJ8IrrM:1␤␤»
12:12 FROGGS jvm probably yes
12:12 sergot p: "a".encode('windows-1252');
12:12 camelia rakudo-parrot 6cc807: OUTPUT«encoding #-1 not found␤  in method encode at gen/parrot/CORE.setting:6559␤  in block  at /tmp/hZSdkqxOE5:1␤␤»
12:12 sergot j: "a".encode('windows-1252');
12:12 camelia rakudo-jvm 6cc807: OUTPUT«Unknown encoding 'windows-1252'␤  in method encode at gen/jvm/CORE.setting:6553␤  in block  at /tmp/JGWAcUsuJc:1␤␤»
12:12 FROGGS :o(
12:13 sergot So, it's better to write it in the Encode module
12:13 FROGGS yeah
12:14 sergot .u €
12:14 yoleaux U+20AC EURO SIGN [Sc] (€)
12:19 kivutar joined #perl6
12:28 kurahaupo_mobile joined #perl6
12:29 kaare__ joined #perl6
12:29 rurban1 joined #perl6
12:33 hummeleBop joined #perl6
12:34 colomon much better this time around: http://host07.perl6.com:8080/report
12:35 sergot FROGGS: done :)
12:35 masak colomon: what was amiss?
12:35 colomon masak: no clue
12:35 masak huh.
12:36 colomon I was running $work tests on the machine last night too, might have just run out of memory or something.
12:36 colomon Seems like we have transient errors once or twice a month.
12:42 masak that sounds... bearable.
12:42 hoelzro m: say($!.VAR.WHERE); say($_.VAR.WHERE)
12:42 camelia rakudo-moar 8ff995: OUTPUT«22969776␤22969776␤»
12:43 hoelzro interesting...I'm guessing that's some sort of special scalar
12:44 chenryn joined #perl6
12:45 FROGGS sergot++ # :o)
12:45 chenryn joined #perl6
12:46 sergot m: say 1 if 0 for 1..2;
12:46 camelia rakudo-moar 8ff995: ( no output )
12:46 sergot m: say 1 if 1 for 1..2;
12:46 camelia rakudo-moar 8ff995: OUTPUT«1␤1␤»
12:47 [Coke] FROGGS++ #thanks for fixing my misfudge.
12:51 sergot Is it only me: https://gist.github.com/sergot/ac3c90fcef831274a22a ?
12:53 brrt joined #perl6
12:57 dalek rakudo/nom: c506f5d | (Tobias Leich)++ | docs/ChangeLog:
12:57 dalek rakudo/nom: log my changes of the last week
12:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c506f5dc5a
12:57 FROGGS eww
12:58 Ven FROGGS++
13:02 jnap joined #perl6
13:02 lichtkind hai FROGGS
13:02 FROGGS hi lichtkind
13:03 dalek rakudo/nom: 0e65385 | (Tobias Leich)++ | docs/ChangeLog:
13:03 dalek rakudo/nom: fix sentence in changelog
13:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e65385a67
13:04 lichtkind FROGGS: do you have write acess to github perl6 master repo?
13:04 FROGGS lichtkind: I think spo
13:04 FROGGS so*
13:05 lichtkind could you please change the main description of the tablets repo
13:06 lichtkind it now says "Perl 6 tablets -- tabular Perl 6 documentation"
13:06 * masak .oO( "Take three a day; morning, lunch, dinner" )
13:06 lichtkind and i prefer Perl 6 tablets -- hypertext Perl 6 documentation
13:07 FROGGS lichtkind: no, sorry, can't edit it
13:08 lichtkind FROGGS: can anyone do it?
13:08 * masak can't
13:08 * PerlJam can't either
13:08 PerlJam lichtkind: did you not create that repo?
13:10 moritz lichtkind: description updated
13:11 chenryn joined #perl6
13:11 moritz FTR, the "owners" team that can administrate perl6/ repos contains pmichaud, me, TimToady, sorear, jnthn and diakopter
13:12 moritz I wonder if it's time to remove sorear, and add FROGGS, timotimo and lizmat
13:12 PerlJam moritz: +1
13:12 FROGGS -1
13:12 masak sounds good.
13:12 FROGGS :P
13:12 moritz (other suggestions based on activity and general trustworthiness are welcome)
13:12 Ven +1 :P
13:12 jnthn I don't trust me :P
13:12 moritz FROGGS: -1 to which part? you becoming admin?
13:13 masak he was joking.
13:13 FROGGS moritz: that smells like more work :o)
13:13 PerlJam moritz: also, you don't have to remove sorear IMHO
13:13 lichtkind thanks a lot moritz++
13:13 moritz PerlJam: I'll just drop him an e-mail and ask for his preferences, I suppose
13:14 jnthn Aye. Anyway, +1 to the additions.
13:16 PerlJam moritz: add masak too. :)
13:17 moritz +1 to masak
13:17 masak <insert variation on jnthn's and FROGGS' jokes about trustworthiness here>
13:17 FROGGS hehe
13:18 moritz FROGGS: fwiw being a perl6 'owner' isn't much work, I usually do one or two actions in that role per week, usually just a few clicks
13:18 moritz sometimes adding people to the 'perl6' team, sometimes creating a repository on behalf of a user
13:18 FROGGS moritz: yes I know, hence the ':P' adverb :o)
13:18 moritz ok :-)
13:18 moritz (oh, I forgot: sometimes adding a post-commit hook to notify dalek)
13:19 masak moritz++ # delegating responsibility
13:19 moritz ok, I'll wait 'till tomorrow for more feedback, and then I'll take action
13:19 moritz please remind me if I forget it :-)
13:19 lelf joined #perl6
13:19 PerlJam Is there a way in github for non-owners to get a list of who the owners are?
13:20 moritz PerlJam: I don't think so, which is why I listed them above
13:20 lelf left #perl6
13:21 psch there is, from the organisations homepage -> People -> Teams
13:21 PerlJam bummer.  That would have been a nice link for lichtkind in the first place (had it existed and we knew where to point him)
13:21 psch i.e. github.com/perl6 -> People -> Groups
13:21 PerlJam oh
13:21 PerlJam https://github.com/orgs/perl6/teams/owners
13:21 PerlJam nice
13:21 psch err, Teams, not Groups :)
13:21 PerlJam psch++
13:22 moritz I tried that link in a browser where I wasn't logged in, and it asked for my password
13:22 colomon http://icfpcontest.org/specification.html
13:22 psch it might well depend on belonging to the organisation
13:22 PerlJam aye, you have to have a github account and be logged in, but I think it works if you meet those criteria
13:24 FROGGS m: sub a(int $i) is cached { return unless $i; a($i-1) }; say a(4);
13:24 camelia rakudo-moar 8ff995: OUTPUT«Cannot find method 'gist': no method cache and no .^find_method␤  in method gist at src/gen/m-CORE.setting:7088␤  in block  at src/gen/m-CORE.setting:3329␤  in any enter at src/gen/m-Metamodel.nqp:3051␤  in method postcircumfix:<( )> at src/gen/m-C…»
13:26 FROGGS m: my $N = 32; my $rx = "a?" x $N ~ "a" x $N; say "a" x $N ~~ /<$rx>/
13:26 camelia rakudo-moar 8ff995: OUTPUT«(timeout)»
13:29 skids joined #perl6
13:31 jnthn There's a lot of ways to back off there :)
13:31 PerlJam does it not timeout with $N = 31?  :)
13:33 jnthn m: my $N = 4; my $rx = "a?" x $N ~ '{ $*x++ }' ~ "a" x $N; my $*x = 0; say "a" x $N ~~ /<$rx>/; say $*x
13:33 camelia rakudo-moar 8ff995: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling EVAL_0â�¤Two terms in a rowâ�¤at EVAL_0:1â�¤------> [32manon regex { ^a?a?a?a?{\c[32][33mâ��[31m$*x++\c[32]}aaaa}[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        statem…»
13:33 PerlJam huh.  It is reasonably quick with $N = 20
13:33 jnthn m: my $N = 4; my $rx = "a?" x $N ~ ' { $*x++ } ' ~ "a" x $N; my $*x = 0; say "a" x $N ~~ /<$rx>/; say $*x
13:33 camelia rakudo-moar 8ff995: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling EVAL_0â�¤Two terms in a rowâ�¤at EVAL_0:1â�¤------> [32manon regex { ^a?a?a?a?\c[32]{\c[32][33mâ��[31m$*x++\c[32]}\c[32]aaaa}[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤  â€¦Â»
13:33 moritz but shouldn't it build a super-efficient NFA for us?
13:34 FROGGS N=20 takes 0.7s and N=23 takes 2.9s
13:34 jnthn m: my $N = 4; my $rx = "a?" x $N ~ '{$*x++}' ~ "a" x $N; my $*x = 0; say "a" x $N ~~ /<$rx>/; say $*x
13:34 camelia rakudo-moar 8ff995: OUTPUT«「aaaa」␤␤16␤»
13:35 jnthn m: my $N = 5; my $rx = "a?" x $N ~ '{$*x++}' ~ "a" x $N; my $*x = 0; say "a" x $N ~~ /<$rx>/; say $*x
13:35 camelia rakudo-moar 8ff995: OUTPUT«「aaaaa」␤␤32␤»
13:35 jnthn m: my $N = 15; my $rx = "a?" x $N ~ '{$*x++}' ~ "a" x $N; my $*x = 0; say "a" x $N ~~ /<$rx>/; say $*x
13:35 camelia rakudo-moar 8ff995: OUTPUT«「aaaaaaaaaaaaaaa」␤␤32768␤»
13:35 FROGGS wow
13:39 FROGGS why ó.ò... just adding the dynquant method to nqp-p's regex compiler makes many tests do nothing :o(
13:41 FROGGS hmm no, it's not that, must be something in the actions or so...
13:42 Alula_ joined #perl6
13:43 thou joined #perl6
13:45 FROGGS p: use Test; ok 1, ""
13:45 camelia rakudo-parrot 0e6538: ( no output )
13:45 FROGGS m: use Test; ok 1, ""
13:45 camelia rakudo-moar 0e6538: OUTPUT«ok 1 - ␤»
13:45 FROGGS what the hell is going on
13:46 FROGGS hoelzro: have you tested on parrot also before doing the PR?
13:47 jnap joined #perl6
13:48 * FROGGS reverts 011048d and crosses fingers
13:48 timotimo FWIW, the "super efficient NFA" doesn't mean we don't have to run the winning branch through the regular grammar again ;(
13:48 moritz oh right, there's that :(
13:49 timotimo i wanted to build a bit of an optimization for that that will replace all fixed-width matchings at the start of the declarative prefix that come after an "alt"
13:49 timotimo replace them with "move the cursor forwards"
13:50 timotimo needless to say, i didn't make it ;)
13:50 jnthn I think it can be a bit more general than that.
13:50 FROGGS hoelzro: 011048d needs to be either fixed or reverted... simple test case: perl6-p -e 'use Test; ok 1, ""'
13:51 timotimo jnthn: when i thought that up, i wasn't good at the regex stuff at all; i'm not that much better yet, to be honest
13:51 timotimo i don't really understand how all the match recording stuff works, for example
13:52 FROGGS isnt there a rxtype capture?
13:52 FROGGS which is a method on the regex compiler?
13:53 timotimo something like that; i was refering more to the data structure and generated vm-level code
13:53 timotimo jnthn: penny for your thoughts? :)
13:53 jnthn "It's tricky"
13:53 timotimo hah :D
13:54 moritz I bet it is.
13:54 timotimo ISTR that PCRE has a trick that makes code like "a*a" less pessimal with regards to backtracking
13:54 timotimo hm, not a*a, but there's some famous super-pessimal regex that'll cause backtracking hell for "naive" implementations
13:54 jnthn I *think* I'd probably look at introducing an edge type in the NFA that marks the end of the fast-forwardable bit
13:55 pmurias joined #perl6
13:55 timotimo do you think it'd be a good idea to introduce something that does the recording after fast-forwarding?
13:56 timotimo ...(..)... for example seems fast-forwardable and you can see from the beginning what piece needs to get captured
13:56 [Coke] huh. perl5 regexen now have ::: (but spell it very differently)
13:56 timotimo otherwise the fast-forwardable part would have to end at the 3rd .
13:56 timotimo [Coke]: huh, what does ::: do?
13:56 timotimo i know about : for backtracking control
13:57 [Coke] :, ::, :::, and :::: are all backtracking control, as i recall.
13:57 timotimo oh, yikes :)
13:57 timotimo does one of them mean the same as <cut>?
13:58 * moritz has lost the overview over all those too
13:58 lichtkind_ joined #perl6
13:58 timotimo also, is <cut> actually hard to implement or is it just that nobody championed it yet?
13:59 timotimo i don't see any spectests with <cut> in them o_O
13:59 nbrown joined #perl6
13:59 FROGGS I dunno
13:59 FROGGS <commit> might be easy, right?
14:00 thou joined #perl6
14:00 timotimo we do have a tiny amount of commit tests in the spectest suite
14:00 timotimo tbh, i don't know what the difference between cut and commit is, should probably have a look :)
14:01 timotimo oh
14:01 timotimo yeah, i confused commit and cut
14:02 FROGGS okay, now that I have test output I see that dynquant also works on parrot :o)
14:02 timotimo awesome! :)
14:02 FROGGS only one backend left -.-
14:02 * timotimo looks for pom-poms
14:03 masak [Coke]: <cut> is the actual spelling of ::::
14:03 timotimo so, <commit> without an argument seems easy to implement, it'd just be "backtrack into this and we fail completely forever"
14:03 masak er, or was it <commit>...
14:03 timotimo commit with an argument seems like more work
14:04 dalek nqp/dynquant: a12b1b3 | (Tobias Leich)++ | src/vm/parrot/QAST/Compiler.nqp:
14:04 dalek nqp/dynquant: support code blocks as quantifiers on parrot too
14:04 dalek nqp/dynquant: review: https://github.com/perl6/nqp/commit/a12b1b3707
14:04 brrt joined #perl6
14:08 dalek nqp/dynquant: 6319608 | (Tobias Leich)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
14:08 dalek nqp/dynquant: cleanup dynquant on moarvm
14:08 dalek nqp/dynquant: review: https://github.com/perl6/nqp/commit/631960899b
14:10 timotimo FROGGS: i appreciate your work!
14:11 timotimo jnthn: can moarvm's spesh kick in for the "where" part of a type?
14:11 timotimo like, in-line it?
14:11 FROGGS timotimo: well, it is fun :o)
14:11 timotimo i'd think we'd need a special case for istype that checks if the RHS is something with an attached code
14:11 dalek rakudo/dynquant: 85550e5 | (Tobias Leich)++ | lib/Test.pm:
14:11 dalek rakudo/dynquant: Revert "Test: Copy filehandles if we can"
14:11 dalek rakudo/dynquant:
14:11 dalek rakudo/dynquant: This reverts commit 011048d4e862057537f1e5f682378fc505737d8f.
14:11 dalek rakudo/dynquant: review: https://github.com/rakudo/rakudo/commit/85550e5528
14:12 dalek rakudo/nom: 189d1ce | (Tobias Leich)++ | lib/Test.pm:
14:12 dalek rakudo/nom: Revert "Test: Copy filehandles if we can"
14:12 dalek rakudo/nom:
14:12 dalek rakudo/nom: This reverts commit 011048d4e862057537f1e5f682378fc505737d8f.
14:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/189d1ce84c
14:14 timotimo jnthn: it seems like depessimizing where blocks on type constraints would be a worthy cause; i haven't actually measured the performance of that, but i suspect its pretty bad
14:15 PerlJam timotimo: re pessimal regex, were you talking about the one in http://swtch.com/~rsc/regexp/regexp1.html or something else?
14:15 timotimo that's the one i was thinking about, i believe
14:15 timotimo i seem to recall masak writing about that one, too
14:15 timotimo maybe
14:16 jnthn timotimo: I suspect we can de-sugar the check to a method call which could then be subject to inlining, perhaps
14:16 PerlJam so, that's basically what FROGGS was doing earlier.
14:16 timotimo no, i don't think so, PerlJam
14:17 timotimo what froggs is doing is allowing code in regexes like / "foo" ** { $foo .. $bar } /
14:17 masak \o/
14:17 hoelzro FROGGS: nope =(
14:18 hoelzro my mistake
14:18 PerlJam no, I mean the poorly performing regex he was using earlier is the same as from Russ Cox
14:18 FROGGS hoelzro: no problem
14:18 PerlJam <FROGGS> m: my $N = 32; my $rx = "a?" x $N ~ "a" x $N; say "a" x $N ~~ /<$rx>/  # this one
14:18 timotimo oh? is that so?
14:18 FROGGS PerlJam: that is just from an RT ticket
14:18 timotimo ah, thought so :(
14:19 timotimo if we knew (through escape analysis or something like that?) that we only want the boolean result value of the match, we could totally skip the non-NFA in this case
14:19 timotimo but that seems like a thoroughly restricted application case
14:19 jnap joined #perl6
14:19 moritz for most regexes, the non-matching case is the one with problematic performance
14:20 moritz I mean, for exponential regexes and the like
14:20 timotimo hmm
14:22 timotimo so a simple-ish check for "is the declarative prefix == the regex" after non-matching with the NFA would give us much faster failure?
14:24 BenGoldberg joined #perl6
14:30 moritz I don't think so
14:31 djanatyn joined #perl6
14:31 timotimo how about if a regex seems to be performing poorly we automatically post it to irc and have a majority vote
14:33 moritz +0.92
14:43 Ven + 0..92 %% '.'
14:47 treehug88 joined #perl6
14:49 lizmat joined #perl6
14:50 user3 joined #perl6
14:58 [Coke] moritz: I am fine with Mu not smartmatching. Would you say the current error is LTA?
14:59 [Coke] (RT #122395)
14:59 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122395
15:06 masak "expected 'Any' but got 'Mu'" feels pretty accurate to me.
15:06 masak how could it be improved?
15:06 [Coke] m: say Mu ~~ 0
15:07 camelia rakudo-moar 0e6538: OUTPUT«Type check failed in binding <anon>; expected 'Any' but got 'Mu'␤  in method ACCEPTS at src/gen/m-CORE.setting:1480␤  in block  at /tmp/_KO2qkuHiT:1␤␤»
15:07 [Coke] ... yah, ok. was remember the backtrace more than the top level message.
15:07 [Coke] *ering
15:07 TimToady so why shouldn't ACCEPTS accept a Mu argument in this case?
15:07 [Coke] Ok. I'll reject the ticket and fix the tests, since ISTR that timtoady was of two minds; we'll pick one for him.
15:07 [Coke] ... unless he's awake! curses!
15:08 TimToady I thought we already decide this last night...
15:08 TimToady *ded
15:08 [Coke] m: say 1|2|3 ~~ 2
15:08 camelia rakudo-moar 0e6538: OUTPUT«any(False, True, False)␤»
15:08 [Coke] ^^ moritz wants that to keep working.
15:08 [Coke] ISTR that was the edge case you weren't sure of.
15:09 TimToady well, I kinda want it to stop working
15:09 TimToady why does moritz want it?
15:09 TimToady I guess I should backlog first
15:09 [Coke] ok, I'll let you two thunderdome.
15:09 [Coke] TimToady: here: https://rt.perl.org/Ticket/Display.html?id=122395
15:09 [Coke] last two comments, moritz & froggs.
15:11 user3 left #perl6
15:12 PerlJam TimToady: why do you want it to stop working?
15:13 colomon m: say ().hash.perl
15:13 camelia rakudo-moar 0e6538: OUTPUT«().hash␤»
15:13 colomon m: say [].hash.perl
15:13 camelia rakudo-moar 0e6538: OUTPUT«().hash␤»
15:13 btyler joined #perl6
15:14 colomon How do I stop a CATCH block from exiting the function it is in?
15:14 hoelzro FROGGS: what corner case did you come across that I didn't account for?
15:14 hoelzro I'd like to fix that commit over the weekend
15:14 [Sno] joined #perl6
15:14 moritz TimToady: just general DWIMiness
15:15 [Coke] ISTR there's a resumy thing.
15:15 moritz TimToady: I didn't read yesterday's backlog, so I can't contribute much to the discussion
15:16 [Coke] colomon: I thik "resumable exceptions" are the answer to that, but have no idea if that works.
15:17 colomon [Coke]: Does CATCH always return, then?
15:17 [Coke] no, return returns.
15:18 [Coke] do you have a short example that demonstrates the WAT you are having?
15:18 PerlJam colomon: do you mean for when the CATCH block doesn't handle the exception? i.e. you just want to ignore it?
15:18 TimToady sounds like a 'goto' to me
15:18 colomon …. no, I want to know what happens when CATCH *does* handle the exception.
15:19 hoelzro oh, just saw your test case =)
15:19 colomon ie I'm trying to CATCH, report the error, and return something emptyish
15:20 * colomon is a bit stumped he cannot figure out this basic thing.
15:23 PerlJam colomon: I'd need to see some code to understand the difficulty I think.
15:23 TimToady moritz: well, I was just thinking about the Mu vs Any case, but I just thought of another reason: it makes it very difficult to optimize 'when 2' into using a jump table if you can't coerce the given to a single integer, unless we can figure out how to goto 3 different places in parallel...
15:24 TimToady and one of the major goals of mayking ~~ asymmetric was to allow for just such an optimization
15:24 TimToady *making
15:24 psch m: sub foo { die "ded"; say "never here"; CATCH { default { say "whoops! " ~ .^name; return "we didn't make it" } } }; my $x = foo; say $x; # something like this colomon?
15:25 camelia rakudo-moar 0e6538: OUTPUT«whoops! X::AdHoc␤we didn't make it␤»
15:25 PerlJam colomon: handle the exception and return something sounds like  CATCH { when SomeException { say "blah"; return "something" } } to me.
15:25 colomon I've got it figured out, I think.
15:25 colomon PerlJam++ [Coke]++
15:26 BenGoldberg m: sub foo { die "no"; say "never"; CATCH { default { "oww" } } }; say foo;
15:26 camelia rakudo-moar 0e6538: OUTPUT«Nil␤»
15:26 BenGoldberg m: sub foo { die "no"; say "never"; CATCH { default { return "oww" } } }; say foo;
15:26 camelia rakudo-moar 0e6538: OUTPUT«oww␤»
15:28 TimToady I don't see any problem with using return from within CATCH; that sort of thing is why return is lexotic, and why we don't unwind the stack till after the CATCH
15:28 colomon PerlJam, [Coke]: quick explanation of my issue: https://gist.github.com/colomon/c3123119436ad6c7db71
15:31 raiph joined #perl6
15:32 * colomon realizes part of his problem was that he was looking at the wrong MAIN for some of his debugging, which didn't help matters in the least.
15:32 dalek nqp-js: b486a9e | (Pawel Murias)++ | tools/build/Makefile-JS.in:
15:32 dalek nqp-js: Avoid conflict between parrot and js backend makefiles.
15:32 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/b486a9e20c
15:32 dalek nqp-js: 78be7f1 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
15:32 dalek nqp-js: Handle charrange.
15:32 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/78be7f1b51
15:32 dalek nqp-js: bca9dec | (Pawel Murias)++ | tools/build/gen-js-makefile.nqp:
15:32 dalek nqp-js: Started creating a script to generate the Makefile for the js backend.
15:32 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/bca9dec91c
15:32 dalek nqp-js: 196806c | (Pawel Murias)++ | tools/build/ (2 files):
15:32 dalek nqp-js: Generate a tools/build/Makefile-JS.in which allows the passing of the nqp-js tests.
15:32 dalek nqp-js: review: https://github.com/pmurias/nqp-js/commit/196806c7a9
15:34 TimToady m: sub mystery { 1 | 2 | 3 }; given mystery() { when 1 { say 'one' }; when 2 { say 'two' }; when 3 { say 'three' } }
15:34 camelia rakudo-moar 189d1c: OUTPUT«one␤»
15:34 TimToady that's the case that can't be optimized
15:36 TimToady it also doesn't jive with this:
15:36 TimToady m: say 1 | 2 | 3 ~~ Junction
15:36 camelia rakudo-moar 189d1c: OUTPUT«True␤»
15:37 TimToady that case doesn't autothread the left
15:37 figoe joined #perl6
15:37 FROGGS m: say /\w+/ ~~ "foo"
15:37 camelia rakudo-moar 189d1c: OUTPUT«False␤»
15:38 TimToady we broke the symmetry of smartmatch in order to wrest control of semantics from the LHS, and this is just another case of that
15:38 FROGGS the RHS tells us how to smart match... so 1|2 ~~ 2 does not make much sense, unless Ints know about Junctions on the left
15:39 TimToady when 2 should allow us to say: coerce to 2, and is it ==?
15:39 woolfy joined #perl6
15:39 TimToady er, coerce to Int
15:40 FROGGS afk again
15:45 spider-mario joined #perl6
15:46 kivutar joined #perl6
15:49 [Coke] colomon: i have lost probably days of my life debugging the wrong thing.
15:50 dalek rakudo-star-daily: bb1e404 | coke++ | log/ (13 files):
15:50 dalek rakudo-star-daily: today (automated commit)
15:50 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/bb1e404eb7
15:50 dalek perl6-roast-data: b6314be | coke++ | / (5 files):
15:50 dalek perl6-roast-data: today (automated commit)
15:50 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/b6314be567
15:51 PerlJam [Coke]: I'm pretty sure most, if not all, of us have.
15:52 colomon I think I may have gotten up to a month or so wasted debugging a single wrong thing
15:54 dalek tablets: af060ce | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
15:54 dalek tablets: added glossary terms stub
15:54 dalek tablets: review: https://github.com/perl6/tablets/commit/af060ce1b2
15:54 masak "chasing ghosts" -- when you change and change and change something, but don't notice an effect; turns out you're changing one thing and measuring another.
15:58 * colomon is starting to vividly remember why he gave up on Windows
15:58 TimToady that's not as bad as what happens when someone swaps the left and right monitor cables to the stage, where every time you think you're fixing it, you're making it worse for the performers on the other side of the stage...
15:59 TimToady it's a pernicious feedback loop (dunno whether the pun was intended...)
16:03 kivutar joined #perl6
16:07 jnap joined #perl6
16:08 denis_boyun joined #perl6
16:19 brrt joined #perl6
16:23 timotimo pmurias: hey, do you have time to work on nqp-js again? :)
16:29 kivutar joined #perl6
16:31 awwaiid ICFP contest today, great way to show off perl6!
16:31 TimToady ooh, go for it
16:34 colomon …. my impression was you had to use their (custom designed) languages for this iteration of the competition?
16:34 TimToady write a rakudo backend?
16:38 timotimo and then surprise people with the good performance that results from using moarvm's jit and how easy it is to deploy because we have a jvm backend :P
16:38 pmurias timotimo: hi
16:40 timotimo pmurias: wishes for a rakudo-js came up a few times this week for having a "try perl6" website thingie that doesn't need a sandboxed compiler on one of our servers (because they are always leaky. always)
16:41 TimToady Eternal fame and fortune awaits you!
16:41 pmurias ;)
16:41 Rotwang joined #perl6
16:42 timotimo pmurias: some left-over time might be well spent writing up a short roadmap or todo list or something like that
16:43 hoelzro +1
16:43 timotimo otherwise, spending your time on coding stuff would obviously be good, too :)
16:43 TimToady there are probably lots of people who would be willing to help shove it down the road
16:44 hoelzro I would lend some of my not-copious time
16:44 timotimo there's a TODO file that has been last edited on 22 dec 2012, so no clue if it can be "trusted" :)
16:44 hoelzro I would even go so far as to set up a "bug bounty" for it
16:44 hoelzro I'd chip in a bit of money for whomever finishes it =)
16:45 TimToady but when will it be ready for production?  :P
16:45 timotimo that's like only giving EXP for the player to get the last hit/shot in on the boss :P
16:45 hoelzro heh
16:45 hoelzro timotimo: maybe it would be weighted by # commits or # lines changed
16:45 hoelzro on the honor system, I guess
16:45 [Coke] (bug bounty) I am reminded that gittip is a thing.
16:45 TimToady quick, change all the whitespace
16:46 timotimo yo tadzik; in Steroids, your @.controllers starts out with a Controller object in it and in the constructor you add another Controller object for each controller reported by SDL, is that off-by-one?
16:46 hoelzro [Coke]: I thought of asking pmurias if he was on gittip
16:46 akaseki joined #perl6
16:46 tadzik timotimo: it mite be, let me see
16:47 * [Coke] points at https://www.gittip.com/for/perl-6/
16:47 timotimo tadzik: got a clue how tiles and tile rendering might best be integrated into steroids?
16:47 tadzik timotimo: I had some code doing that, but it was pretty stupid :P
16:47 pmurias timotimo: re the TODO is not to be trusted, the current work is in a different repo ;)
16:48 timotimo https://github.com/pmurias/rakudo-js - this one is the wrong one?
16:48 hoelzro [Coke]: nice, I hadn't noticed that
16:48 tadzik I joined that group :)
16:49 timotimo pmurias: also, don't let us discourage you by only asking for you to finish it; your work so far has been pretty cool; pmurias++ # nqp-js
16:49 pmurias timotimo: github.com/pmurias/nqp-js
16:49 pmurias timotimo: I'm not discouraged at all, to the contrary ;)
16:49 timotimo \o/
16:50 hoelzro indeed, pmurias++
16:50 tadzik timotimo: eck, where in steroids is that?
16:50 pmurias currently I'm porting over things to integrate into the nqp build system
16:50 timotimo https://github.com/tadzik/steroids/blob/master/lib/Steroids.pm#L16
16:50 timotimo and the BUILD submethod
16:51 tadzik oh, @.gamepads :)
16:51 timotimo aye, i misremembered the name of that
16:51 tadzik yes, it's probably a thinko
16:51 timotimo not a dangerous one; just means the list is one bigger; you always access them by id anyway, don't you?
16:52 pmurias I plan to spend today on it, once it's done I'll see what would the tasks for a TODO/ROADMAP be
16:52 timotimo i like the sound of that! :)
16:52 pmurias got to go&
16:52 timotimo see you later!
16:52 tadzik timotimo: right
16:56 kaleem joined #perl6
16:58 * [Coke] goes through and finds more people on gittip
17:01 gfldex joined #perl6
17:01 TimToady [Coke]: so the answer is that ~~ must not autothread the LHS
17:01 nbrown joined #perl6
17:02 TimToady dwimmery of the LHS is only allowable by the RHS, and Int is not gonna allow it, or we can't optimize switch statements that are all integers.
17:05 TimToady also, we're are unlikely change #| or #=, since #| creates a fake left margin for a paragraph of text, and #= naturally alludes to the A = B meme from math
17:05 TimToady maybe we should allow #v at the bottom end of the row of #| so it's an arraw pointing down
17:05 TimToady *row
17:06 TimToady of course, you can always put #v there anyway, but text on the line would not currently be added to the #| paragraph
17:08 molaf joined #perl6
17:09 TimToady or maybe allow ↓ as an alternative to |
17:10 TimToady but ^ is pointing the wrong direction entirely, and > is 90° off :)
17:10 ggoebel111116 joined #perl6
17:11 TimToady visual metaphors usually trump semantic metaphors to my mind
17:17 TimToady there's also ↓ but that's skinnier than | in my current font, so probably best to stick with v
17:25 itz_ there's a Perl Hack Day happening in Sept in London and I'm hoping there will be some beginners working on P6.  Any pointers for low hanging fruit?
17:26 jnthn Stuff in module space, perhaps.
17:26 jnthn Potentially testneeded tickets also
17:27 masak sometimes just trying stuff out and asking questions here on channel helps drive things forward in various ways.
17:27 timotimo aye, but that's usually a wishy-washy thing
17:28 timotimo can't really point people towards anything in particular; may end up disappointing them/driving them away
17:28 masak may be insufficiently concrete for some, yes.
17:28 itz_ hmmm going through tickets is an objective and demostrating some perl 5 v perl 6 differences
17:29 timotimo maybe we could pretend we had a RakudoInABrowser or OnASecureServer and offer the task of writing a try.perl6.org html/js/css thingie that could interface with that
17:29 dalek specs: 3fa5859 | TimToady++ | S26-documentation.pod:
17:29 dalek specs: document semantics of multiple #| or #=
17:29 dalek specs: review: https://github.com/perl6/specs/commit/3fa5859e21
17:30 hoelzro TimToady: since you're thinking about #| and #=, did you see FROGGS' earlier comment on them?
17:30 TimToady that's what I was responding to
17:31 hoelzro oh, perfect =)
17:31 * hoelzro needs to be more diligent about backlogging
17:32 * vendethiel realized he learned quite some stuff about P6 while writing his tutorial
17:32 * TimToady needs to be more diligent about highlighting others
17:32 vendethiel (doesn't mean you should make them write a tutorial :p)
17:33 FROGGS hoelzro: what do you mean by corner case?
17:34 hoelzro FROGGS: I was asking for a test case, not realizing you'd provided one =)
17:34 hoelzro I figured it out, though
17:34 FROGGS hoelzro: awesome :o)
17:34 hoelzro =)
17:36 atroxaper joined #perl6
17:43 brrt joined #perl6
17:45 dwarring joined #perl6
17:52 carlin it seems on OpenBSD, libtommath's mp_rand is only giving results that `mod 2` == 0, so nqp::rand_I(2, Int) won't return 1
17:54 masak carlin: o.O
17:54 masak carlin: that's crazy.
17:54 masak carlin++ # finding the bug
17:55 masak carlin: does this mean that we could call mp_rand with twice the upper limit, and then divide by 2, and it'll work?
17:55 jnthn wat...
17:56 ventica_desktop libtom* are a little sketchy, IMO
17:57 ventica_desktop was planning to use them in a project of my own, but then started digging into the internals and got scared away
17:57 masak this is the first gotcha I'm aware of.
17:59 BenGoldberg p: srand(3); print nqp::rand_I(10,Int) for 1..10;
17:59 BenGoldberg p: srand(3); print nqp::rand_I(10,Int) for 1..10;
17:59 camelia rakudo-parrot 189d1c: OUTPUT«5708404403»
17:59 camelia rakudo-parrot 189d1c: OUTPUT«3021355780»
18:00 ventica_desktop some of those look like odd numbers to me ... :\
18:00 BenGoldberg But it does demonstrate a bug!
18:00 ventica_desktop ?
18:00 TimToady srand being ignored
18:01 ventica_desktop oh
18:01 BenGoldberg srand isn't doing anything to reset the state of libtommath
18:01 ventica_desktop haha
18:01 ventica_desktop yeah
18:01 gtodd when I start up scala  to get into the REPL and then quite as soon as it loads it takes about 13 seconds on my machine  ...
18:02 gtodd with perl6-j about 7 seconds
18:04 masak nice.
18:04 gtodd but it does seem that perl6-j takes longer to actually be up and running compared to scala which seems to start up some sort of REPL up pretty fast ....
18:05 gtodd perl6-j must load parse more to get "ready" than scala does
18:06 gtodd it just led  me to wonder if there was an easy  REPL could  be "optimized " for each type of rakudo that was running it
18:06 gtodd or if that is already the case
18:06 ventica_desktop it appears to me that libtommath just calls stdlib rand()...
18:07 nwc10 OK, why is t/spec/integration/99problems-51-to-60.t failing when run as part of the spectest but not stand alone?
18:08 gtodd of course start up time for the REPL is not a sexy language design goal and it is mostly good enough  so ... :)
18:14 kaare__ joined #perl6
18:15 Ven joined #perl6
18:21 [Coke] nwc10: memory pressure?
18:25 dmol joined #perl6
18:25 treehug88 joined #perl6
18:26 carlin here's the result of mp_rand 100,000 times on OpenBSD: https://gist.githubusercontent.com/carbin/83453b56e67c74c52342/raw/gistfile1.txt
18:26 carlin and the same thing on linux: https://gist.githubusercontent.com/carbin/1f88490cc4c80721bca0/raw/gistfile1.txt
18:26 carlin that's the result that is set here: https://github.com/MoarVM/MoarVM/blob/master/src/math/bigintops.c#L784
18:28 btyler joined #perl6
18:32 Ven I'll take advantage of the fact that more people are here and ask for proof-reading of https://github.com/adambard/learnxinyminutes-docs/pull/687 :)
18:34 pecastro joined #perl6
18:34 nbrown joined #perl6
18:35 hoelzro Ven: you should probably use ```perl6 instead of ```perl
18:36 Ven hoelzro: nah, perl6 has terrible comments highlighting.
18:36 hoelzro ='(
18:36 Ven hoelzro: try the oldest commits, you'll see how bad it looks
18:36 hoelzro which oldest commits?
18:36 btyler (Ven: hoelzro is the author of the linguist perl6 support, which is what github uses for syntax highlighting)
18:37 Ven hoelzro: I mean in the PR :)
18:37 Ven hoelzro: https://github.com/Nami-Doc/learnxinyminutes-docs/blob/2a8e20ca27c59347df58197f821b1eee2e913128/perl6.html.markdown only the multilines ones are highlighted
18:37 hoelzro wtf
18:37 Ven and it's reading pretty bad ... so I had to go back to perl :(
18:38 hoverboard joined #perl6
18:38 SamuraiJack__ joined #perl6
18:38 hoelzro WTF
18:38 hoelzro what did GH do
18:38 Ven hahaha
18:39 hoelzro I hadn't ever noticed how bad the single line ones were
18:39 hoelzro it works fine with just pygments
18:40 hoelzro I just don't understand
18:41 hoelzro apparently it has the single line comment class applied to it
18:41 Ven now you know why I changed to perl5's P
18:41 hoelzro yeah
18:41 hoelzro I just don't understand
18:42 hoelzro why it's so bad on GH
18:42 hoelzro also, Ven++ for writing this
18:43 Ven hoelzro++ # highlighting, aka insanity :P
18:44 gtodd hmm I can't build rakudo today .... http://paste.scsys.co.uk/409550
18:45 hoelzro I see now
18:45 hoelzro they don't have a class for Comment.Singleline
18:46 hoelzro this drives me nuts, because I don't think this is fixable
18:46 FROGGS gtodd: that looks like as if parts of your build is pretty old
18:46 FROGGS like 3rdparty in nqp
18:47 gtodd hmm git pulled
18:47 gtodd maybe I'm ont in my usual directory ... I did a few house cleaning tasks
18:48 ggoebel111116 joined #perl6
18:48 gtodd rm -rf nqp etc etc maybe I'll just do totally fresh checkout ...
18:48 vendethiel- joined #perl6
18:49 Su-Shee left #perl6
18:49 masak it just struck me that it's really silly whenever I have an enum, say Player, with two values, say Player.WHITE and Player.BLACK, and I end up doing the `$player = $player === WHITE ?? BLACK !! WHITE;` dance
18:50 flussence rakudo-m just built fine for me (wow... that was fast)
18:50 masak what I really want to do is say to the language, "ok, we both know this enum can biject (in whatever way) onto Bool. $player = !$player"
18:50 masak :)
18:51 masak well, it's Perl 6. I guess I can just custom-define prefix:<!>
18:51 jnthn multi prefix:<!>(Player $p) { ... }
18:51 masak but I'm after something slightly deeper.
18:51 masak namely, sometimes types act like other types.
18:51 gtodd masak: then you need  InfinitePlayer ;-)
18:52 masak there will be other circumstances when a type will "act like" a numeric type, or a string, or an array, without *being* either of those.
18:52 dalek nqp/dynquant: dbb0832 | (Tobias Leich)++ | src/vm/parrot/QAST/Compiler.nqp:
18:52 dalek nqp/dynquant: align to the standard about label prefix in dynquant
18:52 dalek nqp/dynquant: review: https://github.com/perl6/nqp/commit/dbb0832541
18:52 masak in the case of Bool, I want to "do prefix:<!> under the Player->Bool transform".
18:54 masak the closest analogue I can think of is `handles`, actually.
18:55 masak but `handles` assumes aggregation/delegation. this doesn't.
18:55 masak it just assumes that there's an isomorphism between my type and some other type where the operation is defined.
18:57 TimToady m: enum P of Bool <Me Them>; my P $p = Me; $p = not $p; say $p
18:57 camelia rakudo-moar 189d1c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/LsfkUrYUit�Method 'set_of' not found for invocant of class 'Perl6::Metamodel::EnumHOW'�at /tmp/LsfkUrYUit:1�------> �»
18:58 TimToady aww
18:59 masak that would... definitely be a start.
18:59 TimToady m: enum P <Me Them>; my P $p = Me; $p = P(not $p); say $p
18:59 camelia rakudo-moar 189d1c: OUTPUT«(P)␤»
18:59 masak aww :)
19:00 masak yes, what I'm mainly trying to avoid is that casting back to P
19:00 moritz ok, sorear++ answered that he's fine with being removed as an admin from the perl6/ org
19:00 masak good bye, sorear++. it was very good knowing you. good luck with everything.
19:01 flussence sorear++ :)
19:02 moritz quoth "I haven't been feeling the Perl 6 so much lately"
19:02 * jnthn hopes he might be lucky enough to run into sorear++ again some day, in some context
19:03 TimToady m: enum P <Me Them>; my P $p = Me; $p = P(1); say $p
19:03 camelia rakudo-moar 189d1c: OUTPUT«Them␤»
19:03 TimToady m: enum P <Me Them>; my P $p = Me; $p = P(+!$p); say $p
19:03 camelia rakudo-moar 189d1c: OUTPUT«Them␤»
19:03 TimToady with coercive types we could just write $p = +!$p
19:04 TimToady if we declared my P() $p
19:04 TimToady kind of a shame that it requires the + on the +!$p
19:04 jnthn ...now there's a declaration not to say out loud :P
19:05 ventica_desktop who is sorear?
19:07 TimToady m: use MONKEY_TYPING; enum P <Me Them>; augment class P { method other { P(+!self) } }; my P $p = Me; $p.=other; say $p
19:07 camelia rakudo-moar 189d1c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Ane4KEOPNRâ�¤Cannot augment P because it is closedâ�¤at /tmp/Ane4KEOPNR:1â�¤------> [32mPING; enum P <Me Them>; augment class P [33mâ��[31m{ method other { P(+!self) } }; my P $p [0mâ�¤    expec…»
19:07 TimToady ooh
19:08 vendethiel- ventica_desktop: the old niecza guy
19:09 TimToady m: use MONKEY_TYPING; enum P <Me Them>; augment enum P { method other { P(+!self) } }; my P $p = Me; $p.=other; say $p
19:09 camelia rakudo-moar 189d1c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tLqhx7ourB�Redeclaration of symbol P�at /tmp/tLqhx7ourB:1�------> [32mTYPING; enum P <Me Them>; augment enum P[33m�[31m { method other { P(+!self) } }; my P $p[0m�»
19:09 vendethiel- (so long and thanks for niecza, sorear++ :).)
19:09 ventica_desktop vendethiel-: ok, cool... I don't know any #perl6 nicks, that's why i asked
19:09 ventica_desktop besides TimToady, of course
19:09 * vendethiel- didn't know TimToady
19:10 vendethiel- I think I bumped into him a few times before realizing who he was, hehe
19:10 * TimToady doesn't know himself
19:10 PerlJam sorear isn't that old, really  ;)
19:10 vendethiel- PerlJam: it took far too long for somebody to decide to make that joke =)
19:10 * TimToady thought of it
19:11 masak sorear taught me a bunch of category theory.
19:11 hoelzro that's a bummer
19:11 masak I wish I knew as much math when I was his age.
19:11 hoelzro (about sorear)
19:11 hoelzro but people move on, I guess
19:11 PerlJam vendethiel-: I was too busy wondering why you didn't actually say, "so long and thanks for all the niecza"
19:11 vendethiel- masak: nothing wrong with learning later :)
19:11 masak vendethiel-: oh, totally working on it.
19:12 ventica_desktop I was a bit underwhelmed with cat. theory after attending a talk last year and realizing it's just graph relations... :\
19:12 TimToady well, he's certainly welcome back any time; I wish everyone burned their bridges as well as sorear++...oh wait...no I don't...
19:12 ventica_desktop graph relations + logic operators = cat. theory
19:12 masak ventica_desktop: I beg to differ.
19:13 ventica_desktop *shrug
19:13 masak ventica_desktop: cat. theory has relatively little to do with graph relations. that's just the way they like to draw things.
19:13 PerlJam .oO( "I'm not bad, I'm just drawn that way" )
19:13 masak it's taking one very powerful idea, functional composition, and building a whole math out of it.
19:13 ventica_desktop indeed, the subject matter can be anything... but the connectives indeed have the properties of graphs
19:14 masak I wouldn't say "graphs" captures it very well.
19:14 TimToady PerlJam: we're discussing cats, not rabbits
19:14 masak though graphs can indeed also be cast in a cat-theoretic light.
19:14 ventica_desktop masak: I understand... it's just how my brain groks it
19:14 PerlJam :-)
19:15 masak one of the best quotes I saw was "Category theory is just mathematicians finally learning to program against interfaces."
19:15 ventica_desktop an interface with no specification, however
19:15 ventica_desktop unless you believe that math conventions are internally consistent!
19:15 * ventica_desktop snickers at the thought
19:16 ventica_desktop to be more clear, I mean the category (yes, category) of *all* math conventions
19:16 masak urgh. no, I don't believe that :)
19:17 ventica_desktop .oO(At least per6 has a spec... more than can be said for adv. mathematics...)
19:17 vendethiel- masak: hehe, well, maybe we'll get to chat at some point
19:18 masak vendethiel-: the macros thing? yes, I hope so.
19:18 vendethiel- well, chatting in general, really :). I like discussing thingies with people
19:18 masak ooh, that's something we have in common :)
19:19 vendethiel- I think lizmat++ can tell how chatty I am :P
19:19 vendethiel- Well, the perl 6 tutorial is now going on the .com website, yay :)
19:20 masak \o/
19:21 jnthn vendethiel-++
19:22 PerlJam the perl.com website?
19:22 PerlJam (that one is in need of some updates)
19:22 vendethiel PerlJam: the learnxinyminutes one (to start with ;-).)
19:22 * vendethiel is kinda sad the maintainers there didn't review it, whereas I reviewed every single french tutorial PR *very* thoroughly :P
19:23 vendethiel http://learnxinyminutes.com/docs/perl6/ here it is :-)
19:24 ventica_desktop I did 0.55*x in z minutes last night
19:24 ventica_desktop Still 0.45*x to go...
19:25 raiph joined #perl6
19:25 vendethiel hoelzro: another reason not to use perl6: I don't believe it's supported with our (learnxiny) highlighter
19:25 ventica_desktop m: my $a = 1|2; say $a;
19:25 camelia rakudo-moar 189d1c: OUTPUT«any(1, 2)␤»
19:25 PerlJam vendethiel: fix it!
19:25 vendethiel he?
19:26 hoelzro the learnxiny person probably doesn't use GH markdown =/
19:26 gtodd flussence:  hmm still won't build on fresh checkout...  here's how I configure: perl Configure.pl --backends=moar,parrot,jvm --gen-nqp --gen-parrot --gen-moar --prefix=/home/user/perl6
19:27 ventica_desktop m: my $a="foo" ~ "bar" & "bop"; say $a;
19:27 camelia rakudo-moar 189d1c: OUTPUT«all(foobar, bop)␤»
19:27 ventica_desktop uh?
19:27 ventica_desktop oh
19:27 PerlJam precedence
19:28 ventica_desktop yup
19:28 ventica_desktop tut bug
19:29 ventica_desktop ok... perl6 arch. question ... is there a "minimal perl6" spec?
19:30 flussence gtodd: I usually `git clean -dfx` in rakudo/ and its sub-repos first before building, that wipes out any panda state if you use the default install location though, so be careful
19:30 gtodd hmm
19:34 BenGoldberg joined #perl6
19:34 gtodd seems I just needed to blow away ~/perl6/  too bad :)
19:35 hoelzro ventica_desktop: what do you mean, exactly?
19:36 gtodd not sure why but the build sometimes grabs stuff from in there and works and sometimes doesn't grab stuff and works and sometimes grabs libs etc and breaks
19:36 ventica_desktop hoelzro: Well, the full p6 spec/test-suite is quite daunting... I can imagine writing a toy implementation of some of it just for fun... but the whole thing, no way
19:36 gtodd I think it's my shell env ... I blame bash :)
19:36 ventica_desktop Maybe the consensus is that toy implementations are a bad thing...
19:36 hoelzro hmm
19:37 hoelzro well, more power to you if you want to try it
19:37 ventica_desktop haha
19:37 jnthn Well, there's NQP (which isn't spec'd) which is a restricted Perl 6
19:37 hoelzro I mean, even the most compliant impls don't impl the whole thing
19:37 gtodd ventica you mean a perl6 embedded ala libperl.so ?
19:37 ventica_desktop not at present... besides, I don't have godlike Haskell skills
19:37 hoelzro oh, jnthn brings up a very good point
19:37 ventica_desktop jnthn: ah true... forgot abt that
19:37 ventica_desktop so maybe I'm thinking of a spec'd NQP?
19:38 jnthn Maybe :)
19:38 ventica_desktop gtodd: no... that's nice, too, but i meant a spec to implement it in a new language, e.g. Racket or something
19:38 ventica_desktop not saying it's a good idea... it's an idea :P
19:39 rurban1 joined #perl6
19:42 hoelzro ventica_desktop: you could probably just start picking "simple" things to implement
19:42 masak +1
19:42 masak build things up step by step.
19:45 gtodd hmm so what about libperl.so type things ... e.g. postgresql has plperl ...  is there a "opposite" of NativeCall that is amazing :-)
19:46 ventica_desktop ok, back to tutorial... question... how to get two junctions to invoke a function in a "cartesian product" manner... f(a,b) gets invoked for each value of aXb ?
19:47 vendethiel ventica_desktop: `for @a X @b -> $a, $b {f($a, $b) }`
19:47 ventica_desktop oh
19:48 masak ventica_desktop: if it's really junctions you want, this also works: f(any(@a), any(@b))
19:48 masak but usually these days, I find it's lists I want, not junctions.
19:49 masak or sets. sometimes sets.
19:49 lue r: say "ABC".encode».WHAT;
19:49 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(utf8)␤»
19:49 masak I want junctions more or less exactly when I'm asking "is there any...?" or "are all...?" type questions.
19:50 lue I'm not convinced » on a Buf should do that. :)
19:50 dwarring ventica_desktop: rakudo has some a small sanity test suite https://github.com/rakudo/rakudo/tree/nom/t/01-sanity
19:51 masak lue: I believe it's a no-op in that case.
19:51 BenGoldberg m: "ABC".encode.WHAT.say
19:51 camelia rakudo-moar 189d1c: OUTPUT«(utf8)␤»
19:51 masak lue: which is why you get only one value out of it.
19:51 dwarring maybe you could use that?
19:51 lue masak: interesting. Still feels like the wrong answer to me. :)
19:52 vendethiel masak: you can do that with any Oo
19:52 masak lue: seems pretty consistent to me.
19:52 TimToady r: say "ABC".encode[]».WHAT;
19:52 vendethiel now I'm surprised
19:52 masak vendethiel: yep.
19:52 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Array)␤»
19:52 masak vendethiel: they nest.
19:52 TimToady r: say "ABC".encode[*]».WHAT;
19:52 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Parcel)␤»
19:52 vendethiel god help us :)
19:52 lue r: say "ABC".encode[0..*-1]».WHAT
19:52 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Parcel)␤»
19:52 masak m: say any("foo", "bar", "baz") eq any("gloop", "maz", "foo")
19:52 camelia rakudo-moar 189d1c: OUTPUT«any(any(False, False, True), any(False, False, False), any(False, False, False))␤»
19:53 TimToady r: say "ABC".encode.list».WHAT;
19:53 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Array)␤»
19:53 lue r: say "ABC".encode.list.perl
19:53 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«Array.new(65, 66, 67)␤»
19:53 TimToady that seems...wrongish...
19:54 TimToady r: say "ABC".encode.values».WHAT;
19:54 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Array)␤»
19:54 TimToady why Array?
19:54 ventica_desktop dwarring: Thanks, I'll take a look
19:54 lue Aside from my general complaint that Bufs should be more like arrays and less like strings, I'd expect at least the to-list conversion to work right with »
19:54 TimToady r: say "ABC".encode.values.list».WHAT;
19:54 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Array)␤»
19:55 lue r: say Array.new(65, 66, 67)».WHAT; # sanity check
19:55 FROGGS r: say "ABC".encode.values.list».^name
19:55 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Array)␤»
19:55 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«Int Int Int␤»
19:55 FROGGS .WHAT might be WAT
19:56 TimToady r: say "ABC".encode.ords;
19:56 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«No such method 'ords' for invocant of type 'utf8'␤  in block  at /tmp/tmpfile:1␤␤»
19:57 jnthn TimToady: What did you expect .list on a Blob to be? Identity?
19:57 ventica_desktop hehe my first segfault of ./perl6 :P
19:57 TimToady well, I expected it to work more like an immutable Buf
19:58 TimToady m: say Buf.new(65,66,67).list
19:58 camelia rakudo-moar 189d1c: OUTPUT«65 66 67␤»
19:58 TimToady m: say Buf.new(65,66,67).list.WHAT
19:58 camelia rakudo-moar 189d1c: OUTPUT«(Array)␤»
19:58 jnthn Well, it does, apparently :P
19:58 jnthn Buf inherits, or does, Blob, iirc
19:59 TimToady it seems a bit difficult to pry out the values as a list
19:59 gtodd hmm the build still gives me this:   /usr/bin/ld: ../../../../3rdparty/dyncall/dyncall/libdyncall_s.a(dyncall_api.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
20:00 TimToady m: say [1,2,3]».WHAT
20:00 camelia rakudo-moar 189d1c: OUTPUT«(Array)␤»
20:00 TimToady I guess that's waiting completion of 'is nodal'
20:00 lue r: say "ABC".encode.list».WHAT; say "ABC".encode.list[0].WHAT;
20:00 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«(Array)␤(Int)␤»
20:01 rurban1 joined #perl6
20:01 TimToady m: say [1,2,3][]».WHAT
20:01 camelia rakudo-moar 189d1c: OUTPUT«(Array)␤»
20:01 TimToady m: my @array = 1,2,3; say @array».WHAT
20:01 camelia rakudo-moar 189d1c: OUTPUT«(Array)␤»
20:02 TimToady that seems quite wrongish
20:02 lue o_o so I guess something broke then
20:02 TimToady m: my @array = 1,2,3; say @array».succ
20:02 camelia rakudo-moar 189d1c: OUTPUT«2 3 4␤»
20:02 TimToady I guess it's the macroness that's breaking WHAT
20:02 jnthn I suspect that it's that .WHAT is actual macro-y
20:03 jnthn It may well be ignoring the hyper completely...
20:03 psch joined #perl6
20:03 woolfy left #perl6
20:03 TimToady m: say Buf.new(65,66,67)».succ
20:03 camelia rakudo-moar 189d1c: OUTPUT«No such method 'succ' for invocant of type 'Buf'␤  in method dispatch:<hyper> at src/gen/m-CORE.setting:1236␤  in block  at /tmp/S3Y80VVYV7:1␤␤»
20:04 jnthn m: say Buf ~~ Iterable # what should this come out as?
20:04 camelia rakudo-moar 189d1c: OUTPUT«False␤»
20:04 TimToady m: say Buf.new(65,66,67)[$_] for 0..2
20:04 camelia rakudo-moar 189d1c: OUTPUT«65␤66␤67␤»
20:04 lue r: say "ABC".encode».perl; "ABC".encode.list».perl;  # this is still an issue, though I suppose .list is fine enough for me right now
20:04 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«utf8.new(65, 66, 67)␤»
20:04 jnthn m: say Buf ~~ Positional # and this
20:04 lue r: say "ABC".encode».perl; say "ABC".encode.list».perl;  # this is still an issue, though I suppose .list is fine enough for me right now
20:04 camelia rakudo-moar 189d1c: OUTPUT«True␤»
20:04 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«utf8.new(65, 66, 67)␤65 66 67␤»
20:04 TimToady m: say Buf.new(65,66,67)[*]
20:04 camelia rakudo-moar 189d1c: OUTPUT«65 66 67␤»
20:05 TimToady m: say Buf.new(65,66,67)[*].WHAT
20:05 camelia rakudo-moar 189d1c: OUTPUT«(Parcel)␤»
20:05 avuserow FROGGS: hoping to have one up tonight (in the 8 to 12 hour range), so I can collect feedback and testing results over the weekend. I have an afternoon of $dayjob between now and then, so I'm hoping I'm still up for it then. Looks promising regarding tests though.
20:05 raiph joined #perl6
20:05 FROGGS avuserow++
20:05 avuserow moritz: at some point, possibly. I was planning on doing a PR for now and sorting out the logistical bits later
20:05 dalek tablets: b6a6b2a | (Herbert Breunung)++ | docs/appendix-a-index.txt:
20:05 dalek tablets: added tc and tclc
20:05 dalek tablets: review: https://github.com/perl6/tablets/commit/b6a6b2adcc
20:06 jnthn avuserow++ # thanks for working on this
20:07 avuserow I just wanna show off the cool bits that #perl6++ has created :)
20:08 avuserow Ven: yeah I backlog online, partially for that reason
20:10 avuserow looks like modules-test is non-clean on parrot... I'll investigate and try to ask specific questions to get that resolved later
20:10 * vendethiel doesn't even remember what he told avuserow++ :P
20:11 Sqirrel joined #perl6
20:11 timotimo
20:12 vendethiel welp, timotimo broke IRC
20:14 nbrown joined #perl6
20:15 avuserow vendethiel: you said you didn't see my messages :P
20:16 * avuserow .oO( how appropriate )
20:18 dmol joined #perl6
20:23 avuserow sigh. I'm seeing a segfault on parrot for jsonrpc's test, but it goes away when I run it under gdb. what does one do in this scenario?
20:25 rurban1 printf debugging usually
20:26 rurban1 -t will not help I guess
20:26 dalek roast: d5f7eb6 | (David Warring david.warring@gmail.com)++ | integration/99problems-01-to-10.t:
20:26 dalek roast: is() => is_deeply(). Corrections/unfudges, Deleted one invalid test.
20:26 dalek roast: review: https://github.com/perl6/roast/commit/d5f7eb61f8
20:29 retupmoca avuserow: enable core dumps, examine dump file in gdb?
20:31 timotimo vendethiel: i'm sorry, just call the number on the back of your IRC and support should send you a free replacement
20:32 vendethiel timotimo: well, I've tried turning it off and on and it's not fixed, how come ?
20:37 timotimo well, is it plugged in?
20:38 vendethiel timotimo: oh, I forgot to switch on the multi-outlet, I'm sorry! thanks for your help, though.
20:38 timotimo sure no problem
20:40 timotimo # Hashes are actually arrays of Pairs (`Key => Value`), "flattened" to remove duplicated keys. ← this sounds weird to me
20:41 timotimo and arrays "start with @" and "stored in variable, they use `&`" sounds strange to my ears, too
20:41 timotimo maybe just put "their name" in the appropriate slot?
20:42 brrt joined #perl6
20:43 dalek roast: c8a47be | (David Warring david.warring@gmail.com)++ | integration/99problems-01-to-10.t:
20:43 dalek roast: resurrected a test. removed guff
20:43 dalek roast: review: https://github.com/perl6/roast/commit/c8a47be29e
20:44 timotimo vendethiel: it may be a good idea to mention that using non-autoquoted or colonpair-syntax named arguments gives you a positional parameter filled with a Pair object instead
20:45 timotimo which is a gotcha that probably surprises many people
20:45 timotimo with-mandatory-named(str => "My String"); #=> My String  ← it ought to have a ! in the output, too
20:47 timotimo m: my $x = 42; sub mod() is rw { $x }; mod = 52; say $x
20:47 camelia rakudo-moar 189d1c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/p2miM4Ioa0�Preceding context expects a term, but found infix = instead�at /tmp/p2miM4Ioa0:1�------> [32my $x = 42; sub mod() is rw { $x }; mod =[33m�[31m 52; say $x[0m�»
20:47 timotimo m: my $x = 42; sub modifythis() is rw { $x }; modifythis = 52; say $x
20:47 camelia rakudo-moar 189d1c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/udkr6xnvnU�Preceding context expects a term, but found infix = instead�at /tmp/udkr6xnvnU:1�------> [32m modifythis() is rw { $x }; modifythis =[33m�[31m 52; say $x[0m�»
20:47 timotimo ah
20:48 TimToady if you don't want it parsed as a listop, you have to declare it term:<mod>
20:48 timotimo because the paren-less form is more like a list prefix
20:48 timotimo listop, aye.
20:48 timotimo vendethiel: will you put some newlines into long comments or automatically hardwrap or something?
20:53 timotimo vendethiel: does <=> and leg seem like worth mentioning?
20:55 timotimo the sub-signature matching/unpacking thing seems like it's coming out of nowhere
20:56 timotimo i'm confused by the key-of sub, where does :qua($qua)) come from? it doesn't seem to be referenced in the example that actually calls key-of
20:58 vendethiel timotimo: they're mentioned deep down
20:58 vendethiel (<=> and leg)
20:59 timotimo oh, ok
20:59 timotimo i don't know what exactly "even in a `if`" refers to for truthy-array
21:00 vendethiel "[22:48] <timotimo> vendethiel: will you put some newlines into long comments or automatically hardwrap or something?" < what does that mean ?
21:01 timotimo # Note : those are sorted lexicographically. `{ $^b / $^a }` is like `-> $a, b { $ b / $a }`
21:01 timotimo there's a stray space in "$ b"
21:01 timotimo the comments extend beyond the border of the code section for me
21:01 vendethiel ... uh ?
21:01 vendethiel oh :(. that's sad
21:02 lue timotimo: what do you mean by "using non-autoquoted or colonpair-syntax named arguments gives you a positional parameter filled with a Pair object instead" ?
21:02 vendethiel lue: a(a => 1) and a('a' => 1) is not the same
21:02 timotimo m: sub surprise(*@a, *%b) { say @a; say %b; }; surprise(foo => 1); surprise("foo" => 1)
21:02 camelia rakudo-moar 189d1c: OUTPUT«␤("foo" => 1).hash␤"foo" => 1␤().hash␤»
21:03 lue but how are colonpairs the same as not-autoquoted ?
21:03 vendethiel well, a(:a(1)) is the same as a(a => 1) but not the same as a('a' => 1)
21:04 lue timotimo's statement implies that 'a' => 1 and :a(1) are the same, though
21:04 vendethiel no; the opposite
21:04 vendethiel well, at least I'm explaining *the opposite*; sooo :P
21:05 lue I parse his statement as   {'a' => 1} || {:a(1)} -> positional Pair
21:06 vendethiel m: sub f(:$a) { say $a }; f(:a(1)); # uh ?
21:06 camelia rakudo-moar 189d1c: OUTPUT«1␤»
21:06 vendethiel lue: ^ doesn't seem to be the case, tho
21:06 timotimo sorry, i must have written that wrong
21:06 vendethiel yeah, that's what I thought :P. "I can't be that wrong !"
21:06 lue OK, I was wondering if there was some NYI weirdness when timotimo's statement didn't hold up.
21:07 timotimo yes, wtf did i do there %)
21:07 vendethiel timotimo: I didn't explain that difference, like I didn't explain flattening, because I want to think about it thoroughly before explaining them.
21:08 vendethiel They're gonna make a *LOT* of people WAT.
21:08 timotimo mhm
21:11 timotimo we don't actually call perl6's object model "p6model", we call it "sixmodel"
21:12 masak partly because it's not limited to Perl 6.
21:12 vendethiel well, anyway, only non-auto-quoted gives a pair positional, right ?
21:13 vendethiel timotimo: " the sub-signature matching/unpacking" <- alas, I need to explain that after explain some more things; soo ...
21:14 timotimo ok
21:18 vendethiel oops, I just realized I left "in this last paragraph" when explaining it, hehe
21:18 ssutch joined #perl6
21:22 vendethiel timotimo: I admit I don't know what i meant with that If thing >_>
21:23 * vendethiel pushes his fixes
21:23 brrt left #perl6
21:28 telex joined #perl6
21:30 Ben_Goldberg joined #perl6
21:36 raydiak good afternoon, #perl6
21:37 raiph \o
21:38 raydiak o/ what are you up to, raiph? anything interesting?
21:39 raiph glancing thru http://learnxinyminutes.com/docs/perl6/
21:40 vendethiel raiph++ # putting up with my english all the time :p
21:41 raydiak ah nice... vendethiel, you did that?
21:41 vendethiel raydiak: I did :)
21:41 raydiak vendethiel++ :)
21:42 vendethiel .u ஓ
21:42 yoleaux U+0B93 TAMIL LETTER OO [Lo] (ஓ)
21:43 kivutar joined #perl6
21:47 raiph vendethiel++ # user doc
21:47 vendethiel .u Ժ
21:48 yoleaux U+053A ARMENIAN CAPITAL LETTER ZHE [Lu] (Ժ)
21:55 raiph joined #perl6
21:56 silug joined #perl6
21:59 dalek nqp/dynquant: 85b29a4 | (Tobias Leich)++ | src/vm/jvm/QAST/Compiler.nqp:
21:59 dalek nqp/dynquant: support code blocks as quantifiers on jvm as well
21:59 dalek nqp/dynquant: review: https://github.com/perl6/nqp/commit/85b29a453d
22:01 ssutch joined #perl6
22:02 ssutch joined #perl6
22:03 timotimo FROGGS: good job!
22:04 FROGGS :o)
22:05 skids joined #perl6
22:06 nbrown joined #perl6
22:20 dalek nqp: 3097e14 | (Tobias Leich)++ | src/ (5 files):
22:20 dalek nqp: allow code block in ** quantifiers, / foo ** { $a := 42 } /
22:20 dalek nqp:
22:20 dalek nqp: In NQP the block can either provide a single item, which would be
22:20 dalek nqp: handled as foo**42, means that it must match exactly $item times.
22:20 dalek nqp: If the block provides a list [$min, $max], then the first two elems
22:20 dalek nqp: are used, like in foo**0..3.
22:20 dalek nqp: Note that the behaviour in rakudo is different, since we have Range
22:20 dalek nqp: objects there.
22:20 dalek nqp: review: https://github.com/perl6/nqp/commit/3097e140a7
22:20 dalek nqp: 83e13b6 | (Tobias Leich)++ | src/QRegex/P6Regex/Actions.nqp:
22:20 dalek nqp: fix separator use with code block in quantifier
22:20 dalek nqp: review: https://github.com/perl6/nqp/commit/83e13b64b0
22:20 timotimo sweet! :)
22:20 masak FROGGS++
22:20 dalek nqp: 04cb706 | (Tobias Leich)++ | src/vm/parrot/QAST/Compiler.nqp:
22:20 dalek nqp: support code blocks as quantifiers on parrot too
22:20 dalek nqp: review: https://github.com/perl6/nqp/commit/04cb70612e
22:20 dalek nqp: 0be70eb | (Tobias Leich)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
22:20 dalek nqp: cleanup dynquant on moarvm
22:20 dalek nqp: review: https://github.com/perl6/nqp/commit/0be70ebebc
22:20 dalek nqp: 17cabc1 | (Tobias Leich)++ | src/vm/parrot/QAST/Compiler.nqp:
22:20 dalek nqp: align to the standard about label prefix in dynquant
22:20 dalek nqp: review: https://github.com/perl6/nqp/commit/17cabc1c6c
22:20 dalek nqp: 0d5fabb | (Tobias Leich)++ | src/vm/jvm/QAST/Compiler.nqp:
22:20 dalek nqp: support code blocks as quantifiers on jvm as well
22:20 dalek nqp: review: https://github.com/perl6/nqp/commit/0d5fabbea8
22:21 dalek rakudo/nom: b772b66 | (Tobias Leich)++ | src/ (2 files):
22:21 dalek rakudo/nom: allow code block in ** quantifiers, / foo ** { $three..$seven } /
22:21 dalek rakudo/nom:
22:21 dalek rakudo/nom: The code block in a quantifier can either provide a range object that
22:21 dalek rakudo/nom: is used for min and maximum quantity, or it provides a single numeric
22:21 dalek rakudo/nom: item that is used to match exactly that many times.
22:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b772b66305
22:21 masak it just won't stop! :)
22:21 timotimo keep 'em coming! :)
22:21 dalek rakudo/nom: a6b2af7 | (Tobias Leich)++ | tools/build/NQP_REVISION:
22:21 dalek rakudo/nom: bump nqp rev for dynquant implementation
22:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a6b2af7449
22:21 FROGGS :P
22:25 masak vendethiel: reading http://learnxinyminutes.com/docs/perl6/ now
22:25 masak vendethiel: it's very good. thanks for doing this.
22:25 vendethiel thanks !
22:25 timotimo wow, masak is a fast reader!
22:25 masak vendethiel: the first line I reacted on was `when $_.chars > 50` -- I would probably not write the $_ there
22:26 masak vendethiel: I guess pedagogically it can be argued both ways, but...
22:26 masak vendethiel: ...pragmatically, one of the nice things with $_ is all the places it can be skipped :)
22:26 Ven joined #perl6
22:26 Ven masak: that might be true, but I still think I need to explain it at some point.
22:26 masak *nod*
22:26 Ven alright, let me check the order I've left it in.
22:27 masak just letting you know it stood out.
22:27 lue masak: I personally tend to write $_ , I happen to like how it says "GENERIC VALUE HERE" :)
22:27 FROGGS gnight
22:27 masak beyond that, it's a pity that the syntax highlighting and the lines overflowing their parent container horizontally conspire against your excellent content.
22:27 timotimo aye
22:27 masak night, FROGGS++
22:28 timotimo gnite froggs
22:28 Ven 'night FROGGS :).
22:28 Ven masak: I kinda need to explain it here. I'll do it better, though. It used to be before, explained with blocks, but I've moved them down, since I needed if/for/operators out of the way
22:28 timotimo maybe it'd be a neat thing to have a find, rename and ack that supports p6 regex
22:28 ventica joined #perl6
22:29 ventica .
22:29 lue timotimo: it'd be nice to get most things to dump their old P5-inspired regexes for P6-inspired ones :)
22:29 masak Ven: consider why you feel fine with `when /foo/` but not `when .chars > 50`
22:29 masak Ven: the former elides $_, the latter doesn't.
22:29 Ven I probably don't even explain the no-topic form, hmm.
22:29 timotimo lue: not that easy to do :P
22:30 * lue still thinks // matchers shouldn't clobber $_, grumble grumble...
22:30 lue or, sorry, ~~
22:30 lue ~~ is the one that's to blame for clobbering :)
22:30 Ven $_, "implicit variable" ? Not sure using "implicit argument" makes sense with given
22:31 masak lue: "clobbering" tends to imply that things aren't local and don't return to normal after the operation.
22:31 masak Ven: "the topic variable"
22:32 lue masak: "clobber" in the sense that I lose access to $_ within the // in   $thing ~~ /match stuff {something with $_}/
22:32 masak lue: well, you would anyway, since any block that mentions $_ will get it as an (implicit) parameter.
22:33 masak m: my &b = { say "OH HAI, $_ }; &b('world')
22:33 camelia rakudo-moar 189d1c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/X9u_pWUKaoâ�¤Unable to parse expression in double quotes; couldn't find final '"' â�¤at /tmp/X9u_pWUKao:1â�¤------> [32mmy &b = { say "OH HAI, $_ }; &b('world')[33mâ��[31m<EOL>[0mâ�¤    expectin…»
22:33 lue and IIRC no amount of OUTER:: or CALLER:: would get me the $_ I wanted to use.
22:33 masak m: my &b = { say "OH HAI, $_" }; &b('world')
22:33 camelia rakudo-moar 189d1c: OUTPUT«OH HAI, world␤»
22:33 masak lue: ^
22:33 masak same rule holds with a block in a regex.
22:33 masak so it's not //'s fault, nor ~~'s.
22:34 lue r: given 42 { say "4242".match(/$_ ** 2/); say "4242" ~~ /$_ ** 2/ }
22:34 camelia rakudo-{parrot,jvm,moar} 189d1c: OUTPUT«「4242」␤␤Nil␤»
22:34 lue I prefer .match's handling to // here
22:37 Ven masak: just commited what I think are better explanations :).
22:37 Ven I'm happy, because I've only gotten good feedback so far
22:38 ventica Ven: If you want, I can just roast you... :P
22:38 masak Ven: the && and || results look wrong to me
22:38 masak m: say 3 && 4
22:38 camelia rakudo-moar 189d1c: OUTPUT«4␤»
22:39 ventica "What a total CRAP tutorial! My God! Who wrote this piece of garbage???!?"
22:39 ventica :P
22:39 masak Ven: notice that the result is actually not True, but 4.
22:39 masak m: say 0 || False
22:39 camelia rakudo-moar 189d1c: OUTPUT«False␤»
22:39 masak Ven: that one is right.
22:39 masak Ven: do you make a distinction between True and truthy?
22:39 Ven I should.
22:39 masak aye, I think so.
22:40 ventica isn't 3 && 4 the same as all(3,4) ?
22:40 ventica oh, that's single-ampersand
22:40 ventica 3 & 4
22:40 ventica right?
22:40 masak ventica: right.
22:40 masak ventica: 3 & 4 is a junction, which "keeps" both values around.
22:40 ventica hmm
22:40 masak ventica: 3 && 4 evaluates to a single value (4).
22:40 ventica but isn't && a bool?
22:41 Ven no, not really
22:41 masak no, it's happy with any type.
22:41 * ventica hits the books re. &&
22:41 masak it *treats* the values as booleans, for a while, but it keeps the originals.
22:41 masak in C, you'd see C "flatten" the original values to 0 or 1.
22:41 ventica aha
22:41 masak Perl (5 or 6) doesn't roll like that.
22:42 ventica 4 || 0  -----> 4 then?
22:42 * Ven shudders thinking about php's behavior :P
22:42 ventica in P5, I only used "or"
22:42 ventica I didn't like ||
22:42 timotimo Ven: how does php behave in that case?
22:42 masak ventica: heh, I ranted against that use of "or" the other day ;)
22:42 Ven timotimo: it only returns true or false. Never an operand
22:42 timotimo ah
22:42 masak ventica: if you only use "or", you have to use a whole lot of parentheses.
22:43 Ven which makes it 100 times less powerful than every other language therei s
22:43 masak PHP :(
22:44 lue I like to think that PHP is a good counterargument to anyone's complaints that Perl 6 shouldn't be making so many breaking changes :)
22:45 masak Ven: `-> $a, b { $ b / $a }` -- you got an extra space there, `$ b`
22:45 timotimo please elaborate?
22:45 masak Ven: and missing a `$` in the parameter list near `b`
22:45 Ven masak: timotimo++ reported that already. I fixed the spacing too, it's just not updated
22:45 itz_ hmmm should the p6doc source be less than 80 cols or should a formatter be used as part of the command I wonder?
22:45 lue timotimo: as I understand it, the underlying problem with PHP is that it never ever ever changes the behavior of old stuff, to be compatible or something.
22:45 itz_ or maybe people don't care about < 80 cols anymore?
22:46 Ven lue: oh, that's wrong, they've done it
22:46 timotimo lue: i thought you'd say something like "php breaks things all the time"
22:46 Ven I've worked on some phpbb code, from 2002-2006, and it's been breaking :P
22:46 ventica itz_: It will come back in vogue once we're all doing all doing our builds on our smartphones...
22:47 masak I can confirm that PHP breaks backwards compatibility.
22:49 nbrown joined #perl6
22:49 masak Ven: the /!\ is cute. I'll have to remember that.
22:49 masak m: say "\ "
22:49 Ven masak: heheheheh
22:49 camelia rakudo-moar 189d1c: OUTPUT« ␤»
22:49 BenGoldberg Ven, perl's '&&' operator can be thought of as being 'if' in disguise :)
22:49 lue Hm. Maybe I'm misremembering how PHP refuses to have consistency...
22:50 Ven I actually broke the document before because that line ended with /!\, and \" didn't quite work out
22:50 ventica programming in PHP is punishment IMO... I've only dabbled in it and ran away screaming
22:50 Ven what I don't like about our falsey stuff is that:
22:50 Ven m: say so "0"; say so "0.0"; say so 0; say so 0.0
22:50 camelia rakudo-moar 189d1c: OUTPUT«False␤True␤False␤False␤»
22:51 ventica It's like BASIC... but less logical
22:51 * ventica doesn't really think BASIC is logical...
22:51 nbrown_ joined #perl6
22:52 masak Ven: I was sure you'd mention that postfixes have to come *directly* after the term, with no intervening whitespace...
22:52 Ven and that infixes need space
22:52 masak they don't, not in the general case.
22:52 Ven they should :P
22:52 masak but put them in, because the community says so.
22:53 masak m: say 2+2
22:53 camelia rakudo-moar 189d1c: OUTPUT«4␤»
22:53 Ven yeah, sure, except for the basic stuff :)
22:53 lue The only place I don't generally put spaces around infix ops is .= , but that's because I see it as a special kind of method call, rather than an infix assignment
22:54 jnthn Fun fact: .= is parsed in two different ways depending on if you put whitespace around it or not.
22:54 masak Ven: '# needs the parentheses because it's a scalar' -- I felt confused by this one. sure you could name it &r and then just call it with `r;`, but that IMO has nothing to do with scalars.
22:54 Ven jnthn: I actually know that rule from a language that stole `.=` :P
22:55 ventica jnthn: One is concat and the other method invocation, correct?
22:55 lue ventica: nope
22:55 Ven masak: I'm not really considering "&r" to be a scalar here, though
22:55 ventica :\
22:55 lue ~= is concatenation
22:55 ventica oh oh yeah
22:55 ventica see, there's my P5 brain... :P
22:56 masak Ven: just noting my confusion at the comment.
22:56 rurban1 joined #perl6
22:57 masak Ven: it says '- Reduce meta-operator' but then there's no explanation of it. and the comments above make it seem like you'd introduce several meta-operators, but I see none.
22:57 Ven masak: taht's a todo
22:57 masak ok.
22:57 Ven There's only so much I did atm. Still a loooong way to go ...
22:58 jnthn ventica: iirc, one is parsed as a postfix (no space), the other as an infix meta-op
22:59 ventica hrm... will have to defer grokking that for now...
22:59 ventica @jnthn
23:00 masak Ven: "`ff` (flip-flop) and `fff` (flip-flop)" -- that reads funny.
23:00 masak Ven: maybe call them "awk flip-flip" and "sed flip-flop" or something?
23:00 Ven hehe :p. copy paste fail
23:00 Ven flip flop and flip flop range are the spec name
23:01 TimToady it's kinda funny to compare them to Ruby's .. and ... when Ruby stole those straight out of Perl 5 :)
23:01 ventica OT question for those that have been talking abt Perl6 outside of the US... how do you judge interest in Perl6 (and non-MS/Google languages generally) by non-US people versus US people?
23:01 Ven TimToady: I'm not *comparing* them. I'm saying "you might've seen them in"
23:01 masak Ven: I don't find the name "flip flop range" in S03.
23:02 masak Ven: do you have a reference for me?
23:02 * TimToady understands there may be people coming from other langauges than Perl 5 too :)
23:02 TimToady languages even
23:02 Ven masak: maybe my memory is fuzzy? Maybe TimToady++ can confirm ?
23:02 TimToady Used to be I couldn't spell lingrist, and now I are one.
23:02 jnthn ventica: I do the vast majority of my Perl 6 talking outside of the US :)
23:03 masak Ven: don't change it to "flip flop range" until you can confirm it somehow ;)
23:03 Ven masak: well, they're both named "flipflop ranges", actually
23:03 lue .oO(LAN gauges)
23:03 masak Ven: `for (1, 3, 60, 3, 40, 60) {` -- superstitious parens.
23:03 Ven but the fff one is "flipflop ranges (sed style)"
23:03 jnthn ventica: Even within Europe there's plenty of variety in technology choice.
23:03 masak Ven: that's why I suggested "awk/sed flipflop"
23:04 nbrown joined #perl6
23:04 jnthn ventica: Sweden is a bit of an MS hotbed. I teach C# here. Mostly I teach folks to write C# as if it were Perl 6, but don't tell them that... :P
23:04 masak Ven: EOF. thanks for some interesting reading.
23:04 jnthn ventica: Whereas Norway, just to the north, is far less MS Centric. Loads of Java...
23:04 Ven masak: general afterthought ? Not too hard to stomach ?
23:04 itz_ there seems to be most perl6 interest outside UK and US I'd guess
23:05 jnthn You can kinda see it in the Perl community sizes in various countries, also.
23:05 lue jnthn: isn't norway the number one world consumer of coffee? :P
23:05 jnthn And what conf talks happen
23:05 masak Ven: you're asking the wrong enthusiast :)
23:05 jnthn Like, Polish Perl Workshop was mostly Perl 6 talks :)
23:05 jnthn lue: I dunno, but Sweden is the number one at eating bananas
23:05 Ven masak: indeed. I'm a bit wary it's a looot of informations for a newcomer ...
23:06 masak Ven: that's not necessarily a bad thing.
23:06 masak Ven: I like that you have many concrete examples along the way.
23:06 masak Ven: some of which I hadn't seen before.
23:06 masak Ven++
23:06 Ven really :P ?
23:06 masak yes, I can tell you've spent some time on this.
23:07 Ven (I meant WRT "some of which I hadn't seen before")
23:08 ventica jnthn: thanks for that info... I spend almost all my time in the US and whenever I travel abroad the #1 thing that strikes me is just how much of an echo chamber I live in...
23:08 masak Ven: I liked that [5] came out meaning 5 ** 5 :)
23:10 masak 'night, #perl6
23:10 TimToady HELLO! Hello...hello...ₕₑₗₗₒ
23:10 Ven 'night :)
23:13 ventica masak: night o/
23:19 aoseki joined #perl6
23:19 ggoebel111117 joined #perl6
23:21 charsbar_ joined #perl6
23:22 mattp__ joined #perl6
23:22 tempire_ joined #perl6
23:22 avuserow_ joined #perl6
23:22 [Coke]_ joined #perl6
23:24 rjbs- joined #perl6
23:24 Rounin_ joined #perl6
23:25 sunnavy joined #perl6
23:25 yeltzooo4 joined #perl6
23:28 sftp_ joined #perl6
23:29 Bucciarati joined #perl6
23:31 yakudza joined #perl6
23:31 eMBee joined #perl6
23:31 ribasushi joined #perl6
23:38 carlin uhhh....
23:39 carlin I think rand() on OpenBSD won't return two odd or even numbers in a row
23:39 carlin is that normal?
23:40 ventica carlin: I don't know if it's normal, but it's definitely wrong :P
23:41 dalek nqp: 53769e5 | jnthn++ | tools/build/MOAR_REVISION:
23:41 dalek nqp: Get Moar with extop changes, leak fixes.
23:41 dalek nqp: review: https://github.com/perl6/nqp/commit/53769e5cba
23:43 dalek rakudo/nom: 506aae5 | jnthn++ | / (2 files):
23:43 dalek rakudo/nom: Get latest MoarVM; remove nasty hack in ext ops.
23:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/506aae5ade
23:44 timotimo this commit also removes a nasty typo
23:45 carlin I might be completely off-base
23:45 carlin but it does definitely look like the first call of rand() is odd or even, and the second call is always the opposite
23:45 carlin and mp_rand calls rand() twice
23:46 carlin and adds them
23:46 carlin I think
23:46 timotimo that seems like 1 bit of randomness that's entirely predictable :(
23:46 timotimo does the man page say anything about that?
23:46 carlin so the result will of rand() + rand() will always be odd
23:46 timotimo aye
23:46 carlin and that might explain why this happens:
23:47 carlin > say nqp::rand_I(2, Int) xx 40
23:47 carlin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
23:48 carlin > say nqp::rand_I(10, Int) xx 40
23:48 carlin 9 7 3 5 9 1 1 7 3 7 3 1 1 3 1 7 1 1 5 7 7 3 5 5 1 9 3 9 1 3 9 9 5 7 3 1 1 1 9 3
23:49 carlin who needs even numbers anyway
23:52 jnthn carlin: https://groups.google.com/forum/#!msg/comp.os.vms/9k4W6KrRV3A/YTktGSwi2EkJ may be of interest
23:52 xragnar_ joined #perl6
23:53 jnthn http://rosettacode.org/wiki/Random_number_generator_(included)#C also
23:54 timotimo someone could write a mersenne twister implementation; it's in the most wanted anyway :)
23:58 ventica BTW, I ran into a rand() bug like this on a diff project when inadvertently using float rand() instead of int rand()
23:58 jnthn Sleep time; 'night
23:58 ventica worth looking into
23:58 timotimo gnite jnthn!
23:58 ventica jnthn o/

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

Perl 6 | Reference Documentation | Rakudo