Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-01-18

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 Skarsnik self.foo does not work?
00:00 orbus I have another method in my class overriding foo
00:00 orbus that does something else :p
00:00 Skarsnik oh ok
00:01 orbus so I'm doing like self.WALK(:name<foo>,:super)[0](self,item)
00:01 Skarsnik I never played with that x)
00:01 orbus (where item is the argument to foo)
00:01 mspo http://docs.perl6.org/routine/.::.html
00:01 orbus yeah, this does seem to work
00:01 mspo I think is just what you're looking for
00:02 orbus ooh
00:02 linuxuser9000 joined #perl6
00:02 orbus might be
00:02 orbus thanks
00:02 mspo Child.Parent::foo
00:02 mspo seems backwards but whatevs
00:02 orbus yeah, that's kind of weird
00:02 Skarsnik it's not with stuff like callnext?
00:02 orbus but if it works
00:02 orbus callnext calls the same method in the parent
00:03 orbus I'm using that where I override foo
00:03 orbus but I also want to call parent foo from a new method with a different name
00:03 rodi joined #perl6
00:03 orbus let me see if this does what I need
00:05 orbus okay
00:05 orbus first I tried Child.Parent::foo
00:05 orbus that was no good
00:05 orbus but self.Parent::foo seems to work
00:05 * orbus is still kind of struggling with the object model
00:06 orbus mspo: thanks for that - that does seem cleaner
00:06 mspo how do I figure out panda's prefix?
00:06 orbus prefix?
00:06 mspo I can't figure out where it is putting stuff :)
00:07 orbus oh
00:07 mspo installed from rakudobrew
00:07 orbus I've never used rakudobrew
00:07 orbus I always just build from the tarballs
00:07 mspo orbus: I would have never figured out self.WALK(:name<foo>,:super)[0](self,item)
00:08 orbus haha, I had to dig around in the synopsis documents and then experiment a lot
00:09 orbus trying to figure out how to get panda to report where it's putting stuff...
00:09 orbus "which panda" might give you a clue?
00:12 mspo rakudobrew does weird stuff
00:14 abaugher mspo, This might not be the best way to do it, but if you run perl6 and try to 'use' a module that doesn't exist, it will tell you where it tried to find it.  Presumably that would be where panda is putting things.
00:14 abaugher so: perl6 -e 'use Nonsense'
00:15 mspo ./.rakudobrew/moar-nom/install/share/perl6/
00:15 mspo thanks that worked
00:22 Skarsnik mspo, any chance with your lib C ? x)
00:22 Skarsnik Nonsence sound like an interesting module to do
00:28 orbus hmmm
00:29 orbus according to S28 there should be a special variable for include path
00:29 mspo getting a bunch of these, I guess from gccxml: lmdb/libraries/liblmdb/mdb.c:1882: error: invalid conversion from 'void*' to 'MDB_page*'
00:29 mspo oh he left
00:29 orbus there's supposed to be @?INC
00:29 orbus and I guess @*INC
00:29 orbus (I'm a little unclear)
00:29 orbus but neither of them works, so....
00:33 orbus m: say @*INC
00:33 camelia rakudo-moar 770d10: OUTPUT«Dynamic variable @*INC not found␤  in block <unit> at /tmp/tPIXFkiyn1 line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/tPIXFkiyn1 line 1␤␤»
00:33 orbus say @?INC
00:33 orbus m say @?INC
00:33 orbus argh
00:33 orbus m: say @?INC
00:33 camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ko_B7t4n5O␤Variable '@?INC' is not declared␤at /tmp/ko_B7t4n5O:1␤------> 3say 7⏏5@?INC␤»
00:33 mspo yeah I noticed that too ;)
00:34 orbus there's several references to it in older changelogs
00:34 orbus it seems like it was kind of in flux
00:34 orbus there's no mention of it being removed in the changelog, but it could have happened
00:34 mspo quite a few things need some settling down
00:35 orbus lots of rough edges need filing, but there's at least a pretty solid base to build on now
00:36 pierre-vigier joined #perl6
00:37 cfedde joined #perl6
00:38 Util m: my @a1 = <a b c>; my @a2 = @a1      xx 2; say @a2.perl;
00:38 camelia rakudo-moar 770d10: OUTPUT«[["a", "b", "c"], ["a", "b", "c"]]␤»
00:38 Util my @a1 = <a b c>; my @a2 = @a1.flat xx 2; say @a2.perl;
00:38 Util m: my @a1 = <a b c>; my @a2 = @a1.flat xx 2; say @a2.perl;
00:38 camelia rakudo-moar 770d10: OUTPUT«[("a", "b", "c"), ("a", "b", "c")]␤»
00:38 Util How can I get ["a", "b", "c", "a", "b", "c"] instead?
00:42 orbus I haven't really dug into lists and arrays
00:42 orbus but
00:42 orbus m: say ((1,2,3),(1,2,3)).flat
00:42 camelia rakudo-moar 770d10: OUTPUT«(1 2 3 1 2 3)␤»
00:44 orbus but flat doesn't work on arrays
00:44 orbus apparently
00:45 pierre-vigier joined #perl6
00:48 orbus m: say [(1,2,3),(1,2,3)].flatmap({$_.flat})
00:48 camelia rakudo-moar 770d10: OUTPUT«(1 2 3 1 2 3)␤»
00:48 orbus that does it, but I'm not totally sure I understand why :)
00:49 mspo there you go
00:50 cfedde joined #perl6
00:50 * orbus has to dash for a bit
00:50 orbus later
00:55 Util orbus: thanks
00:55 sortiz hi #perl6
00:59 AlexDaniel where's huggable?
00:59 AlexDaniel Util: flat works on arrays, but it does not dwim… it does something with shaped arrays
01:00 AlexDaniel Util: see this: https://rt.perl.org/Public/Bug/Display.html?id=127121
01:00 AlexDaniel .seen huggable
01:00 yoleaux I saw huggable 13 Jan 2016 18:17Z in #perl6: <huggable> ZoffixW, Added user experience as Identifying issues in and improving the Perl 6 user experience: https://github.com/perl6/user-experience
01:00 pierre-vigier joined #perl6
01:01 AlexDaniel m: my @a1 = <a b c>; my @a2 = @a1.list.flat xx 2; say @a2.perl;
01:01 camelia rakudo-moar 770d10: OUTPUT«[("a", "b", "c"), ("a", "b", "c")]␤»
01:02 AlexDaniel ah
01:02 AlexDaniel m: my @a1 = <a b c>; my @a2 = @a1 xx 2; say @a2.list.flat.perl;
01:02 camelia rakudo-moar 770d10: OUTPUT«($["a", "b", "c"], $["a", "b", "c"]).Seq␤»
01:02 AlexDaniel ah
01:03 AlexDaniel m: my @a1 = <a b c>; my @a2 = |@a1 xx 2; say @a2.perl;
01:03 camelia rakudo-moar 770d10: OUTPUT«["a", "b", "c", "a", "b", "c"]␤»
01:03 AlexDaniel Util: what about this? ↑
01:03 yeahnoob joined #perl6
01:04 sortiz m:  my @a1 = <a b c>; my @a2 = @a1 xx 2; say @a2.List.flat # With uppercase List.
01:04 camelia rakudo-moar 770d10: OUTPUT«(a b c a b c)␤»
01:04 AlexDaniel sortiz: riiight…
01:06 sortiz Array.flat is for work with the inner structure of the Array, you only seen "works" when @foo.shape.elems > 1
01:07 azawawi how can simplify the following code: https://github.com/azawawi/perl6-opencv/blob/master/lib/OpenCV.pm6#L5
01:07 azawawi s/can/can i/
01:08 sortiz m: my @a[2;2] = ([1,2],[3,4]); say @a.flat;
01:08 camelia rakudo-moar 770d10: OUTPUT«(1 2 3 4)␤»
01:09 AlexDaniel m: my @a[2;2] = ([1,2],[3,4]); say @a.List.flat;
01:09 camelia rakudo-moar 770d10: OUTPUT«(1 2 3 4)␤»
01:09 AlexDaniel
01:10 sortiz IMHO Array.flat should be Array.Seq, to avoid the confusion.
01:10 AlexDaniel I still don't understand why we can't have .flat that dwims
01:10 AlexDaniel this question is asked every few days…
01:12 sortiz Yes, I know and I'm lobbying for a resolution.
01:14 sortiz But there are 9 tests in roast that depends of the current behavior.
01:15 Actualeyes joined #perl6
01:16 sortiz And in other side, shaped arrays are not fully implemented yet.
01:18 sortiz I'm dreaming with an Iterable.flat :deep adverb to solve that.
01:19 linuxuser9000 joined #perl6
01:20 skids sortiz: as an aside, probably always best to "say thing.perl" rather than "say thing" when discussing these issues.
01:21 sortiz AlexDaniel, yes you right, or use dd
01:21 skids Another option is an adverb on [] that breaks Scalars, but that would only help when you are using [].
01:22 sortiz m: my @a[2;2] = ([1,2],[3,4]); dd @a.flat;
01:22 camelia rakudo-moar 770d10: OUTPUT«(1, 2, 3, 4).Seq␤»
01:25 Hotkeys ʔ
01:25 Hotkeys I should use glottal stop instead f question mark
01:25 Hotkeys just to see if people notice
01:25 Hotkeys ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ?ʔ
01:26 AlexDaniel Hotkeys: well, the difference is huge here
01:27 AlexDaniel .u ʔ
01:27 yoleaux U+0294 LATIN LETTER GLOTTAL STOP [Lo] (ʔ)
01:27 skids sortiz: I am guessing any decision on a resolution to Array.flat and the fuller implementation of shaped arrays will happen at the same time.
01:27 geekosaur they're distinctive when next to each other
01:27 geekosaur also in my font it's oddly bold so I'd probably look more closely (this may in fact be the point...)
01:28 AlexDaniel interesting thing is that it is Lo
01:28 AlexDaniel m: sub wtfʔʔʔ { say ‘oh noes’ }; wtfʔʔʔ
01:28 camelia rakudo-moar 770d10: OUTPUT«oh noes␤»
01:28 AlexDaniel m: sub ʔʔʔ { say ‘oh noes’ }; ʔʔʔ
01:28 camelia rakudo-moar 770d10: OUTPUT«oh noes␤»
01:29 sortiz skids, sure.
01:32 Hotkeys lol
01:33 Hotkeys I actually meant to put that in another channel
01:33 Hotkeys not exactly perl 6 related
01:33 Hotkeys :p
01:35 Util AlexDaniel, sortiz: thanks!
01:43 hippie2 joined #perl6
01:47 mspo AlexDaniel: how would I translate your 'my @a1 = <a b c>; my @a2 = |@a1 xx 2; say @a2.perl;' example into using Slip
01:47 mspo also what is List (upper case?)
01:48 AlexDaniel m: my @a1 = <a b c>; my @a2 = slip(@a1) xx 2; say @a2.perl;
01:48 camelia rakudo-moar 770d10: OUTPUT«["a", "b", "c", "a", "b", "c"]␤»
01:48 AlexDaniel mspo: I'm not sure what you mean
01:48 cpage_ joined #perl6
01:49 skids mspo: .List is a type coercion to type List, which is what , makes.
01:49 perlawhirl joined #perl6
01:49 mspo oic
01:49 perlawhirl hi perlers
01:49 mspo AlexDaniel:  thanks
01:50 bpmedley joined #perl6
01:50 AlexDaniel mspo: | does the same thing, as far as I can see
01:50 mspo apparently they are synomyms
01:50 perlawhirl besides '.reverse[^3]', is '[*-3..*]' the preferred way to get the last 3 elems?
01:50 mspo I was typing (@a,Slip.new(@a xx 2)), which did not work
01:51 skids There is a difference, it has to do with iterators/caching.
01:51 Juerd perlawhirl: .tail(3)
01:51 Juerd perlawhirl: As for "preferred", TIMTOWTDI. Pick your favorite.
01:52 Juerd Perl 6 is very young so we'll have to find out what the community's favorites are :)
01:52 Juerd That might take a few years.
01:52 perlawhirl Juerd: thanks! i now prefer tail :D
01:52 sortiz AlexDaniel, but Array.List isn't the same that List(Array:D), beware.
01:52 mspo just .roll until you get what you want :)
01:53 skids Oh sorry, The difference between | and Slip is that | breaks a single item into a Slip whereas Slip takes a list.
01:53 mspo and slip() is the same as Slip.new() ?
01:53 skids mspo: it is not complete yet but there is now http://doc.perl6.org/language/list
01:54 skids mspo: I would think so.
01:54 mspo perl6 syntax is big
01:54 skids Uness there is a corresponding difference as with .list and .List
01:55 Juerd mspo: Not quite as big as any natural language. You'll manage :)
01:56 sortiz I assume slip(...) as the inverse of item(...), and sugared as |(...) and $(...)
01:56 Juerd sortiz: A Slip is a special kind of List.
01:57 Juerd m: my $a = (42, 23); my $b = (1, $a, 2); say $b;
01:57 camelia rakudo-moar 770d10: OUTPUT«(1 (42 23) 2)␤»
01:57 Juerd m: my $a = slip (42, 23); my $b = (1, $a, 2); say $b;
01:57 camelia rakudo-moar 770d10: OUTPUT«(1 42 23 2)␤»
01:58 Juerd In most cases you'd use 'slip' or '|' as late as possible
01:58 Juerd m: my $a = (42, 23); my $b = (1, |$a, 2); say $b;
01:58 camelia rakudo-moar 770d10: OUTPUT«(1 42 23 2)␤»
01:58 * Juerd finds it a bit weird to use Slip.new explicitly.
01:58 sortiz Slip lists are autodeitemized.
01:59 Juerd sortiz: Still not inverse. Slippiness (for lack of a better word) is carried with the list value, whereas itemization happens instantly and isn't stored as such.
02:00 skids m: ((1,2),$(2,3)) # I would consider the second to be an "itemized" list not the first
02:00 camelia rakudo-moar 770d10: OUTPUT«WARNINGS for /tmp/A_IrC67yRD:␤Useless use of constant integer 1 in sink context (lines 1, 1)␤Useless use of constant integer 2 in sink context (lines 1, 1)␤»
02:00 skids m: ((1,2),$(2,3)).say
02:00 camelia rakudo-moar 770d10: OUTPUT«((1 2) (2 3))␤»
02:00 skids m: ((1,2),$(2,3)).perl.say
02:00 camelia rakudo-moar 770d10: OUTPUT«((1, 2), $(2, 3))␤»
02:02 sortiz m:  dd (1,(2,3),4)
02:02 camelia rakudo-moar 770d10: OUTPUT«(1, (2, 3), 4)␤»
02:02 sortiz m:  dd (1,$(2,3),4)
02:02 camelia rakudo-moar 770d10: OUTPUT«(1, $(2, 3), 4)␤»
02:02 sortiz m:  dd (1,$(2,3),4).flat
02:02 camelia rakudo-moar 770d10: OUTPUT«(1, $(2, 3), 4).Seq␤»
02:02 sortiz m:  dd (1,(2,3),4).flat
02:02 camelia rakudo-moar 770d10: OUTPUT«(1, 2, 3, 4).Seq␤»
02:02 sortiz Jured, its stored, no?
02:02 Juerd sortiz: It seems I completely understood what $ does wrong.
02:03 Juerd I think I let myself be misled by .say
02:03 Juerd I wonder what the use case for it is though
02:04 Juerd When would you use this?
02:04 sortiz The "problem" with @foo = ... is that the assignment auto itemized all elements.
02:05 mspo Juerd: Slip.new was on a docs page that said "you can also use | for this"
02:07 skids sortiz: It's more that any accesses to Array through normal means auto-itemizes; you have to use := or one of the mop methods to bypass that behavior.
02:07 skids mspo: I should probably clear that language up, like I said, that page is a bit new.
02:07 BenGoldberg m: dd (1,(2,3),4)
02:07 camelia rakudo-moar 770d10: OUTPUT«(1, (2, 3), 4)␤»
02:08 BenGoldberg m: dd (1,|(2,3),4)
02:08 camelia rakudo-moar 770d10: OUTPUT«(1, 2, 3, 4)␤»
02:08 sortiz skids, Yes, but in that case I prefer don't use an Array.
02:08 sortiz List itself is indexable.
02:08 chacewells joined #perl6
02:09 skids sortiz: Yes the only proble is if you want to use non-itemized things and still be able to push/pop/splice/bind
02:10 sortiz Yes, Array is mutable, List not.
02:10 xpen joined #perl6
02:12 sortiz IMO and in a deep sense, the existence of real Lists is the biggest departure from perl5
02:14 sortiz and the importance of the GLR
02:15 AlexDaniel star: my @a1 = <a b c>; my @a2 = @a1 xx 2; say @a2.flat.perl;
02:15 camelia star-m 2015.09: OUTPUT«($["a", "b", "c"], $["a", "b", "c"]).Seq␤»
02:20 perlawhirl i have another question... can i lazily get regex captures... something like... my $matches = $text ~~ m:g/ <$foo> ( <$bar> ) /;
02:20 perlawhirl but that seems to search all the text. can i make it wait until i ask for $matches[0], etc
02:21 AlexDaniel perlawhirl: yes
02:21 perlawhirl AlexDaniel: Cool! now how to i do it ?
02:21 AlexDaniel perlawhirl: well, I'm trying to find it…
02:22 perlawhirl thanks... i searched the Regexes doc for the work lazy... no hits
02:22 perlawhirl s/work/word/
02:24 AlexDaniel perlawhirl: :c or :continue
02:24 AlexDaniel ah no
02:24 AlexDaniel or maybe yes…
02:24 AlexDaniel let's see, there is something else…
02:25 daotoad joined #perl6
02:25 adu joined #perl6
02:26 daxim joined #perl6
02:26 AlexDaniel I wonder if p5-style thing works in this case?
02:28 perlawhirl hmm, maybe i can put it in a map... since assigning maps to scalars is typically done lazily
02:29 dalek doc: a70059b | skids++ | doc/Language/list.pod:
02:29 dalek doc: Fix a link and elaborate on Slip.new versus prefix:<|>, add slip()
02:29 dalek doc: review: https://github.com/perl6/doc/commit/a70059b86c
02:30 AlexDaniel perlawhirl: according to the design docs there is also :p
02:30 sortiz skids++ # For the docs
02:31 AlexDaniel right
02:34 AlexDaniel m: given ‘this is a test’ {.say for m:global:p/\w+{say 'ok'}/ }
02:34 camelia rakudo-moar 770d10: OUTPUT«ok␤「this」␤ok␤「is」␤ok␤「a」␤ok␤「test」␤»
02:34 AlexDaniel perlawhirl: ↑
02:34 AlexDaniel m: given ‘this is a test’ {.say for m:g:c/\w+{say 'ok'}/ }
02:34 camelia rakudo-moar 770d10: OUTPUT«ok␤「this」␤ok␤「is」␤ok␤「a」␤ok␤「test」␤»
02:35 AlexDaniel I wonder what is the practical difference between :c and :p
02:36 skids :p takes a parameter?
02:37 AlexDaniel skids: :c does too
02:38 skids Ah -- it s whether it anchors.
02:39 AlexDaniel perlawhirl: a good question is how do you turn that into a lazy list :)
02:39 pierre-vigier speaking about regexes, something really strange, i can't understand why, first part:
02:40 pierre-vigier p6: my $str = "plop"; my $match = $str ~~ rx{ ^ $<tt>=[plop] $ }; say $match; say $/;
02:40 camelia rakudo-moar 770d10: OUTPUT«「plop」␤ tt => 「plop」␤「plop」␤ tt => 「plop」␤»
02:40 pierre-vigier match is equivalent to $/
02:40 pierre-vigier p6: my $rule = rx{ ^ $<tt>=[plop] $ }; my $str = "plop"; my $match = $str ~~ $rule; say $match; say $/;
02:40 camelia rakudo-moar 770d10: OUTPUT«True␤「plop」␤ tt => 「plop」␤»
02:40 pierre-vigier if rule is in a Variable, match is a boolean
02:40 perlawhirl AlexDaniel: yeah, trying to wrap it in a gather/take just to see if i can make it happen
02:41 pierre-vigier Even weirder, if using a hash value for the string, the capture diseappear
02:41 pierre-vigier p6: my $h = test => "plop"; my $rule = rx{ ^ $<tt>=[plop] $ }; my $str = $h<test>; my $match = $str ~~ $rule; say $match; say $/;
02:41 camelia rakudo-moar 770d10: OUTPUT«True␤「plop」␤ tt => 「plop」␤»
02:41 skids m: for "ab", "a b" { m/a/; m:c/b/.say; }; for "ab", "a b" { m/a/; m:p/b/.say; }
02:41 camelia rakudo-moar 770d10: OUTPUT«「b」␤「b」␤「b」␤Nil␤»
02:41 pierre-vigier p6: my $h = test => "plop"; my $rule = rx{ ^ $<tt>=[plop] $ }; my $match = $h<test> ~~ $rule; say $match; say $/;
02:41 camelia rakudo-moar 770d10: OUTPUT«True␤Nil␤»
02:43 linuxuser9000 joined #perl6
02:45 skids pierre-vigier: That's a known bug, RT#127071
02:46 pierre-vigier joined #perl6
02:46 pierre-vigier is there something wrong in my last regex test?
02:47 pierre-vigier p6: my $h = test => "plop"; my $rule = rx{ ^ $<tt>=[plop] $ }; my $match = $h<test> ~~ $rule; say $match; say $/;
02:47 camelia rakudo-moar 770d10: OUTPUT«True␤Nil␤»
02:47 pierre-vigier why it's not capturing, that's weird
02:48 AlexDaniel m: given ‘this is a test’ { say m:g:c/\w+/.is-lazy };
02:48 camelia rakudo-moar 770d10: OUTPUT«False␤»
02:48 AlexDaniel why not?
02:48 skids Cause the regex engine is really complicated and nobody got to it yet?
02:48 skids (just guessing)
02:49 mohae joined #perl6
02:51 Juerd It seems to be related to $h<test>, because a literal "plop" in that spot will match just fine.
02:53 pierre-vigier indeed, it's working without $h<test>
02:53 pierre-vigier it's even working if i affect $<test> to a scalar
02:53 perlawhirl AlexDaniel... got it working inside gather/take. though i imagine there might be another way, this works for my use case
02:53 perlawhirl m: my $m = gather {given "a man a plan a canal panama" {for m:g:c/:i<<'a'<.ws>(<:L>+)/ {take $_[0].Str;}}}; say $m[0];
02:53 camelia rakudo-moar 770d10: OUTPUT«man␤»
02:54 Juerd pierre-vigier: I think this is a bug. Could you file the bug by emailing to rakudobug@perl.org?
02:54 pierre-vigier directly email there? it will go in RT ?
02:54 Juerd Yes
02:54 pierre-vigier anything special for the title format?
02:54 AlexDaniel m: my $m = gather {given "a man a plan a canal panama" {for m:g:c/:i<<'a'<.ws>(<:L>+){say ‘ok’}/ {take $_[0].Str;}}}; say $m[0];
02:54 camelia rakudo-moar 770d10: OUTPUT«ok␤man␤»
02:54 AlexDaniel m: my $m = gather {given "a man a plan a canal panama" {for m:g:c/:i<<'a'<.ws>(<:L>+){say ‘ok’}/ {take $_[0].Str;}}}; say $m[2];
02:54 camelia rakudo-moar 770d10: OUTPUT«ok␤ok␤ok␤canal␤»
02:54 AlexDaniel perlawhirl: great
02:54 skids it is probably related to 127071 so I can just add this IRC chat there, if you ike.
02:55 perlawhirl gather/take can solve so many problems... it's the hammer in my toolbox
02:55 skids star: my $h = test => "plop"; my $rule = rx{ ^ $<tt>=[plop] $ }; my $match = $h<test> ~~ $rule; say $match; say $/;
02:55 camelia star-m 2015.09: OUTPUT«「plop」␤ tt => 「plop」␤「plop」␤ tt => 「plop」␤»
02:55 skids Yes most likely the same bug as 127071
02:56 pierre-vigier what is star ? another version?
02:56 molaf_ joined #perl6
02:56 skids Older version.
02:57 Actualeyes joined #perl6
02:57 pierre-vigier Actually, when reading the ticket, i found that bug by trying to fix Lingua::NUmber :D
03:01 pierre-vigier something "new" that is not in the RT, is that now, the capture $/ is empty as well
03:01 pierre-vigier p6: my $h = test => "plop"; my $rule = rx{ ^ $<tt>=[plop] $ }; my $match = $h<test> ~~ $rule; say $match; say $/;
03:01 camelia rakudo-moar 770d10: OUTPUT«True␤Nil␤»
03:01 pjscott joined #perl6
03:01 skids https://rt.perl.org/SelfService/Display.html?id=127071 updated.
03:02 pierre-vigier Thank you for the reporting
03:03 skids np, thanks for saying "ouch" :-)
03:03 AlexDaniel perlawhirl: although it is very powerful, still I find it a little bit verbose in this case
03:04 perlawhirl AlexDaniel: agreed. like i said, i'm sure there (should be) an easier way. i'll keep looking about and report back if i find anything
03:12 AlexDaniel perlawhirl: found it!
03:12 pjscott joined #perl6
03:12 perlawhirl hand it over!
03:13 AlexDaniel m: $_ = ‘this is a test’; my @a := m:g:c/\w+{say ‘ok’}/; say @a[0];
03:13 camelia rakudo-moar 770d10: OUTPUT«ok␤「this」␤»
03:13 AlexDaniel m: $_ = ‘this is a test’; my @a := m:g:c/\w+{say ‘ok’}/; say @a[3];
03:13 camelia rakudo-moar 770d10: OUTPUT«ok␤ok␤ok␤ok␤「test」␤»
03:14 pjscott joined #perl6
03:14 AlexDaniel interestingly it always attempts to find at least one match
03:14 AlexDaniel even if you don't ask it to do so
03:15 AlexDaniel m: $_ = ‘this is a test’; my @a := m:g:c/\w+{say ‘ok’}/;
03:15 camelia rakudo-moar 770d10: OUTPUT«ok␤»
03:18 AlexDaniel if you use binding then it acts like a lazy list, but is-lazy says that it's not. Do I get it right that it is a bug?
03:19 AlexDaniel m: my @a := m:g:c/\w+{say ‘ok’}/ given ‘this is a test’ # ok that's lazy
03:19 camelia rakudo-moar 770d10: OUTPUT«ok␤»
03:19 skids Maybe... there was some argument as to whether "is-lazy" was a good idea IIRC so it might not have been fully implemented.
03:19 AlexDaniel m: my @a := m:g:c/\w+{say ‘ok’}/ given ‘this is a test’; say @a.is-lazy # and now it's not. WTF?
03:19 camelia rakudo-moar 770d10: OUTPUT«ok␤ok␤ok␤ok␤False␤»
03:20 * skids seems to remember working on that code a bit, maybe should have a look.
03:21 AlexDaniel so it's lazy as long as I don't look at it. Quantum mechanics right in Perl 6…
03:22 sortiz m: my $a = lazy m:g:c/\w+{say ‘ok’}/ given ‘this is a test’; say $a.WHAT;
03:22 camelia rakudo-moar 770d10: OUTPUT«ok␤(Seq)␤»
03:24 AlexDaniel sortiz: a bit longer than binding but works too!
03:26 daotoad joined #perl6
03:29 skids m: my $rx = rx/\w+{say "ok"}/; $rx(Cursor."!cursor_init"("a")); # yeah, the immediate match is in the forest where only dark maes dare tread
03:29 camelia rakudo-moar 770d10: OUTPUT«ok␤»
03:29 skids *mages
03:32 skids Hrm though maybe that could be deferred.
03:33 pjscott joined #perl6
03:49 noganex joined #perl6
03:54 pjscott joined #perl6
04:05 pjscott joined #perl6
04:09 pjscott joined #perl6
04:11 rickbike joined #perl6
04:11 daotoad joined #perl6
04:12 vendethiel joined #perl6
04:14 pjscott joined #perl6
04:16 pjscott joined #perl6
04:17 daotoad joined #perl6
04:17 daotoad left #perl6
04:23 pjscott joined #perl6
04:28 pjscott joined #perl6
04:29 MadcapJake can anyone explain the anon scope modifier? The example given in language/variables works just the same with or without `anon`.
04:32 au m: say (anon sub foo { 1 })() + (anon sub foo { 2 })()
04:32 camelia rakudo-moar 770d10: OUTPUT«3␤»
04:32 au m: say (sub foo { 1 })() + (sub foo { 2 })()
04:32 camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vkuKPP1xvb␤Redeclaration of routine foo␤at /tmp/vkuKPP1xvb:1␤------> 3say (sub foo { 1 })() + (sub foo { 2 }7⏏5)()␤    expecting any of:␤        horizontal whitespace␤        statement end␤ …»
04:32 MadcapJake m: say (sub foo { 1 })() + (anon sub foo { 2 })()
04:32 camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jgE5hNWXLX␤Redeclaration of routine foo␤at /tmp/jgE5hNWXLX:1␤------> 3 (sub foo { 1 })() + (anon sub foo { 2 }7⏏5)()␤    expecting any of:␤        horizontal whitespace␤        statement end…»
04:33 pjscott joined #perl6
04:33 au m: say (anon sub foo { 1 })() + (sub foo { 2 })()
04:33 camelia rakudo-moar 770d10: OUTPUT«3␤»
04:34 TEttinger joined #perl6
04:35 MadcapJake interesting, thanks au!
04:36 skids m: sub foo { }; &foo.name.say; (sub { }).name.say;
04:36 camelia rakudo-moar 770d10: OUTPUT«foo␤␤»
04:36 skids Also the "anon" one is supposed to now its own name inside itself, but that seems to be NYI.
04:37 skids *know (as in, that name is declared inside the "anon"-declared one)
04:37 MadcapJake what i gather, anon allows you to declare an anonymous sub whilst giving it a name (but the name is only accessible from within the sub, i think)
04:37 BenGoldberg joined #perl6
04:38 skids m: anon sub foo { }.name.say; (sub { }).name.say; # what the example above was supposed to be.
04:38 camelia rakudo-moar 770d10: OUTPUT«foo␤␤»
04:38 skids MadcapJake: yes, and from error messages.  But the part about inside itself is NYI.
04:38 MadcapJake so `anon sub foo { ... }` is equivalent to `sub { ... }` albeit the former has an internally available name (for recursion i presume?)
04:39 pjscott joined #perl6
04:39 skids Yes for recursion, and .name for introspection.
04:39 MadcapJake ok cools, thanks skids!
04:40 skids BTW where was this example at?
04:41 pjscott joined #perl6
04:43 MadcapJake skids: http://doc.perl6.org/language/variables#The_anon_Declarator
04:43 MadcapJake m: my $i = 3; (anon sub foo ($x) { state $y = 1; if $x == 0 { return $y } else { $y *= 10; foo($x--) } })($i) #skids: so this should work, technically?
04:43 camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GK1D3o4smD␤Undeclared routine:␤    foo used at line 1␤␤»
04:44 pjscott joined #perl6
04:44 skids Yes, the example from S06 is:
04:44 skids m: my $secret = anon sub tract($n) { say $n; tract($n-1) if $n };
04:44 camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ysnbl1BXLz␤Undeclared routine:␤    tract used at line 1␤␤»
04:45 MadcapJake ok well that is neat, hope that gets in 6.c.1 or 6.d!
04:46 MadcapJake or is that really a compiler thing not a language version number thing?
04:47 skids Depends on whether it breaks any tests, I guess.
04:50 revhippie left #perl6
04:55 pierre-vigier joined #perl6
05:02 linuxuser9000 joined #perl6
05:07 rickbike joined #perl6
05:14 * skids files RT#127304 to give that NYI a reminder in RT.
05:18 MadcapJake skids: 👍
05:19 pjscott joined #perl6
05:25 Psyche^ joined #perl6
05:37 zhi joined #perl6
05:43 eone joined #perl6
05:52 Cabanossi joined #perl6
06:09 xpen joined #perl6
06:16 dalek doc: 3e3a649 | skids++ | doc/ (2 files):
06:16 dalek doc: Minor massaging, mostly to links
06:16 dalek doc: review: https://github.com/perl6/doc/commit/3e3a649e01
06:35 pierre-vigier joined #perl6
06:43 jevin joined #perl6
06:45 sjoshi joined #perl6
06:51 CIAvash joined #perl6
07:02 chacewells How would I do dynamic coersion?
07:03 chacewells I.e. my %types = land => Int, owner => Str;
07:04 chacewells Then hire can I use the type in the hash to coerce some data base on the key?
07:04 chacewells s/hire/how/
07:05 gfldex m: my $s = 42; my Int $i; my $type = "Int"; $i = $s."$type"(); dd $i;
07:05 camelia rakudo-moar 770d10: OUTPUT«Int $i = 42␤»
07:05 gfldex chacewells: ^^^
07:05 gfldex see: http://design.perl6.org/S12.html#Fancy_method_calls
07:06 chacewells Ooh. That makes a lot of sense
07:06 gfldex chacewells: please note: if you want to do that you are most likely doing it wrong.
07:09 adu gfldex: there should be an IDE plugin for that
07:10 chacewells Hmm. I'm all about doing it right, so what's a better way to do dynamic type dispatch?
07:10 gfldex in what context do you think you need that dynamic lookup?
07:11 chacewells What I want to do is pull stuff out of a CSV and determine the type based on the column name
07:13 gfldex chacewells: i need to think about that for a while
07:15 chacewells K. Quick and dirty's good for now. So much to learn with a new language!
07:16 chacewells I mean. I guess there's always given when
07:21 domidumont joined #perl6
07:26 domidumont joined #perl6
07:27 [Tux] csv-ip5xs            50000    18.197    12.564
07:27 [Tux] test                 50000    23.068    22.431
07:27 [Tux] test-t               50000    12.632    11.742
07:27 [Tux] csv-parser           50000    52.600     1.981
07:40 firstdayonthejob joined #perl6
07:41 Zero_Dogg joined #perl6
07:41 Zero_Dogg joined #perl6
07:45 FROGGS joined #perl6
07:48 xpen joined #perl6
07:48 _mg_ joined #perl6
07:49 _nadim joined #perl6
07:55 xpen joined #perl6
07:56 zakharyas joined #perl6
07:56 gfldex m: sub convert(Int(Str) $i, Str(Str) $s, Rat(Str) $r){ dd $i, $s, $r; }; my @a = "123", "abc", "3.1415", "567", "hgf", "2.7182"; for @a -> $c1, $c2, $c3 { convert($c1, $c2, $c3) };
07:56 camelia rakudo-moar 770d10: OUTPUT«123␤"abc"␤3.1415␤567␤"hgf"␤2.7182␤»
07:57 gfldex chacewells: you would have to construct &convert at runtime what would need macros, which are not well impemented yet (and drive you crazy).
07:58 gfldex you could also write a module file at runtime and load that module after you got the first line from the CSV file. What is madness.
08:02 vendethiel joined #perl6
08:04 gfldex chacewells: i was wrong, macros wont really help you
08:06 moritz \o
08:07 xpen joined #perl6
08:14 rurban joined #perl6
08:18 finanalyst joined #perl6
08:21 TimToady joined #perl6
08:27 nine .tell orbus docs/module_management.md for why @*INC is gone
08:27 yoleaux nine: I'll pass your message to orbus.
08:27 lnrdo joined #perl6
08:29 finanalyst Afternoon all, Just wrote an Intro to Sixy Perl to answer perenial why Perl6/Rakudo =  http://pastebin.com/zRpjuWWR
08:29 pdcawley joined #perl6
08:33 xpen joined #perl6
08:35 moritz What is this Sixy Perl you're talking about?
08:35 moritz I mean, with Perl 6 and Rakudo around, we have enough names, IMHO
08:35 moritz starting with yet another seems contra productive
08:37 xpen_ joined #perl6
08:38 finanalyst Moritz, the idea is to be humourous. As some will see an 'e' before they see an 'i'
08:39 moritz finanalyst: the pun was clear to me, though the humor doesn't seem to reach me. Maybe it's because I'm German :-)
08:39 finanalyst also I tried to avoid formal language, trying to be in the spirit of Camelia ???
08:40 finanalyst Not really a good pun.
08:41 finanalyst anyway, if the rest of the text is useful, it's not a hassle to rewrite things to eliminate the pun
08:42 c99896 joined #perl6
08:44 moritz finanalyst: sorry, I think I'm feeling unfairly grumpy right now; you should wait for feedback from others before rewriting anything
08:46 finanalyst moritz: your grumpy is others being generous. I'll take your feedback any time. But I'll wait a day.
08:48 masak fwiw, I agree with moritz, though for different reasons
08:48 masak "Sixy Perl" doesn't use the Perl 6 brand clearly enough
08:48 masak so it's a waste of brand opportunity
08:49 finanalyst Fair comment
08:49 masak s/waste of/wasted/
08:50 rurban joined #perl6
08:52 darutoko joined #perl6
08:54 Hotkeys is there a builtin for accessing urls?
08:54 Hotkeys eg json apis
08:54 moritz no
08:57 sno joined #perl6
08:58 rurban1 joined #perl6
09:01 xpen joined #perl6
09:08 abraxxa joined #perl6
09:11 chacewells @gfldex thanks for hanging in there. I got it working using the first solution you showed me
09:12 chacewells Though I guess dynamic dispatch is a little overkill when I could just use given when
09:14 kjs_ joined #perl6
09:17 TimToady joined #perl6
09:19 rindolf joined #perl6
09:23 dakkar_ joined #perl6
09:23 RabidGravy joined #perl6
09:28 RabidGravy marning
09:31 marmay joined #perl6
09:33 bjz joined #perl6
09:41 rindolf joined #perl6
09:43 nine Ok, singing off now. Will be afk till Saturday evening. Wish everyone a nice week :)
09:43 moritz nine: have the apropriate amount of fun!
09:45 FROGGS nine: have a nice week! :o)
09:48 bjz joined #perl6
09:48 domidumont joined #perl6
09:49 RabidGravy have fun nine, don't do anything I wouldn't
10:01 brrt joined #perl6
10:03 [TuxCM] joined #perl6
10:04 brrt good * #perl6, TuxCM
10:05 |Tux| o/
10:25 espadrine joined #perl6
10:30 RabidGravy erp
10:31 jnthn morning, #perl6
10:37 lnrdo joined #perl6
10:40 pmurias joined #perl6
10:50 RabidGravy jnthn++, I only just realised the Promise has a Supply coercion which makes things so much nicer :)
10:52 jnthn ;)
10:53 jnthn So does Channel
10:53 jnthn Also, whenever blocks automatically coerce
10:53 jnthn So whenever $promise { } and whenever $channel { } will Just Work
10:55 RabidGravy yeah, just turned https://github.com/retupmoca/P6-Net-AMQP/blob/master/examples/printer.pl6 into https://github.com/retupmoca/P6-Net-AMQP/blob/master/examples/printer-react.pl6
10:55 RabidGravy :)
10:56 RabidGravy I knew about the Channel coercion already
10:57 jnthn my $body-supply = $q.message-supply.map( -> $v { $v.body.decode });
10:57 jnthn Note that because we build the pipeline afresh, you'll be decoding twice here
10:58 jnthn Adding .share on the end should help with that
11:00 RabidGravy yeap that works
11:01 RabidGravy nice one
11:05 RabidGravy at some point this week I'm going to make an article with P6 versions of http://www.rabbitmq.com/getstarted.html
11:05 jnthn Cool :)
11:07 RabidGravy I concluded over the weekend that pushing the reactive, asynchronous and possibly distributed stuff as a niche is a great way of countering the "not fast enough" complaints
11:08 jnthn Yes, I can easily imagine "concurrent glue" being where Perl 6 gets used soonest because you're often not CPU bound, just juggling.
11:13 RabidGravy it's all going to be fabulous
11:16 domidumont joined #perl6
11:17 cognominal joined #perl6
11:27 brrt interestingly, concurrent glue is the original niche i imagined for node.js
11:28 brrt i think perl6 might well fit that better
11:28 vendethiel joined #perl6
11:29 brrt if only because it doesn't have the same web / frontend centered culture arround it
11:35 marmay joined #perl6
11:39 pmurias jnthn: are there any ground breaking performance improvements planned or will things be just speed up the hard way by a bazillion small ones?
11:40 xpen joined #perl6
11:44 xpen_ joined #perl6
11:45 kaare_ joined #perl6
11:45 jnthn pmurias: I suspect there'll be various medium-sized ones and a bunch of small ones. But that's oversimplifying things.
11:45 jnthn pmurias: Because typically optimizations interact in interesting ways
11:46 jnthn pmurias: For example, more aggressive lexical -> local lowering is only so valuable in and of itself, but it also cuts down the number of guards spesh needs to add, for example.
11:48 jnthn Another example is better code-gen for accessors. It's again only so much of a direct improvement, but making the inlinable is a huge force-multiplier.
11:48 jnthn *them
11:48 xpen joined #perl6
11:49 jnthn And even the above two interact: an inlined thing free of guard clauses eliminates a deopt safepoint.
11:52 pmurias jnthn: good to know there is a vision in place for getting things fast
11:53 pmurias with a few of the past Perl 6 attempts I took part we run into a performance problem "brick wall" :/
11:55 * jnthn resists running into a Wall pun...
11:56 kjs_ joined #perl6
11:58 RabidGravy brrt, in my last contract that was actually what I using node.js for - as a sort of reactive middleware between a backend system a client browser - getting some event from RabbitMQ, filling in additional bits from the backend webservice and pushing to the interested clients via web sockets
11:59 RabidGravy worked really nicely, but I'd make it Perl 6 today ;-)
12:00 llfourn joined #perl6
12:07 leont joined #perl6
12:14 brrt RabidGravy: cool. i argued for node.js in a similar function, but it was ignored in favor of synchronous (!) python-via-http-in-a-wait-loop
12:14 brrt i.e. each request would just sleep until some value was stored in memcached
12:14 brrt yes, memcached
12:16 RabidGravy well to be fair, python asynchronous stuff can be rather special, there's some real stunt code in the Airtime media-manager and playout engine
12:16 brrt python was simply the wrong tool for this job
12:16 masak when reading the Perl Weekly today, I learned there has been a "brouhaha" about Perl 6.
12:16 masak that's something, I guess.
12:16 RabidGravy brouhaha!
12:16 brrt synchronous-http-python was a very, very wrong tool for this job
12:16 brrt what is brouhaha?
12:16 masak brrt: some kind of uproarious reaction
12:16 DrForr Well, I did see a little spike in pageviews...
12:17 RabidGravy a sort of comedy uproar
12:17 brrt hmmm
12:17 brrt oh well
12:17 RabidGravy geeks will be geeks
12:18 masak I'm sorely tempted to tweet that I will consider any more "debate" about either the name or the mascot to be entirely devoid of substance
12:18 masak and maybe challenge people to discuss more interesting things
12:18 RabidGravy masak++ # precisely
12:18 moritz masak: like their ideas of ideal macros that automagically save the world (in a double sense)?
12:18 moritz :-)
12:18 brrt debate is a huge misnomer for the shouting that goes around about camelia
12:18 masak (I did like sue++'s post, though)
12:19 masak moritz: ah, yes.
12:19 masak moritz: at least those ideas *have* substance
12:19 masak (even if they're wrong in various ways)
12:20 Skarsnik joined #perl6
12:20 masak brrt: camelia is a kind of insect trap for trolls.
12:20 MadcapJake anyone know what's up with rakudo *? Still only see a 2015.11 on site and github.
12:21 masak the trolls come buzzing up to camelia, and then get stuck there
12:23 brrt thats true
12:23 RabidGravy yeah
12:23 moritz MadcapJake: there'll be a R* after the 2016.01 release
12:24 RabidGravy but yeah, virtualsue++ is spot on with that article
12:24 moritz URL?
12:25 lokien_ joined #perl6
12:25 RabidGravy moritz, http://virtualsue.blogspot.co.uk/2016/01/perl-names-logos-and-who-gets-to-decide.html
12:26 kid51 joined #perl6
12:30 moritz RabidGravy: thanks; virtualsue++ indeed
12:36 perlawhirl joined #perl6
12:36 masak ok, I don't want it to sound like blame, more like constructive criticism: not releasing a R* in December was a missed opportunity. (given that R* is what relative outsiders probably come looking for.)
12:36 AlexDaniel joined #perl6
12:37 masak and no, I haven't done anything to further the release of R* myself... so don't mind me :)
12:37 pmurias re camelia it's hard to have a serious debate when it's mostly a question of taste
12:38 masak pmurias: even if taste were completely non-objective, it's still Larry's decision.
12:38 moritz masak: I agree, and I can explain exactly what we did wrong; but I didn't counter-act either, so I guess it's wasted breath
12:38 masak moritz: ooc and for posterity -- what exactly did we do wrong?
12:38 MadcapJake I really do like Camelia, I just feel there is room for another presentation of her.  Not a replacement, not for perl6.org.  Just as the go gopher has many variations (some for fun, some for design).  Search «golang logo» on image search, and you'll see there are some really slick representations of the gopher.  In fact, I feel the many variations of the gopher really *add* to the culture surrounding go.
12:39 brrt any OSX devs arround?
12:39 moritz masak: we declared that with v6.c, we'd have stability, so we crammed all backward-incompatible changes into the last release where we could
12:39 MadcapJake Also would love to see camelia here: http://www.squishable.com/s/custom_squish
12:40 brrt i want to determine, preferably at build time, whether i'm compiling for 64 bit or for 32 bit
12:40 moritz masak: to the point where the compiler release was sufficiently broken that we couldn't easily do an R* release
12:40 brrt preferably using some kind of macro
12:41 moritz masak: so the next time, we should declare an internal stability goal for one release in advance, and publicly one release later
12:41 moritz brrt: I seem to recall that this is rather difficult, and OS X lying about its bit length in order to prevent such introspection
12:41 diakopter .oO( next time.. )
12:42 Skarsnik brrt, build time of what?
12:42 moritz brrt: and parrot uses some linker invocation to find the actual bitness
12:42 moritz diakopter: there will be a next language release, v6.d etc.
12:42 brrt moritz: i'd assume, perhaps wrongly, that compiling for both archs would simply compile the object files twice, once with 32 bit configuration and once with 64 bit configuration
12:42 brrt build time of MoarVM
12:42 brrt Skarsnik
12:42 Skarsnik Oh ok
12:43 jnthn Having deadlines nearly always *reduces* software quality. We've done the Christmas thing now. We don't need to force ourselves to meet any further artificial deadlines again, just deliver gradually increasing value to our userbase at regular intervals, as we've become well practiced at doing.
12:43 masak diakopter: trying to think of something to say to that that wouldn't garner a #thatsthejoke response
12:43 masak jnthn: hear, hear
12:44 brrt thing is, people are compiling universal MoarVMs, despite there not being a 32 bit x86 mac produced in years; MoarVM detects the 64 bit arch and assumes it can run the JIT, which breaks when running on 32 bit
12:44 MadcapJake moritz: is it possible now to do an R* for 2015.12? I kind of feel like (if it's possible) it's something that really should be out there.
12:44 brrt 'can people not stop compiling univesal MoarVMs? sure, but we'd have to provide the alternative'
12:44 jnthn brrt: Does testing sizeof(void *) at runtime not do it?
12:44 brrt hmmm
12:44 brrt i can test
12:45 brrt well, i would be able to test if i had a mac or something like that
12:45 jnthn (Then refuse to JIT if it's not 8)
12:45 jnthn Yeah, I've no Mac either :)
12:45 jnthn Let alone a 32-bit one
12:45 brrt well, apparantly you can run 32 bit apps on 64 bit macs, so that should not be a problem
12:47 brrt jnthn: maybe this is not the correct discussion for this channel... but i kind of feel we need a smarter/better Configure system, any ideas?
12:47 brrt at least the JIT bit should need a smarter configure system
12:47 moritz MadcapJake: no, it'd need a point release of 2015.12
12:47 jnthn brrt: No, I'm *absolutely* the wrong person for Configure systems.
12:48 luiz_lha joined #perl6
12:48 brrt hmmm... well, i'm not really an expert myself
12:49 brrt i just feel like we should separate the issues of compiler system, target platform, and host platform, and the current system fails at that
12:49 brrt also, i don't want to use autotools
12:50 brrt (we don't use autotools, but it would be a 'solution')
12:50 brrt or gyp, or cmake, or .. name it
12:50 brrt preferably i'd have just a makefile and it would do everything
12:51 brrt fwiw, luajit manages that, as does tcc and similar projects (iirc), so i kind of feel like we should be able to manage too
12:51 xpen joined #perl6
12:52 brrt the shortcut i have in mind is to first compile a 'configure' executable, have it read everything from macros, and output the correct invocation flags for whatever compiler is in use
12:52 brrt hmmmm....
12:52 brrt that may actually be feasible
12:53 brrt e.g. foo.o: foo.c\n\t$(CC) `configure --flags` $< $@
12:53 brrt or that could be
12:53 vendethiel joined #perl6
12:54 brrt foo.o: foo.c\n\t ./compile $< $@ where ./compile is a wrapper
12:55 brrt nm, solved it; https://developer.apple.com/library/mac/documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html
12:56 zhi joined #perl6
12:57 scz joined #perl6
13:00 RabidGravy I only just realised that github generates anchors from headings in markdown
13:01 brrt yeah, it's really useful
13:01 llfourn joined #perl6
13:03 jshy joined #perl6
13:07 rindolf joined #perl6
13:33 timotimo o/
13:34 RabidGravy erp
13:34 [dpk] joined #perl6
13:34 brrt hi timotimo
13:35 espadrine_ joined #perl6
13:43 hippie1 joined #perl6
13:44 jdrab joined #perl6
13:47 jshy hi, I am getting killed on async networking.
13:47 timotimo brrt: so, if people build universal moarvm binaries, and 32bit macs aren't being made any more ... how does it end up accidentally running jitted code in 32bit mode anyway?
13:48 timotimo jshy: sounds like you're running into a crash of some kind; can you tell us what exact version of rakudo you're running with "perl6 --version" first?
13:48 jshy I am trying to work with binary protocol. and I copied the stuff from Stomp client example, but although I get the data in the whenever block. it never finishes or whatever,
13:48 jshy the program just hangs.
13:48 jshy I can't move onto the next method.
13:49 jshy This is Rakudo version 2015.12 built on MoarVM version 2015.12
13:49 jshy implementing Perl 6.c.
13:50 timotimo hm, okay, maybe you can paste a bit of the code?
13:50 jshy I tried this also with regular IO::Socket::INET and have the same problem. it's like the program doesn't know the data stream is finished and to move on.
13:51 brrt timotimo: no idea, really
13:51 brrt maybe you can choose which version you want to run
13:51 jshy so here is the connect.
13:51 jshy method connect () {
13:51 jshy start {
13:51 jshy my $conn = await IO::Socket::Async.connect($!host, $!port);
13:51 jshy $!incoming = self!process-messages($conn.Supply(:bin));
13:51 jshy await $!incoming;
13:51 jshy $!connection = $conn;
13:51 jshy True
13:51 jshy }
13:51 timotimo oh, sorry, i didn't mean paste into the irc directly
13:51 jshy }
13:51 jshy and the other part
13:51 jshy method !process-messages($incoming) {
13:51 jshy supply {
13:51 timotimo please use a no-paste service on the web somewhere
13:51 jshy my @chars = '';
13:51 jshy whenever $incoming -> $data {
13:51 jshy say $data.unpack('H');
13:51 jshy }
13:51 jshy }
13:51 jshy }
13:52 timotimo IRC is very ill-suited for pasting stuff directly into it
13:52 AlexDaniel oh geez
13:53 gfldex jshy: please have a look at https://gist.github.com/
13:53 jnthn jshy: that await $!incoming is never going to complete
13:53 timotimo jnthn: the supply isn't going to shut itself down when the connection is closed by the other side?
13:53 jnthn At least, not unless the server closes the connection.
13:53 jnthn timotimo: Yeah, that can happen.
13:54 jnthn So I guess the question is: does that happen? :)
13:54 jshy that link doesnt take me to code.
13:55 brrt jshy: that's where you can put code for others to see
13:56 gfldex m: sub foo(::T $t --> T){ dd T.^name; dd $t.WHAT; return T.new }; my Int $i = 42; foo($i);
13:56 camelia rakudo-moar 770d10: OUTPUT«"Int"␤Int␤Type check failed for return value; expected T but got Int␤  in sub foo at /tmp/jSQsazeLbp line 1␤  in block <unit> at /tmp/jSQsazeLbp line 1␤␤»
13:56 gfldex m: sub foo(::T $t --> T){ T.new }; my Int $i = 42; foo($i);
13:56 camelia rakudo-moar 770d10: OUTPUT«Type check failed for return value; expected T but got Int␤  in sub foo at /tmp/HqdmxVFmny line 1␤  in block <unit> at /tmp/HqdmxVFmny line 1␤␤»
13:56 jshy ok, misunderstood. Like I said I tried copying the stuff from stomp client, so I had the .share after at the end if $!incoming etc.. and nothing seemed to work.
13:57 jshy ok, pastebin.  http://pastebin.com/8m9QL3Nj
13:58 brrt waitaminute, i can't compile rakudo/nom; could not find symbol &bool
13:58 brrt this in a clean build
13:58 timotimo brrt: may need to nuke your install folder for this
13:59 lucasb joined #perl6
13:59 brrt that is... uncool
14:00 timotimo i've seen that bug half a month ago
14:00 llfourn joined #perl6
14:01 timotimo so your complaining comes a bit late :)
14:04 * stmuk_ annoys other-half with clicky Model M
14:04 brrt :-P
14:04 rindolf joined #perl6
14:04 brrt still uncool
14:05 timotimo did nuking help, though?
14:11 pi1 joined #perl6
14:12 xpen joined #perl6
14:13 zakharyas joined #perl6
14:14 RabidGravy jshy, I think more useful would be *how* it doesn't work
14:14 jshy yep.
14:14 jshy post new code in a sec. (pastebin).
14:15 finanalyst joined #perl6
14:16 jshy http://pastebin.com/tPnpP8DJ  I have a comment in there, that says ' I never get here '.
14:20 josgraha joined #perl6
14:22 prammer joined #perl6
14:22 pjscott joined #perl6
14:28 RabidGravy jshy, it looks like it is never receiving a 0xFF from the other end. You probably want to instrument the !process-messages to see what it is getting
14:30 RabidGravy I can't test myself right now as my RabbitMQ server appears to refuse to run with the stomp plugin for some reason
14:30 jshy if I say instead of emit I get [fffd ...]  its 12 hex values.
14:30 mspo I wonder if this would be useful as a module: https://github.com/concurrencykit/ck
14:31 jshy actually this fffd18fffd20fffd23fffd27
14:32 JimmyZ jshy: maybe you need await $conn before await $connected; ?
14:33 jshy JimmyZ: isnt that the first line in after start {
14:34 virtualsue joined #perl6
14:34 RabidGravy yeah, it actually is awaiting right
14:34 jdrab joined #perl6
14:34 JimmyZ oh, miss that
14:35 RabidGravy mspo, if you think it could play nicely with the existing stuff (and compose in the same way,)
14:36 jshy so it really looks like the problem is in the emit @chars ... $!income.grep(0xff).Promise stuff and the promise never leaving the Planned status.
14:37 RabidGravy jshy, what do you get if you alter the emit there to "say $data.decode;"  it may crao out
14:37 RabidGravy jshy, yes clearly
14:37 jshy ha, I will try, but I think I get the   Malformed UTF-8 message
14:37 RabidGravy but as it appears that it something going on with the protocol there it may be something we can't help with
14:38 RabidGravy ie. the code may well be doing what it is supposed to, it's just whatever you are connected to isn't
14:39 RabidGravy if you get malformed utf-8 try decoding to ascii or iso-8859-1 or something
14:39 RabidGravy of course if it is actually binary it wouldn't make sense at all
14:40 jshy so with the data.decode, I get nothing back. I put data.decode before data.unpack and it never gets to data.unpack
14:41 mspo RabidGravy: yeah probably more interesting inside of moar
14:42 jshy say $data.decode; say $data.unpack('H*');  never gets to unpack.
14:43 jshy and say $data.decode doesn't 'say' anything;
14:43 ugexe a whenever block that isnt inside a react?
14:43 timotimo you can $data.decode('utf8-c8'), which is able to decode even invalid utf8
14:43 RabidGravy yeah, it works inside a supply { } block too
14:43 timotimo (it looks quite weird, though, if it encounters a lot of invalid utf8)
14:44 ojvcakgo joined #perl6
14:44 RabidGravy This is from jnthn's STOMP articles right?
14:45 RabidGravy I'm pretty sure that works, which is why I am suspecting whatever it is that is being connected to
14:45 MadcapJake joined #perl6
14:45 scz joined #perl6
14:45 jshy yes, but instead of char data I am using with binary data?
14:45 RabidGravy but as I say I don't have a stomp server right now to test
14:45 mspo do you have use experimental :pack; ?
14:46 RabidGravy hah, yeah
14:46 jshy yes t experimental
14:46 jshy the result of say $data.decode('utf8-c8') is Segmentation fault (core dumped)
14:46 RabidGravy yes
14:47 RabidGravy known fault
14:47 jshy what?
14:47 timotimo oh!
14:48 timotimo right, when there's invalid data at the very start, it breaks
14:48 timotimo sorry for suggesting it, then :)
14:48 Skarsnik hm, how experimental is cached?
14:48 jdrab joined #perl6
14:48 raiph joined #perl6
14:48 jshy so are you saying there is no way this is going to work right now?
14:49 jnthn Just don't try to decode stuff that isn't utf-8 as if it was utf-8. latin-1 will do fine, so every byte is a valid value :P
14:49 jnthn *since
14:50 mohae_ joined #perl6
14:51 jshy ok so I wasn't trying to decode as utf-8 I was following debugging instructions.
14:52 jshy as latin-1 I get ÿýÿý ÿý#ÿý'  which is the correct binary interp.
14:52 jshy but again, I get to say 'done'; but the promise never 'completes'
14:53 timotimo oh, i didn't know latin-1 is that amazing ... :P
14:54 moritz jshy: I don't think you emit for every character, do you?
14:54 n0tjack joined #perl6
14:55 jshy no its [fffd...]
14:55 moritz then .grep(0xff) can't ever work
14:55 jshy I must be doing something wrong in grep.
14:55 RabidGravy right, the $connected Promise is only Kept when 0xFF is seen on the supply
14:55 lucasb timotimo: making a weekly post are in your plans this week?
14:55 RabidGravy jshy, yeah
14:55 moritz jshy: that's only true if an even equals 255
14:56 jshy yes, I have just come to that conclusion.\
14:56 RabidGravy so if they are bytes then its probably emit each byte
14:57 jshy is that like a while with an emit inside?
14:58 RabidGravy yeah or a for most probably
14:58 jshy I notice the buf does not flush. is there a way to get the buf to shift?
14:58 RabidGravy it's tricky when we can't understand your data
14:58 jshy so I have to keep track of my position in the buf?
14:59 RabidGravy well you if you are looking for binary values then you could just do, "emit $data[$_] for ^$data.elems"
14:59 jshy so really what I need it to sub buf range ...
14:59 RabidGravy or something
14:59 jnthn Note that the buf you're given is never mutated again aside from anything you choose to do
14:59 jnthn You'll get another buffer when the next packet of data arrives
14:59 jshy guess what, $data.elems  says 1 even though there are 12 bytes.
15:00 Begi joined #perl6
15:01 jshy ok thanks for the help. I will bang on it from here.
15:01 moritz jshy: what typs is $data? if it's a Str, that's to be expected
15:01 timotimo could be your $data is a list of a single buf, or something like that
15:01 moritz (.chars is the number of characters)
15:01 timotimo oh, or a string, yeah
15:01 MadcapJake joined #perl6
15:01 llfourn joined #perl6
15:02 jshy thanks, I am really trying to learn --- but it has been liking chewing glass and drinking gas.
15:02 lokien_ joined #perl6
15:04 gfldex lol i propaganda ... err .. blogged a little! https://gfldex.wordpress.com/2016/01/18/a-story-of-export-and-indirection/
15:04 moritz jshy: one piece of advice is to iterate and test in smaller increments
15:05 moritz jshy: create the supply, tap it with { say .perl }; only start working with the supply once you're confident it gets the right values
15:06 timotimo lucasb: i'm not sure why, but somehow i'm having a hard time keeping up with my perl6 stuff at the moment
15:06 lucasb timotimo: ah, ok. I was just curious :) thanks, anyway
15:07 jshy moritz: where? in the whenever or the $!incoming?
15:07 timotimo lucasb: my readers deserve an update, i know :S
15:08 silvester6 joined #perl6
15:10 RabidGravy I suddenly have a need for a transaction manager, someone write one quicky, or port CICS or something
15:10 RabidGravy ;-)
15:10 moritz jshy: both, actually :-)
15:12 dalek tablets: 36d67c2 | lichtkind++ | docs/tablet-3-variables.txt:
15:12 dalek tablets: update array methods
15:12 dalek tablets: review: https://github.com/perl6/tablets/commit/36d67c228b
15:12 dalek tablets: 932cc37 | lichtkind++ | docs/ (2 files):
15:12 dalek tablets: update array to hash methods
15:12 dalek tablets: review: https://github.com/perl6/tablets/commit/932cc37543
15:19 RabidGravy the next module I make is only going to have one method I have decided, this documentation is getting tiresome
15:20 _Vi joined #perl6
15:21 Skarsnik x)
15:21 Skarsnik stop doing new modules!
15:22 RabidGravy NEVER!
15:24 Juerd RabidGravy: dwim()
15:25 stmuk_ Please remove leading 'v' from perl version in JSON::Fast's meta info.
15:25 stmuk_ is this a 6.d change?
15:25 RabidGravy :)
15:28 orbus another concurrency question - say I start some async work with start
15:28 yoleaux 08:27Z <nine> orbus: docs/module_management.md for why @*INC is gone
15:29 orbus .tell nine thanks - taking a look
15:29 yoleaux orbus: I'll pass your message to nine.
15:29 orbus so say I start async work - get a promise back
15:29 orbus is there any way that background work can be explicitly killed?
15:29 orbus I ask because it complicates something I'm working on if it can :p
15:30 huggable joined #perl6
15:30 orbus like, I dunno - something like 'my $p = start { sleep 20 }; $p.kill'
15:30 orbus something like that
15:30 orbus I don't see anything
15:31 stmuk_ is there a ChangeLog of 6.d v 6.c?
15:31 khw joined #perl6
15:31 orbus I think there's more like a vague wishlist at this point
15:31 Skarsnik why?
15:31 jnthn orbus: No, and don't sleep
15:31 orbus sleep is bad?
15:32 kjs_ joined #perl6
15:32 jnthn orbus: Best pattern at the moment is to use a Promise to signal cancellation. We may in a future version sugar this a bit
15:32 mspo you mean $p.break?
15:32 jnthn orbus: Or even .keep, it doesn't matter
15:33 orbus right well but that's a signal for a (hopefully) controlled shutdown
15:33 jnthn my $c = Promise.new; my $p = start { await Promise.anyof(Promise.in(20), $c); }; $c.break
15:33 orbus basically I've got some stuff I'm worried about being left in an inconsistent state if somebody kills the thread
15:33 orbus sounds like I don't need to worry
15:33 jnthn You can also cheaply poll $c as a boolean
15:33 orbus oh, I"m not actually trying to kill something
15:33 jnthn (iirc, doesn't acquire any locks just to poll "was it kept yet"
15:33 orbus I just want to see if it's possible to see if I need to design around it
15:33 jnthn Right, you just want to communicate something
15:34 jnthn And a Promise is a good way to communicate a single thing, which can also be cancellation.
15:34 orbus actually not even that at this point - but I might later
15:34 jnthn OK
15:34 orbus much appreciated
15:34 jnthn Anyway, there's not (won't be) any $promise.kill
15:34 orbus good to know
15:34 orbus I think it introduces a lot of potential problems
15:35 jnthn Yeah...most interesting code can only be sanely stopped at safe points.
15:36 masak there *shouldn't* be a $promise.kill
15:36 masak it goes against the whole design of promises
15:37 orbus I agree - but just making sure I hadn't missed something
15:37 Skarsnik when is fork/wait? x)
15:39 orbus go wrap them with NativeCall? :p
15:39 Skarsnik I tried for something, but it did not work well
15:39 orbus jnthn: so you said don't use sleep - is sleep inherently bad somehow, or does that just mean my thread can't be listening for kill signals?
15:40 ChoHag joined #perl6
15:40 jnthn orbus: It's that sleep actually forces the thread pool thread to sleep.
15:40 jnthn orbus: Whereas an await Promise.in(20) will in 6.d actually free that pool thread up to so something else.
15:40 jnthn *to do
15:41 orbus ohhh
15:41 bpmedley joined #perl6
15:41 gtodd joined #perl6
15:41 orbus I guess I kind of assumed sleep would be implemented via Promise.in
15:41 jnthn No, it's done with scheduling.
15:42 masak could sleep() be made to work like `await Promise.in(20)`? seems like a nice default. :)
15:43 orbus that's kind of what I was thinking
15:43 moritz masak: and maybe a :blocking named argument for the old behavior
15:43 sftf joined #perl6
15:47 musiKk joined #perl6
15:48 gtodd sigh ... what is an operator in perl6 ... is it made from a class ... i.e. is it an "object" ? ... (if so this would help me understand that it is something you can hack on and make custom hyper infix prefix versions of)
15:48 Skarsnik I am not sure to understand your question x)
15:49 gtodd e.g. I relaized I can't explain how this works http://stackoverflow.com/questions/34857856/perl6-how-to-shorten-an-array/
15:49 jnthn gtodd: It's just a sub, normally a multi sub
15:49 gtodd because I don't know what a perl6 operator is :-D
15:49 jnthn Those are objects, of course.
15:49 gtodd jnthn: phew :-D
15:49 gtodd ok I was heading down a rabbit hole
15:49 gtodd thanks
15:51 vendethiel joined #perl6
15:51 ifim joined #perl6
15:53 espadrine_ joined #perl6
15:54 domm_ joined #perl6
15:57 jme` joined #perl6
15:58 sftf Hi, is it possible to parse Perl 6 code from Perl 6 easily using the existing grammar like STD.pm or something?
16:00 leont I suppose you could use the built-in grammar to build the AST and then work from that, but I have no idea how that'd work
16:00 ugexe easily? probably not
16:00 domm_ joined #perl6
16:02 ugexe Perl6::Grammar.parse($source, :actions(Perl6::Actions.new())) is probably a good place to start
16:02 orbus oh, I have a question (and I should probably just test this but I'm going to ask anyway)
16:02 orbus if I create a Promise
16:03 llfourn joined #perl6
16:03 orbus and then I get a Vow on that Promise
16:03 orbus what happens to the Promise if the Vow goes out of scope and gets gc'ed or whatever
16:03 orbus if the vow is destroyed
16:03 orbus is the Promise broken?
16:03 mspo that would be a bug?
16:04 jnthn orbus: No, it'll just never be kept
16:04 orbus ah okay
16:04 orbus I was wondering
16:04 jnthn orbus: And if nobody is interested in it, it too will be gc'd.
16:04 orbus okay
16:04 jnthn There's lots of perfectly ordinary situations where this can occur
16:05 orbus sure
16:05 orbus that's why I was wondering how it would behave
16:05 jnthn Like, you are making a request to two servers, and taking the result from whichever wins and cancelling the second somehow.
16:06 scz joined #perl6
16:06 timotimo ugexe: parsing perl6 won't work without a world object
16:07 timotimo and i'm not sure Grammar.parse will create a world object for you. or actions.new for that matter
16:07 jnthn timotimo: Think Grammar's TOP or comp_unit method does that.
16:07 timotimo oh. OK!
16:11 ugexe m: use nqp; use Perl6::Grammar:from<NQP>; use Perl6::Actions:from<NQP>; my $source = q|say "hello world";|; my $*LINEPOSCACHE; my $p6c = Perl6::Grammar.parse($source, :actions(Perl6::Actions.new())); say $p6c.dump
16:11 camelia rakudo-moar 770d10: OUTPUT«- statementlist: say "hello world";␤  - statement: 1 matches␤    - EXPR: say "hello world"␤      - longname: say␤        - name: say␤          - identifier: say␤      - args:  "hello world"␤        - arglist: "hello world"␤          - EXPR:…»
16:11 timotimo not bad.
16:12 timotimo but keep in mind that anything like "BEGIN" or "use" will cause code to run at parse time already
16:12 timotimo also, applying traits
16:12 timotimo so you're likely to run into security issues if there's any way that untrusted input will end up as your source code
16:14 ugexe wouldnt such security issues for untrusted input stand regardless of how its parsed?
16:14 ugexe or do you mean some sort of code that modifies itself when parsed so it does something else
16:15 hoelzro o/ #perl6
16:22 timotimo well, you might say "oh, i'm just *parsing* the code, not actually running it!"
16:22 sftf Ok i got it. Is it possible to parse it safely? Stripe it somehow to just "Only literals and expressions" for example?
16:22 timotimo we don't have anything for that yet, sadly
16:23 sftf Nice
16:23 psy_ joined #perl6
16:24 jnthn I suspect eventually we'll expose some API for isolated execution environments that can be configured with restrictions.
16:24 timotimo right
16:24 timotimo that'd be very nice to have
16:26 _mg_ joined #perl6
16:27 ugexe .tell jdv79 is it possible to bring the elastic search back up for your metacpan fork? its returning `Could not connect to '127.0.0.1:9200': Connection refused`
16:27 yoleaux ugexe: I'll pass your message to jdv79.
16:29 sftf timotimo: whether it is possible to control "BEGIN" or "use" at compile-time?
16:29 timotimo hum?
16:37 hoelzro sftf: if you're asking whether you can selectively disable BEGIN blocks or use statements when parsing, sadly, I don't think you can
16:38 sftf thanks
16:38 * hoelzro chalks that up to difficulty translating "ли"
16:38 timotimo the what now?
16:38 sftf ok :)
16:39 espadrine_ joined #perl6
16:39 jnthn Not executing use statements can also affect your ability to parse what follows them. :)
16:39 timotimo that's the problem, yeah
16:40 timotimo ideally, we'd allow BEGIN-time things like "use" and trait mods, but just don't allow it to contaminate the host program or the system around the program (by deleting files or something)
16:41 hoelzro this may be a stupid question, but could one use two separate settings for BEGIN time and runtime?
16:41 hoelzro I imagine that would run into all sorts of nasty problems
16:42 bowtie joined #perl6
16:44 zakharyas joined #perl6
16:57 dfcarpenterak joined #perl6
16:57 sftf So, if I want to write Perl 6 extensible application (with trusted or untrusted code in plugins, callbacks, etc written also in Perl 6), what options are available? What about the safety of these options?
17:00 Skarsnik hm tricky
17:02 abraxxa Skarsnik: hi! did you find time to look at my repo and the test module work?
17:02 orbus I have a question - module naming - I take it there's no mechanism to enforce people into using second (or lower) level names for their modules right?
17:02 Skarsnik abraxxa, for DBIish?
17:02 orbus like if I want to call my module BestModuleEver
17:02 abraxxa Skarsnik: yes
17:03 orbus nothing's stopping me, right?
17:03 ugexe no, because ideally you also declare the auth as part of the identity
17:03 orbus other than good taste
17:03 Skarsnik Do a pull request. it look fine for me, but probably other has some concern x)
17:03 abraxxa Skarsnik: who else is interested/involved?
17:03 orbus I'm interested in the Oracle stuff
17:03 kjs_ joined #perl6
17:03 orbus but I haven't had time to really look through it
17:04 orbus I was thinking of writing my own oracle binding, but you're much farther along :)
17:04 abraxxa the DBI(ish) and DBD(ish) API design is more important
17:04 llfourn joined #perl6
17:04 Skarsnik maybe moritz and other people x)
17:04 Skarsnik but do a pull request, people interested will see it at least
17:05 abraxxa if someone really has concerns about breaking the DBIish/DBDish api at this time I'd start a new module which api isn't 100% based on Perl 5 DBI
17:05 hoelzro sftf: are you planning on embedding Perl 6 in C/C++, or just having your Perl 6 code be extendable by user-provided, untrusted Perl 6 code?
17:05 abraxxa but I don't see a problem breaking it now as there isn't even versioning
17:05 abraxxa Skarsnik: ok
17:05 perl6newbee joined #perl6
17:06 sftf hoelzro: "Perl 6 code be extendable by user-provided, untrusted Perl 6 code"
17:06 AlexDaniel joined #perl6
17:06 orbus my impression was DBIish was a stopgap measure until the "real" perl6 database system could be implemented - but such stopgaps have a way of becoming the final solution
17:06 sftf but mabe (semi)trusted
17:06 Skarsnik abraxxa, I think if you don't touch at all the old fetch_stuff you will have no issue
17:06 hoelzro ah ha
17:07 abraxxa Skarsnik: I haven't looked at all those methods and decided if I like them or not
17:07 hoelzro sftf: I don't know if you can do that (yet), but it would be nice/difficult to allow EVAL to load code under a restricted setting
17:07 abraxxa the one part that doesn't make sense to have an API which just returns Str's as everybody can do .Str if he wants
17:07 Skarsnik abraxxa, I did not look at them either, that why I rewrite the row stuff complety 'from' scrach
17:08 abraxxa Skarsnik: I think the new method names could be better too
17:08 Skarsnik The doc advice to use row/allrows that does not returns Str :)
17:08 Skarsnik Well nobody say a thing x)
17:08 abraxxa and I'd love to get ribasushis and msts opinion about a DBI API in regards to what downstream as in DBIx::Class would love to have
17:09 abraxxa mst: ^^
17:09 abraxxa ribasushi: ^^
17:10 Skarsnik I wanted to use rows, not row, but it used (by nobody probably) to get the number of result
17:10 abraxxa and another big point regarding modules in general if we want to establish a way of having versionable APIs right in Perl 6 or its toolchain so not every module author has to think about that him/herself
17:10 abraxxa as in 'if you break the API you HAVE TO increase the major version number'
17:11 abraxxa get-row?\
17:11 * abraxxa loves the dash in method names
17:11 ugexe :api<...>?
17:11 abraxxa i remember that was one of the WTF moments about 15 years ago when I first came in touch with Perl 5
17:11 abraxxa why the hell can't I use the dash char in sub names?
17:11 sftf hoelzro:  so I try to understand the ability to filter the source code somehow, but as I see it's the wrong way
17:12 abraxxa I should probably start a discussion about the module api versioning in the new git repo
17:12 abraxxa or is there a mailing list that's preferred?
17:14 skids joined #perl6
17:16 abraxxa Skarsnik: PR sent
17:18 abraxxa ugexe: is your suggested syntax something that Perl 6 provides already?
17:19 abraxxa seen lizmat?
17:22 ugexe use Some::Module:auth<*>:ver<*>:api<*>; exists, but im not sure about actually handling how modules will implement api versioning
17:23 abraxxa is there a synopsis for it?
17:23 abraxxa S11
17:24 abraxxa not sure if :ver and :api are overengineered
17:24 abraxxa having the api version level in the module version would ensure sane versioning
17:26 mst :ver is definitely overengineered, but can be used for semver just fine
17:26 mst :ver(v1.3.*) for example
17:27 * mst wonders if we want plain v1.2.3 to mean >= 1.2, < 2 or not
17:28 abraxxa there isn't much talk about :api in S11
17:28 abraxxa mst: S11 says that v1.2.3 means only this exact version
17:28 mst I don't think, tbh, anybody has any idea what :api is going to end up being used for in the wild
17:28 ugexe i thought the same thing about :api<>. maybe if a distribution could provide multiple api versions was the intention
17:29 abraxxa you can do :ver<1.2.*> or use Dog:ver(v1.2..^v2);
17:29 mst oh, of course, if a dist produces e.g. a v1 compat layer
17:29 abraxxa i'd define the current DBIish as :api<0> and go on if it was possible
17:29 mst abraxxa: I fully intend to carve out a minimal subset of S11/S22 that we focus on first, btw
17:30 mst :ver is smartmatch so can very rapidly go turing complete
17:30 abraxxa I was just wondering if the module has to implement all api versions or if that is handled by having additional, older versions of the module installed in parallel (preferred)
17:30 mst er, no, it doesn't have to
17:31 abraxxa that would be great from a module authors perspective because it makes breaking the api and not having to drag around old code easy
17:32 abraxxa where can I find the docs how modules are found and loaded? do they map to files like in Perl 5? I guess yes but with differences
17:33 abraxxa or is that depending on the compiler used?
17:34 masak m: say v1.2.3 ~~ v1.2
17:34 camelia rakudo-moar 770d10: OUTPUT«True␤»
17:34 masak mst: ^
17:34 ugexe src/core/CompUnit/*
17:34 abraxxa ugexe: the beginning of S11 explains it quite good
17:35 * abraxxa sees mst implementing a CompUnitRepo for remote class loading ;)
17:36 mst masak: ooooh
17:36 mst abraxxa: I've totally been thinking about that
17:37 ugexe abraxxa: CompUnitRepo does not even exists anymore
17:37 ugexe take s11 and s22 with a grain of salt
17:37 abraxxa ugexe: S11 mentions it, haven't looked in Rakudo
17:38 abraxxa i thought those ARE the v6.c specs?
17:38 abraxxa then the roast tests are the spec?
17:41 scz joined #perl6
17:41 molaf joined #perl6
17:48 abraxxa 'installing' could be just: launch the app, the Perl 6 interpreter loads the modules from the (Internet/CPAN and/or company) repo and caches them locally for the next launch
17:48 abraxxa http caching headers are used for update checks
17:49 abraxxa I think that might blew some devs head away ;)
17:49 ugexe i wrote a compunitrepo::github that did that a year or so ago
17:49 abraxxa would require https and signed modules/dists for security though
17:49 abraxxa ugexe: awesome!
17:50 Skarsnik abraxxa, hm you get conflcit. did you forget to rebase?
17:51 abraxxa Skarsnik: I haven't rebased the last three or four commits but they only  touched Pg as far as I saw
17:52 Skarsnik If you changed num to rat that probably why it conflict
17:52 abraxxa yes
17:52 abraxxa should I rebase and send the PR again?
17:52 abraxxa I wouldn't want to merge the PR but rebase it so no merge commit is generated
17:53 Skarsnik rebase with ff?
17:53 Skarsnik I am not good with git x)
17:54 abraxxa Skarsnik: I could do It but I'm not sure if I have rights on the DBIish repo
17:54 Skarsnik on your fork
17:54 abraxxa also I'd like to leave it open for a few days so others can voice their opinions
17:54 Skarsnik You can still work on the PR
17:55 abraxxa really? how?
17:55 Skarsnik well you repo
17:55 Skarsnik and the PR will have the new commit added
17:55 abraxxa i see
17:55 abraxxa then I might do that
17:55 abraxxa not now because I have to catch my train
17:55 Skarsnik x)
17:56 abraxxa bye!
17:59 xpen joined #perl6
18:00 masak mst: yes, using smartmatching for versions feels Very Right
18:01 masak one of the things about :ver that feels, not overdesigned, but well-designed
18:01 mst masak: smartmatching against ranges is definitely very right
18:01 mst masak: the fact you can manage to pass a closure is the part I'm less fond of :)
18:03 masak hm, I'm not sure I know which part that is. do you have an example?
18:04 ChoHag joined #perl6
18:04 ugexe m: use Test:ver({$_.parts[0] > 5});
18:04 camelia rakudo-moar 770d10: ( no output )
18:04 TimToady it's okay to have a restricted subset of smartmatching for things we have to store externally
18:05 cschwenz joined #perl6
18:05 llfourn joined #perl6
18:05 cschwenz o/ #perl6
18:12 cschwenz .botsnack
18:12 yoleaux :D
18:22 cschwenz left #perl6
18:23 flussence TimToady: does "ranges and scalars" sound like a reasonable subset? can't really think of anything else that'd fit besides those, closures and junctions...
18:24 _mg_ joined #perl6
18:25 musiKk joined #perl6
18:25 TimToady junctions might be possible, but it really needs to be driven from the implementability end, just with the constraint that it should be extensible in the direction of fuller smartmatches someday without breaking
18:26 TimToady it's hard to store closures in a database
18:28 TimToady there are also potential security issues there
18:28 jnthn Closure serialization is decidedly the most gnarly part of our module pre-comp serialization.
18:28 TimToady it's hard enough on a system you trust
18:28 jnthn (As in, I don't wish it upon anyone :))
18:28 jnthn That also
18:29 prammer joined #perl6
18:29 n0vacane joined #perl6
18:29 flussence any()/| makes sense to allow, none() and one()/^ sorta do, all()/& in a version specifier just seems silly
18:30 PerlJam Greetings!
18:30 TimToady allowing injection attacks into your dependency calculations seems...fraught...
18:34 n0tjack joined #perl6
18:39 mst I think starting off with something with no greater flexibility than the CPAN::Meta version spec is a good first cut
18:39 mst I also think we need to version the heck out of formats so it can 'be extensible in the direction of fuller smartmatches' even in spite of the fact we'll probably screw something up there even if we're trying to avoid it
18:40 mst and CPAN::Meta mostly comes down to 'ranges and scalars' plus room to have >1 requirement
18:40 dalek ecosystem: 207f05d | RabidGravy++ | META.list:
18:40 dalek ecosystem: Add Tinky
18:40 dalek ecosystem:
18:40 dalek ecosystem: https://github.com/jonathanstowe/Tinky
18:40 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/207f05dd93
18:40 mst all(v1.3.*, !v1.3.27) would be nice
18:40 mst of some sort
18:41 mst i.e. "we can use any 1.3.* version except the one we know has a bug that screws us up"
18:41 flussence m: say $_ ~~ all(v1.3.*, none(v1.3.27)) for v1.3, v1.3.27.1, v1.3.27
18:41 camelia rakudo-moar 770d10: OUTPUT«False␤False␤False␤»
18:42 flussence hrm
18:42 flussence m: say $_ ~~ all(v1.3.*, !v1.3.27) for v1.3, v1.3.27.1, v1.3.27
18:42 camelia rakudo-moar 770d10: OUTPUT«False␤False␤False␤»
18:42 flussence nesting junctions leads to madness
18:43 ilmari m: say !v1.3.27
18:43 camelia rakudo-moar 770d10: OUTPUT«False␤»
18:44 ilmari would it be perverse to verride &prefix:<!>(Version) to return a negative-matching object?
18:46 flussence m: say $_ ~~ v1.3.* ^ v1.3.27 for v1.3, v1.3.0, v1.3.27, v1.3.27.1 # works, but you can't have variable-length versioning
18:46 camelia rakudo-moar 770d10: OUTPUT«False␤True␤False␤False␤»
18:47 CIAvash I'v encountered a weird issue, I think. here's the code: https://gist.github.com/CIAvash/1af6cd0fb167526ba847
18:47 CIAvash It gives this error: 'Type check failed for return value; expected Array[Str] but got Array[Str].new("", "", "")'
18:48 CIAvash It works when I remove `use B;` or change Str in `has Str @.arr` to something else or change @.arr to $.arr
18:51 ilmari flussence: the v1.3.27.1 case is fixed by doing ^ v1.3.27.*
18:51 ilmari but not the v1.3 case
18:54 marmay_ joined #perl6
18:55 TimToady ilmari: yes, it would be perverse, since junctions are supposed to collapse in boolean context
18:55 TimToady and ! is very definitely a boolean context
18:56 firstdayonthejob joined #perl6
18:57 ely-se joined #perl6
18:58 pjscott joined #perl6
19:00 skids CIAvash: That looks buggy.  Especially the part where "use B" does anything at all.  Probably worth filing an RT for it.
19:01 ely-se Morning, camels.
19:02 CIAvash skids: Yeah. Not sure how to describe the bug! :)
19:07 llfourn joined #perl6
19:07 skids CIAvash: I dunno maybe "spurious return type check error caused by irrelevent inclusion from another compunit"?
19:07 lokien_ joined #perl6
19:09 lp joined #perl6
19:09 hankache joined #perl6
19:09 hankache hello #perl6
19:09 n0tjack joined #perl6
19:10 * lokien_ waves
19:12 ely-se .oO(Google Wave)
19:12 avalenn_ joined #perl6
19:17 gfldex CIAvash: if you add a method to B it works too
19:21 snarkyboojum joined #perl6
19:23 CIAvash https://rt.perl.org/Public/Bug/Display.html?id=127309
19:24 CIAvash gfldex: any method? I tried now it didn't work.
19:28 gfldex CIAvash: https://gist.github.com/0fdba2e12c14baa655e2
19:31 CIAvash gfldex: You used Array instead of `Array of Str`. I think that's why it works.
19:31 gfldex nvm then
19:35 Sgeo joined #perl6
19:36 _Vi joined #perl6
19:41 CIAvash I think this used to work before 6.c. But doesn't work anymore:
19:41 CIAvash m: class A { has Int @.arr }; my %attributes = arr => (1,2,3); A.new: |%attributes;
19:41 camelia rakudo-moar 770d10: OUTPUT«Type check failed in assignment to @!arr; expected Int but got List␤  in block <unit> at /tmp/AU7Uz_txhT line 1␤␤»
19:41 Skarsnik can someone tell me if this branch (git clone https://github.com/Skarsnik/gptrixie.git -b reftype) segfault?
19:41 CIAvash Has something changed?
19:41 Skarsnik I think there is an issue with |
19:41 Skarsnik m: class A { has Int @.arr }; my %attributes = arr => (1,2,3); say |%attributes;
19:41 camelia rakudo-moar 770d10: OUTPUT«Unexpected named parameter 'arr' passed␤  in block <unit> at /tmp/ndiwCYNruZ line 1␤␤»
19:42 Skarsnik m: class A { has Int @.arr }; my %attributes = arr => (1,2,3); say %attributes.flat;
19:42 camelia rakudo-moar 770d10: OUTPUT«(arr => (1 2 3))␤»
19:42 Skarsnik m: class A { has Int @.arr }; my %attributes = arr => (1,2,3); say (|%attributes);
19:42 camelia rakudo-moar 770d10: OUTPUT«(arr => (1 2 3))␤»
19:43 Skarsnik I had the same issue with pgarray
19:44 Skarsnik it try to put a Array of Array of Int in @.arr
19:44 Sgeo_ joined #perl6
19:44 Skarsnik you gain an extra level of array for fun
19:44 CIAvash Yeah. So it's a bug?
19:46 Skarsnik m: class A { has @.arr }; my %attributes = arr => (1,2,3); my $b = A.new: |%attributes; say $b.arr;
19:46 camelia rakudo-moar 770d10: OUTPUT«[(1 2 3)]␤»
19:46 Skarsnik for me it's a bug but
19:47 CIAvash Has it been reported?
19:48 Skarsnik jnthn and nine explain me that it has to do with hash value being always scalar, but I don't get why it always end with an extra level of array
19:48 Skarsnik for me it's a bug, yes
19:48 jnthn It's not a bug. Learn how scalars work.
19:49 jnthn m: my %h = a => [1,2,3]; my @b = %h<a>; say @b.perl
19:49 camelia rakudo-moar 770d10: OUTPUT«[[1, 2, 3],]␤»
19:49 Skarsnik m: class A { has @.arr }; my %attributes = arr => (1,2,3); say %attributes<arr>.WHAT; say %attributes<arr>.VAR.WHAT;
19:49 camelia rakudo-moar 770d10: OUTPUT«(List)␤(Scalar)␤»
19:49 jnthn Also nothing to do with attributes and everything to do with assignment.
19:50 Skarsnik m: my Str @a = "hello".comb; my %attributes; %attributes<arr> = @a; say %attributes<arr>.WHAT; say %attributes<arr>.VAR.WHAT;
19:50 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤»
19:50 Skarsnik It's lieing here then
19:51 Skarsnik since it end in an Array of Array of Str
19:51 CIAvash Passing attributes was just something I needed to do. And I think it would work before 6.c. That's why I was surprised.
19:52 Skarsnik m: my Array[Str] $a = "hello".comb; my %attributes; %attributes<arr> = $a; say %attributes<arr>.WHAT; say %attributes<arr>.VAR.WHAT;
19:52 camelia rakudo-moar 770d10: OUTPUT«Type check failed in assignment to $a; expected Array[Str] but got Seq␤  in block <unit> at /tmp/7l4l7mmcSG line 1␤␤»
19:52 bjz joined #perl6
19:52 Skarsnik m: my Array of Str $a = "hello".comb; my %attributes; %attributes<arr> = $a; say %attributes<arr>.WHAT; say %attributes<arr>.VAR.WHAT;
19:52 camelia rakudo-moar 770d10: OUTPUT«Type check failed in assignment to $a; expected Array[Str] but got Seq␤  in block <unit> at /tmp/TlYk0SBP1n line 1␤␤»
19:52 jnthn Skarsnik: No, it's not lieing at all. It's that the assignment of an item into an array always gives you an array of one item.
19:53 jnthn m: my @a = [1,2,3]; say @a.perl # not an item
19:53 camelia rakudo-moar 770d10: OUTPUT«[1, 2, 3]␤»
19:53 jnthn m: my @a = $[1,2,3]; say @a.perl # an item
19:53 camelia rakudo-moar 770d10: OUTPUT«[[1, 2, 3],]␤»
19:53 Skarsnik m: my Str @a = "hello".comb; my $a = @a; my %attributes; %attributes<arr> = $a; say %attributes<arr>.WHAT; say %attributes<arr>.VAR.WHAT;
19:53 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤»
19:53 jnthn m: my @a = (my %h = a => [1,2,3])<a>; say @a.perl # an item because a Hashes values are Scalars
19:53 camelia rakudo-moar 770d10: OUTPUT«[[1, 2, 3],]␤»
19:54 Skarsnik m: my Str @a = "hello".comb; my $a = @a; my %attributes; %attributes<arr> = $a; say %attributes<arr>.WHAT; say %attributes<arr>.VAR.WHAT; say %attributes<arr>;
19:54 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤[h e l l o]␤»
19:56 Skarsnik jnthn, how is not lying on the WHAT? it should say it's an Array, not give the type of the first element
19:56 lichtkind joined #perl6
19:57 jnthn Skarsnik: But at that point it *is* a Scalar holding an Array. And then you assign that into *another* array.
19:58 jnthn Assignment is not binding. That is, my @a = @b; does *not* make @a refer to the same array as @b, it puts the things from @b into @a.
19:58 mspo @a := @b is a reference, right?
19:59 mspo confusing from golang ;)
19:59 jnthn @a := @b # means @a and @b point to the same data structure, yes
19:59 jnthn m: my @b = 1..3; my @a = @b; @b.push(4); say @a
19:59 camelia rakudo-moar 770d10: OUTPUT«[1 2 3]␤»
20:00 gfldex are @a and @b individual containers?
20:00 jnthn m: my @b = 1..3; my @a := @b; @b.push(4); say @a
20:00 camelia rakudo-moar 770d10: OUTPUT«[1 2 3 4]␤»
20:00 jnthn gfldex: In which case? In the assignment one, yes
20:00 jnthn If you individual you mean distinct bunch of storage slots
20:01 jnthn *If by
20:01 Skarsnik m: my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arra>;
20:01 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤(Any)␤»
20:01 Skarsnik m: my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arr>;
20:01 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤[h e l l o]␤»
20:01 MadcapJake i can't seem to capture a «$» in a regex
20:01 Skarsnik even with '$' ?
20:01 ely-se I think ws should be uppercase (WS) like TOP
20:01 masak m: say '$' ~~ /'$'/
20:01 camelia rakudo-moar 770d10: OUTPUT«「$」␤»
20:02 DrForr \$, '#' or <[ $ ]> should all do the trick.
20:02 masak MadcapJake: ^
20:02 DrForr s/#/\$
20:02 gfldex m: my @a; my @b; say @a.WHERE, @b.WHERE; @a := @b; say @a.WHERE, @b.WHERE;
20:02 camelia rakudo-moar 770d10: OUTPUT«139651022082440139651022082576␤139651022082576139651022082576␤»
20:02 MadcapJake ohh i know what my problem is, im wrapping my test string in double quotes :P
20:02 Skarsnik m: my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arr>; say (|%a);
20:02 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤[h e l l o]␤(arr => [h e l l o])␤»
20:02 gfldex m: my @a; my @b; say @a.WHERE,' ', @b.WHERE; @a := @b; say @a.WHERE,' ',@b.WHERE;
20:02 camelia rakudo-moar 770d10: OUTPUT«140108190378984 140108190379120␤140108190379120 140108190379120␤»
20:03 Skarsnik m: class F {has Str @.arr}; my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arr>; say (|%a); say C.new(|%a);
20:03 camelia rakudo-moar 770d10: OUTPUT«5===SORRY!5=== Error while compiling /tmp/t7NQZDrBoO␤Undeclared name:␤    C used at line 1␤␤»
20:03 Skarsnik m: class F {has Str @.arr}; my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arr>; say (|%a); say F.new(|%a);
20:03 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤[h e l l o]␤(arr => [h e l l o])␤Type check failed in assignment to @!arr; expected Str but got Array[Str]␤  in block <unit> at /tmp/ysVQUjNUSK line 1␤␤»
20:03 RabidGravy boom!
20:03 MadcapJake masak, DrForr: thanks! it was a double quote trap xD
20:03 Skarsnik And now I don't get it
20:04 masak MadcapJake: only use double quotes if you're willing to take the consequences :P
20:04 Skarsnik |%a display me an Array of Str, not an Array of Array
20:04 MadcapJake masak: i want to make my editor warn me with a beep or a popup anytime I enter a double quote!
20:05 RabidGravy well they mean different things in different languages
20:06 Skarsnik and why my gptrixie code segfault at parse lol
20:06 xdoctor joined #perl6
20:07 RabidGravy nothing like a segfault, to get the blood flowing
20:08 Skarsnik I rakudobrew nuke, rebuild moar; move into another directly and it keep segfaulting x)
20:08 llfourn joined #perl6
20:08 Skarsnik maybe I should remove other file x)
20:08 mspo Skarsnik: I tried gptrixie but I was getting bad stuff from gccxml I think
20:08 spider-mario joined #perl6
20:09 mspo Skarsnik: check ~/.perl6/ for cached objects
20:09 Skarsnik Na, it's perl6 that sigsev
20:09 mspo Skarsnik: sorry- two topics :)
20:09 mspo Skarsnik: when I ran it against mdb
20:09 mspo Skarsnik: do check ~/.perl6 and clear it out; I was also getting segv's when I forgot to have "use v6;" in my file
20:10 Skarsnik Oo
20:10 Skarsnik hm did it crash on mdb?
20:10 mspo gccxml was the trouble
20:11 gfldex m: class F {has Str @.arr}; my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arr>; say (|%a); dd %a; say F.new(arr=>%a<arr>.list);
20:11 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤[h e l l o]␤(arr => [h e l l o])␤Hash %a = {:arr(Array[Str].new("h", "e", "l", "l", "o"))}␤F.new(arr => Array[Str].new("h", "e", "l", "l", "o"))␤»
20:11 yqt joined #perl6
20:11 perlawhirl joined #perl6
20:12 perlawhirl hi perlers
20:12 Skarsnik so I can't assign the array to the attrib directly? that look like a bad thing x)
20:12 hankache joined #perl6
20:12 Skarsnik *it?
20:12 Skarsnik mspo, what was your gccxml binary?
20:13 Skarsnik castxml does not work for c99 for me
20:13 perlawhirl just a quick q. I'm fairly certain that about 2 months ago, 'my Int $x = "25";' was a compile time error... now it's not
20:13 perlawhirl am i mistaken, or is this a regression?
20:13 mspo Skarsnik: I just built it from github
20:13 AlexDaniel star: my Int $x = “25”
20:13 camelia star-m 2015.09: OUTPUT«Type check failed in assignment to '$x'; expected 'Int' but got 'Str'␤  in block <unit> at /tmp/aQxJhaCzG_:1␤␤»
20:13 perlawhirl now it dies at runtime
20:14 AlexDaniel perlawhirl: ↑ 2015.09 no compile-time error
20:14 perlawhirl hmm, ok... i'm probably mistaken
20:14 Skarsnik Potential difficulties:
20:14 Skarsnik The returning type of 'ERR_get_error' --> Int is erroneous. You should not return a non NativeCall supported type (like Int inplace of int32), truncating errors can appear with different architectures
20:14 skids m: class F {has Str @.arr}; my Str @a = "hello".comb; my %a; %a<arr> := @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arr>; say (|%a); dd %a; say F.new(|%a);
20:14 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Array[Str])␤[h e l l o]␤(arr => [h e l l o])␤Hash %a = {:arr(Array[Str].new("h", "e", "l", "l", "o"))}␤F.new(arr => Array[Str].new("h", "e", "l", "l", "o"))␤»
20:14 Skarsnik hm it's in Panda?
20:14 RabidGravy It's OpenSSL
20:15 gfldex m: class F {has Str @.arr}; my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say %a<arr>; say (|%a); my $c = |%a; dd $c;
20:15 RabidGravy I saw it earlier and checked
20:15 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤[h e l l o]␤(arr => [h e l l o])␤Slip $c = slip$(:arr(Array[Str].new("h", "e", "l", "l", "o")),)␤»
20:16 perlawhirl i think it should be picked up at compile time. calling an Int-signatured sub with a Str does, so why not for var assignment
20:16 ugexe can nqp/tools/build/MOAR_REVISION get bumped so it can be built on windows again?
20:16 skids m: my %a; my Int @a = 1,2,3; %a<foo> := @a; %a.perl.say
20:16 camelia rakudo-moar 770d10: OUTPUT«{:foo(Array[Int].new(1, 2, 3))}␤»
20:17 skids m: my %a; my Int @a = 1,2,3; %a<foo> = @a; %a.perl.say
20:17 camelia rakudo-moar 770d10: OUTPUT«{:foo(Array[Int].new(1, 2, 3))}␤»
20:17 skids .perl is missing a $
20:17 Skarsnik hm still sigsev
20:17 skids m: my %a; my @a = 1,2,3; %a<foo> = @a; %a.perl.say
20:17 camelia rakudo-moar 770d10: OUTPUT«{:foo($[1, 2, 3])}␤»
20:17 skids m: my %a; my @a = 1,2,3; %a<foo> := @a; %a.perl.say
20:17 camelia rakudo-moar 770d10: OUTPUT«{:foo([1, 2, 3])}␤»
20:17 skids ...but only in the typed case
20:17 skids ergo, confusion
20:18 brrt joined #perl6
20:20 gfldex m: class F {has Array[Str] $.arr}; my Str @a = "hello".comb; my %a; %a<arr> = @a; say %a<arr>.WHAT; say %a<arr>.VAR.WHAT; say F.new(|%a);
20:20 camelia rakudo-moar 770d10: OUTPUT«(Array[Str])␤(Scalar)␤F.new(arr => Array[Str].new("h", "e", "l", "l", "o"))␤»
20:20 * skids wonders if an adverbial type constraint on array literals would work out nicely.
20:20 skids [1,2,3]:of(Int)
20:21 geekosaur I think that's not really possible? the adverb gets passed to the nearest function/operator
20:21 Skarsnik m: class F {has Array[Str] $.arr}; my Str @a = "hello".comb; my %a; %a<arr> = @a; say F.new(|%a);
20:21 camelia rakudo-moar 770d10: OUTPUT«F.new(arr => Array[Str].new("h", "e", "l", "l", "o"))␤»
20:21 geekosaur (it's really a named parameter)
20:21 Skarsnik m: class F {has @.arr}; my Str @a = "hello".comb; my %a; %a<arr> = @a; say F.new(|%a);
20:21 camelia rakudo-moar 770d10: OUTPUT«F.new(arr => [Array[Str].new("h", "e", "l", "l", "o"),])␤»
20:21 skids m: [1,2,3]:of(Int)
20:21 camelia rakudo-moar 770d10: OUTPUT«Unexpected named parameter 'of' passed␤  in block <unit> at /tmp/SJHqsJ7qpr line 1␤␤»
20:21 Skarsnik that really confusing x)
20:22 skids I think it is being passed to [] there
20:22 geekosaur probably
20:22 geekosaur &postcircumfix:<< [ ] >>
20:22 geekosaur would be said nearest function
20:23 geekosaur or someting like that
20:23 skids Right, so is that not the same thing creating the array?
20:23 skids Anyway, not a feature we are in desperate need of right away.
20:23 sno joined #perl6
20:25 gfldex skids: the type constrain is a runtime thing. Array literals are constant. As long as you don't want the type constrain to spill into any container you assign the constant too, it makes little sense to have one.
20:25 Skarsnik mspo, if my installation stop sigseg on gptrixie I will trie with my gccxml x)
20:26 mspo Skarsnik: panda install gptrixie worked for me
20:26 mspo Skarsnik: but I installed my own gccxml
20:26 Skarsnik well gptrixie does not have test x)
20:27 mspo Skarsnik: I was getting segv on some very simple nativecode when  Ididn't have "use v6;" in my source files
20:27 mspo Skarsnik: unrelated to gptrixie
20:27 Skarsnik There is no NC code in gptrixie
20:27 skids m: my %a; my Int @a; @a := [1,2,3] # would make sense here, and might also make .perl prettier than having Array[Int].new(…)
20:27 camelia rakudo-moar 770d10: OUTPUT«Type check failed in binding; expected Positional[Int] but got Array␤  in block <unit> at /tmp/rJ6MMOJhcX line 1␤␤»
20:27 mspo weird
20:29 Skarsnik now I am worried. I rm .perl6 and removed the install in rakudobrew, removed the precomp file in the project, then rebuild everything and it still sigseg at the parse stage
20:29 Skarsnik root@testperl6:~/piko/gptrixie# perl6 --stagestats -I lib bin/gptrixie
20:29 Skarsnik Stage start      :   0.000
20:29 Skarsnik Stage parse      : Erreur de segmentation
20:29 * skids time to go buy more caffeine.
20:32 _mg_ joined #perl6
20:34 brrt Skarsnik: what's your platform
20:34 Skarsnik debian stable 32bits
20:34 brrt also, is this sensitive to MVM_JIT_DISABLE=1
20:35 brrt hmm... that wold give a bus error then
20:35 brrt MVM_SPESH_DISABLE=1?
20:35 n0tjack if I have two Bags, how can I find the Bag difference between them? (For example, if one Bag has 7 "a"s and the other has 4 "a"s, the resulting bag should have 3 "a"s.)
20:36 Skarsnik I never have this issue x)
20:36 TEttinger joined #perl6
20:38 brrt it shouldn't happen imho
20:38 prammer joined #perl6
20:38 masak m: say bag("a" xx 7) (-) bag("a" xx 4)
20:38 camelia rakudo-moar 770d10: OUTPUT«bag(a(3))␤»
20:38 masak n0tjack: ^
20:39 n0tjack what's with the (-) around the - ?
20:39 n0tjack masak++ btw
20:39 masak n0tjack: the `(-)` is the entire operator
20:39 masak it's only meant to remind you of subtraction
20:39 n0tjack wow, operators can be spelled with ()s? that smells risky.
20:39 masak operators can be spelled however you like
20:39 masak can't have spaces in them, though
20:39 n0tjack yeah the - made intuitive sense; my first attempt at doing the difference was straight -
20:39 masak but that's the only limitation I know
20:40 brrt we like living dangerously
20:40 masak n0tjack: straight - will numify first -- not what you want
20:40 brrt i think we also have the reduce metaop
20:40 brrt m: say [*] 1..10;
20:40 camelia rakudo-moar 770d10: OUTPUT«3628800␤»
20:40 n0tjack masak: so I discovered
20:40 masak n0tjack: one key to understanding Perl operators is to realize that - will only ever do subtraction
20:40 masak n0tjack: and that principle holds "all the way"
20:40 masak n0tjack: for example, + and ~ *have* to be two different operators
20:40 n0tjack why?
20:41 masak they can't be the same operator, because they do two different things
20:41 masak string concatenation is not numeric addition
20:41 brrt one is on numbers, other is on strings
20:41 n0tjack I meant why in the philosophical sense
20:41 brrt same thing in perl5, to its great virtue
20:41 n0tjack plenty of languages overload operators with different semantics depending on type
20:41 masak because Perl is an operator-oriented language
20:41 masak that's the philosophical answer
20:41 brrt yeah, and plenty of people give funnily-meant WAT talks about those
20:41 n0tjack let me think on that
20:42 masak n0tjack: in other languages, people load type differences into the nouns. Perl tends to load type differences into the verbs
20:42 geekosaur polymorphic operators + dynamic types = WTF when you accientally pass something of the wrong type
20:42 masak that's also a reason why Str has .chars and Array has .elems, by the way :)
20:42 brrt (into the verbs) depending on the nouns, in perl6
20:42 n0tjack masak: but the operators (verbs) aren't polymorphic in P6
20:42 kid51 joined #perl6
20:42 Skarsnik ok it segfault too on a debian testing 32bits
20:42 masak n0tjack: not by default, no
20:43 masak n0tjack: that's part of my point -- they're monomorphic
20:43 brrt Skarnsik: hang on, i'mma get a VM
20:43 geekosaur worse, it's usuallya  runtime WTF that you might only find out about when you get a weird result
20:43 masak n0tjack: the guarantee in Perl is that when you see a - you *know* that it's numeric subtraction
20:43 n0tjack masak: I mean, overall I like the p6 structure and philosophy; I'm just trying to get a sense of the rationale behind choices like this
20:43 geekosaur no error thrown, just bizarre output
20:43 mspo except when it's in a name-like-this
20:43 n0tjack I've read the Synopses but they don't stick in my head
20:44 masak mspo: yeah but :)
20:44 n0tjack masak: ok, that makes sense
20:44 n0tjack masak: principle of least surprise
20:44 Skarsnik brrt, try checking out the reftype branch https://github.com/Skarsnik/gptrixie/tree/reftype
20:44 mspo or -- or (-) but yeah :)
20:44 masak n0tjack: there are no absolute rights or wrongs here. it's just a design decision that runs fairly deep in Perl.
20:45 masak mspo: well, `(-)` is a different operator
20:45 brrt Skarsnik: are you getting bugs on perl6, or on your tool?
20:45 masak mspo: it's only meant to remind you of `-`
20:45 masak mspo: as is `--`
20:45 lnrdo joined #perl6
20:45 Skarsnik it's not the tool
20:45 brrt oh, ok
20:45 mspo * is highly overloaded :)
20:45 brrt good :-)
20:45 Skarsnik It did not even reach a BEGIN { say "hello" }
20:45 brrt * is a verb
20:45 brrt in perl6, at least
20:46 mspo it's multiplication or curry-magic ;)
20:46 n0tjack * is a a Whatever, it's a Kleene Start, it's Multiplication, it's got some unary interpretation, I imagine...
20:46 n0tjack Kleen Star
20:46 brrt Skarsnik: can you file a MoarVM issue? i'll look at it tomorrow further
20:47 Skarsnik the issue it worked, I added some code, it sigseg. I commented the code, no luck xD
20:47 Skarsnik I can try on 64 bits
20:47 brrt plesae do...
20:48 brrt my sleep-avoidance buffers are running low. see you tomorrow
20:48 Skarsnik good night ^^
20:50 kaare_ joined #perl6
20:51 Skarsnik ok sigseg too on x64 with an 'old' rakudo
20:51 Skarsnik dafuq this code
20:59 musiKk joined #perl6
20:59 dfcarpenterak joined #perl6
21:01 masak n0tjack: those uses are all disambiguated by context and position.
21:02 revhippie joined #perl6
21:02 alpha123 joined #perl6
21:02 masak n0tjack: because the Perl parser is very careful with knowing whether it's seeing a term or an operator, it knows that the * in `4 + *` is a whatever term, but the * in `1 * 2` is an infix operator representing multiplication
21:03 masak n0tjack: recognizing and disambiguating the Kleene star is even easier, since it's a postfix operator in the regex slang.
21:04 masak n0tjack: the "unary" interpretation you're thinking of is probably `*@foo` in parameter lists. I hesitate to call that an operator, though, because the parameter slang is not really an expression language. :)
21:05 masak (for example, things don't nest arbitrarily. the `*@foo` parameter does not become a term that you could then apply more operators to)
21:05 masak 'night, #perl6
21:09 llfourn joined #perl6
21:10 espadrine joined #perl6
21:13 n0tjack night masak
21:15 zacts joined #perl6
21:15 AlexDaniel n0tjack: though “* * *” indeed looks scary :)
21:16 AlexDaniel m: say (* * *)(2, 5)
21:16 camelia rakudo-moar 770d10: OUTPUT«10␤»
21:16 AlexDaniel m: say (* × *)(2, 5)
21:16 camelia rakudo-moar 770d10: OUTPUT«10␤»
21:17 AlexDaniel n0tjack: and we are still waiting for this magic man to come and find the right non-texas version of whatever star :)
21:18 AlexDaniel m: say {$^a × $^b}(2, 5)
21:18 camelia rakudo-moar 770d10: OUTPUT«10␤»
21:19 AlexDaniel m: say -> $a, $b {$a × $b}(2, 5)
21:19 camelia rakudo-moar 770d10: OUTPUT«10␤»
21:19 AlexDaniel m: say sub ($a, $b) {$a × $b}(2, 5)
21:19 camelia rakudo-moar 770d10: OUTPUT«10␤»
21:20 geekosaur .u 2a33
21:20 yoleaux U+2A33 SMASH PRODUCT [Sm] (⨳)
21:20 AlexDaniel m: say anon sub foo($a, $b) {$a × $b}(2, 5)
21:20 camelia rakudo-moar 770d10: OUTPUT«10␤»
21:20 geekosaur granted, that looks like a fuzball in my client >.>
21:22 AlexDaniel .u 𖡄
21:22 yoleaux U+16844 BAMUM LETTER PHASE-A UNKNOWN [Lo] (𖡄)
21:23 RabidGravy are there any more than callsame/callwith/nextsame/nextwith/samewith ?  they keep confusing me when I think I understand them
21:23 geraud joined #perl6
21:23 AlexDaniel RabidGravy: samewith??
21:24 AlexDaniel .u ⊨
21:24 yoleaux U+22A8 TRUE [Sm] (⊨)
21:24 AlexDaniel .u ⊭
21:24 yoleaux U+22AD NOT TRUE [Sm] (⊭)
21:24 RabidGravy calls the same named multi with new different arguments
21:27 AlexDaniel .u 〃
21:27 yoleaux U+3003 DITTO MARK [Po] (〃)
21:30 orbus anybody got any tips for writing tests for stuff that may block indefinitely?
21:31 orbus (I don't want it to block, but it might in a failure case)
21:32 azawawi joined #perl6
21:33 orbus there doesn't seem to be a good way to implement timeouts on like Channel.receive
21:33 azawawi hi
21:34 skids orbus: Promise.anyof(start{ thing }, Promise.in(5)) or somesuch.
21:34 orbus that will work for promises
21:34 orbus what about channels though
21:34 orbus you can await a channel
21:34 orbus but you can't anyof it
21:35 orbus once you start channel.receive, it seems like it'll just block forever
21:35 orbus unless it receives something
21:35 AlexDaniel .u ⋅
21:35 yoleaux U+22C5 DOT OPERATOR [Sm] (⋅)
21:35 daxim .u ∘
21:35 yoleaux U+2218 RING OPERATOR [Sm] (∘)
21:36 * orbus is writing a subclass of Channel and trying to write tests for it
21:36 orbus until I get it right, it tends to block a lot
21:37 orbus I'd rather not have my test suite hang indefinitely if I do something wrong
21:37 skids orbus: just let it block inside the start { }.  If it does, the .in will finish frst.
21:37 orbus yeaaaaaaah, that's true
21:38 orbus and for this case that may be sufficient
21:38 orbus in a long running program you probably wouldn't want to do that
21:38 AlexDaniel m: gather { take ‘💊’ }
21:38 camelia rakudo-moar 770d10: ( no output )
21:38 orbus you could wind up with a ton of start blocks hanging around that will never complete
21:39 jnthn orbus: You can .Supply a Channel, if you want to work with it in a reactive rather than blocking manner
21:39 skids orbus: well, we need cancellation to be fully impleeted, really.
21:40 jnthn sub receive-async(Channel $c) { $c.Supply.head(1).Promise }
21:40 orbus oh
21:40 orbus that's not in the docs
21:40 orbus :p
21:40 jnthn Ah
21:40 orbus at least not in the Channel documentation
21:40 jnthn Drop an Issue in the docs tracker if you have a moment :)
21:40 orbus mail to rakudobug, or what?
21:41 AlexDaniel https://github.com/perl6/doc/issues/new :)
21:41 jnthn No, github.com/perl6/doc/issues or so
21:41 jnthn ah, beaten to it
21:41 jnthn Though I typed it from memory :P
21:42 orbus don't have a github account
21:42 orbus suppose I ought to finally set one up
21:42 jnthn :)
21:42 orbus if I ever get this module done and publish it, I'll need one
21:42 azawawi any chance we could have faster Travis CI builds now that we have 2015.12? i.e. skip building `rakudobrew build 2015.12` and use a ready-made image?
21:42 orbus I'm writing a bounded subclass of channel
21:42 jnthn Ah, k
21:43 orbus that blocks if you try to stick too many things in it - potentially dangerous, potentially useful
21:43 jnthn Using a condvar for adding, I guess?
21:43 jnthn Well, sending for follow the naming scheme... :)
21:44 orbus you probably know all kinds of tricks I don't
21:44 orbus nah, there's an internal channel that I'm popping the counter in and out of
21:44 orbus to control access to it
21:46 orbus basically there's a counter that keeps track of how many elements are in the channel
21:46 orbus that increments and decrements as stuff is sent and received
21:46 orbus but then I had to get creative with channels and promises to deal with cases where the channel is full or empty
21:46 orbus it's mostly working
21:46 orbus I"m not sure I have everything totally right yet
21:47 orbus but when it's done, setting the limit to 0 *should* make it behave like a unix pipe
21:47 orbus (deadlocks and all!)
21:47 orbus I also added a nonblocking variant of send
21:47 orbus since send can now block
21:49 orbus it's all built with channels and promises though - no low level constructs
21:51 mspo here's a quote I got from another chat :)  -- Perl6 is for all those who always wanted to do OO raw sendmail.cf; but otherwise it is nice
21:52 orbus I was reading the slashdot thread from the 6.c announcement the other day
21:52 orbus a lot of it was pretty cringe-worthy
21:53 DrForr It's slashdot. Barely attention-worthy.
21:53 mspo langauge pissing contests are amusing
21:54 mspo to be young and get passionate about that stuff again...
21:54 orbus yeah
21:54 orbus I have a different perspective since I'm not really a capital D Developer anyway
21:55 orbus I just write stuff to make my life easier
21:55 mspo I'm just having fun learning a new thing
21:55 orbus perl's always been good for that
21:55 jnthn orbus: I just quickly hacked together a BoundedChannel the way it first occurs to me to do it. Warning: I'm really tired and about to sleep. :) https://gist.github.com/jnthn/03e01cba53418c1f0f3c
21:55 mspo yes
21:55 mspo orbus: perl has always been best for getting you to the bar faster than other tools
21:56 orbus jnthn: you are clearly much much smarter than me - I've been poking at it for two days :p
21:56 jnthn Refresh gist; I factored out some dupe :)
21:57 orbus let's see
21:57 orbus I'd have to parse this a bit
21:57 orbus I'm not using signals - I'm passing promises on internal channels when I need to signal something to another thread
21:57 orbus and the counter was the only thing that really needed a lock around it, so I used a channel for that too
21:57 orbus otherwise, maybe broadly similar
21:58 n0vacane joined #perl6
21:58 n0vacane joined #perl6
21:58 mspo that's a lot of \foo = callsame() for me to grok quickly
21:58 orbus have to read it a bit closer
21:58 mspo speaking of beer
21:59 * jnthn has probably been teaching concurrency related topics on average monthly over the last few years, so tends to have canned answers for relatively common stuff by now. :)
21:59 orbus true
22:00 orbus I see you're using condition variables
22:00 orbus which I didn't understand at all
22:00 jnthn Ah
22:00 orbus reading the docs
22:00 jnthn The guts of channel are built out of cond-var
22:00 jnthn *cond-vars
22:00 orbus ah, now I put two and two together
22:01 orbus yeah, what I did is say the channel is full
22:01 orbus and I try to send
22:01 orbus there's no more slots
22:01 orbus so the sending thread creates a promise and sticks that on an internal channel
22:01 orbus then blocks on send
22:01 orbus when some other thread comes along and calls receive
22:01 jnthn Ah, awaits the Promise?
22:01 orbus oh
22:01 orbus yes
22:02 orbus so then when another thread comes along to receive
22:02 orbus it checks that channel
22:02 orbus and pops a promise off it if there are any
22:02 orbus then keeps the promise
22:02 jnthn Yeah, it's possible to construct something that way.
22:02 orbus had to get creative
22:03 orbus it's been a good learning exercise anyway
22:03 jnthn :)
22:03 orbus that's why I keep popping in here asking concurrency questions
22:03 orbus and I have the day off
22:03 orbus so I'm just fiddling around
22:03 orbus actually I think it's mostly working
22:03 orbus that's why I'm trying to write tests
22:03 orbus to make sure
22:03 orbus but it's hard to write tests for blocking stuff
22:04 orbus or multithreaded stuff
22:04 jnthn Indeed
22:05 jnthn Anyways, I should go get some rest, so I can be useful tomorrow... :)
22:05 jnthn 'night, #perl6
22:05 _nadim joined #perl6
22:05 orbus actually there's a couple of internal channels
22:05 orbus because if the channel is empty
22:05 timotimo gnite jnthn :)
22:05 orbus and a receive is blocking
22:05 orbus that caused problems too
22:05 orbus have a good one
22:06 kjs_ joined #perl6
22:10 llfourn joined #perl6
22:13 avs_ joined #perl6
22:17 prammer joined #perl6
22:28 llfourn joined #perl6
22:32 azawawi https://ci.appveyor.com/project/azawawi/perl6-opencv/build/1.0.3  # OpenCV AppVeyor CI build rolling on windows 7... ugexe++
22:35 dfcarpenterak joined #perl6
22:42 RabidGravy cool
22:42 FatalNIX joined #perl6
22:43 _nadim joined #perl6
22:44 vendethiel joined #perl6
22:44 cschwenz joined #perl6
22:45 cschwenz o/ #perl6
22:45 cschwenz it's been a long day and i know i am missing something silly
22:46 cschwenz panda install Task::Star
22:46 cschwenz gives:
22:46 cschwenz env: perl6: No such file or directory
22:46 cschwenz echo $PATH  gives  /Users/cal/perl5/perlbrew/bin:~/.rakudobrew/moar-nom/install/share/perl6/site/bin:~/.rakudobrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
22:48 cschwenz suggestions on what i am doing wrong?
22:48 ugexe whats your cwd
22:48 cschwenz pwd  gives  /Users/cal
22:50 ugexe rakudobrew rehash, then try again?
22:51 cschwenz aha!  found it.  Mac OS brain damage.  said OS doesn't expand ~ in $PATH.  replacing ~ with /Users/cal fixed it.  :-|
22:52 cschwenz my terminal is now happily installing Task::Star
22:53 hoelzro o/ cschwenz!
22:53 hoelzro let's hope it stays happy =)
22:54 cschwenz o/ hoelzro!  :-D
22:55 cschwenz bringing perl6 up on my new $work mbp
22:55 cschwenz it feels good to be back after over two months away
22:56 hoelzro nice! a few things have changed, as you may have noticed =)
22:57 cschwenz i keep hearing rumours about this thing called Perl 6.c :-P
22:57 virtualsue joined #perl6
22:58 nadim joined #perl6
23:04 azawawi https://github.com/azawawi/perl6-opencv  # AppVeyor status badge added to README.md :)
23:04 vendethiel- joined #perl6
23:05 virtualsue joined #perl6
23:17 Herby_ joined #perl6
23:17 Herby_ Hello, everyone!
23:20 AlexDaniel o/
23:21 AlexDaniel .u 🕴
23:21 yoleaux No characters found
23:22 AlexDaniel m: ‘🕴’.uniname.say
23:22 camelia rakudo-moar 770d10: OUTPUT«MAN IN BUSINESS SUIT LEVITATING␤»
23:22 AlexDaniel m: ‘🕲’.uniname.say
23:22 camelia rakudo-moar 770d10: OUTPUT«NO PIRACY␤»
23:31 [Sno] joined #perl6
23:31 Herby_ Alex. I don't have a good grasp on unicode
23:31 Herby_ how would I input "MAN IN BUSINESS SUIT LEVITATING", and get an output of that symbol?
23:33 _nadim joined #perl6
23:35 leont "\c[MAN IN BUSINESS SUIT LEVITATING]".uniname.say
23:35 leont m: "\c[MAN IN BUSINESS SUIT LEVITATING]".uniname.say
23:35 camelia rakudo-moar 770d10: OUTPUT«MAN IN BUSINESS SUIT LEVITATING␤»
23:36 revhippie m: "\c[MAN IN BUSINESS SUIT LEVITATING]"
23:36 camelia rakudo-moar 770d10: OUTPUT«WARNINGS for /tmp/9gp2Vq109g:␤Useless use of constant string "🕴" in sink context (line 1)␤»
23:36 Herby_ m: say "\c[MAN IN BUSINESS SUIT LEVITATING]";
23:36 camelia rakudo-moar 770d10: OUTPUT«🕴␤»
23:36 Herby_ Ahhh, thanks!
23:36 Herby_ m: "\c[NO PIRACY]".say;
23:36 camelia rakudo-moar 770d10: OUTPUT«🕲␤»
23:45 Ulti Hotkeys re: glottal stop instead of question mark it could be Perl 6 related https://github.com/MattOates/Text--Homoglyph
23:55 dalek doc: 74e295f | skids++ | doc/Language/list.pod:
23:55 dalek doc: Flesh out Array sections.
23:55 dalek doc: review: https://github.com/perl6/doc/commit/74e295fc09

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

Perl 6 | Reference Documentation | Rakudo