»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
samcv cale2, a lot of the nqp routines map basically directly to VM actions. so provides that layer 00:00
between vm and rakudo 00:01
samcv nice the new warnings for the deprecated names look great a.uguu.se/pSAMBxqa4mY4_Screenshot_...164656.png 00:47
and programs will continue to work but it will give them a warning to change their code. 00:48
timotimo nice work 00:50
samcv timotimo, any idea how long we would deprecate it? 00:52
i don't really care, just curious
samcv don't think anybody is using them 00:54
AlexDaniel possibly until 6.d :| 00:55
assuming somebody was actually using them
and if nobody did, why bother with the error message at all? :)
samcv hm 00:56
idk it's still good policy
whatever i don't really care super much
6.d is fine, or could be shorter idk. i think can be shorter based on 6.c-errata
and CARRIAGE RETURN (CR) and other unicode 1 names are no longer in it 00:57
so it potentially could be shorter
TimToady quick, deprecate the deprecation message, so we can get rid of it in 6.e! 00:58
samcv haha
samcv nqp-j: say("\c[BELL]") 01:00
nqp-jvm: say("\c[BELL]")
camelia nqp-jvm: OUTPUT«Error occurred during initialization of VM␤Could not allocate metaspace: 1073741824 bytes␤»
samcv j: say("\c[BELL]")
camelia rakudo-jvm fb4f16: OUTPUT«␤»
samcv ah kk so the error is on that as well. will have to fix that once I finish fixing it on Moar 01:01
AlexDaniel m: ‘Hello’.encode(‘UTF-8’).list.say 01:33
camelia rakudo-moar f10b09: OUTPUT«(72 101 108 108 111)␤»
AlexDaniel m: ‘Hello’.encode(‘UTF-16’).list.say
camelia rakudo-moar f10b09: OUTPUT«(72 101 108 108 111)␤»
AlexDaniel ಠ_ಠ
[Coke] no, pugs didn't use nqp 01:41
samcv m: my $pair = 'value' => 'thing'; my %var; %var{$pair} = 'test'; say %var.perl 02:14
camelia rakudo-moar f10b09: OUTPUT«{"value\tthing" => "test"}␤»
samcv how do i get this to work? 02:14
m: my %var; %var{'value'}{'thing'} = 'test'; say %var.perl 02:15
camelia rakudo-moar f10b09: OUTPUT«{:value(${:thing("test")})}␤»
samcv this is what i want 02:16
geekosaur samcv, you don't, you can't change the value into a hash by changing the shape of the key 02:20
you must change the shape of the value 02:21
(you could change the type so the key can be a Pair or even a Hash, but that won't do what you want either)
samcv the type i can change fine
well i can change the type of $pair's value
so what type do i want? 02:22
geekosaur no, I mean you specify the key type in the hash
samcv how do I do that?
geekosaur but you still can't change the shape of the value by changing the key
samcv i need to pass in parts of a hash to a routine
well to know where in the main hash to put specific things
samcv so any way to pass in sections of the final structure is fine 02:23
geekosaur that will place things with the key being a hash, it won't split it over a hash of hashes to place things elsewhere
again, the shape of the value is not determined by the shape of the key
using a Pair as a key does not index a hash-of-hashes, it indexes a hash whose keys are Pairs 02:24
geekosaur doesn't remember offhand how the typing of hashes works sigh
samcv well how can I do what I want? i mean i can make the values passed into the sub whatever I want
so i can specify where in the data structure to put it
AlexDaniel m: my $pair = ‘value’ => ‘thing’; my %var; %var{$pair.key} = { $pair.value => ‘test’ }; say %var.perl 02:25
camelia rakudo-moar f10b09: OUTPUT«{:value(${:thing("test")})}␤»
AlexDaniel dunno
why do you have a pair in the first place? :)
samcv it doesn't have to be a pair
geekosaur AlexDaniel, what I understand is they want to specify a path within a hash of hashes of ... 02:26
samcv ^
that
geekosaur so [foo, bar, baz] indexes %h{foo}{bar}{baz}
samcv i'm investigating ways to rewrite the unicode database generation script. so I have agood outline before I start
AlexDaniel cool
geekosaur ah, got the other one but it still doesn't do what you wanted 02:27
samcv getting this to work will make it way more maintainable
samcv other one? 02:27
geekosaur m: my %h{Pair}; $h{foo => 1} = 2; dd %h
camelia rakudo-moar f10b09: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$h' is not declared. Did you mean '%h'?␤at <tmp>:1␤------> 3my %h{Pair}; 7⏏5$h{foo => 1} = 2; dd %h␤»
geekosaur whoops
m: my %h{Pair}; %h{foo => 1} = 2; dd %h
camelia rakudo-moar f10b09: OUTPUT«Hash[Any,Pair] %h = (my Any %{Pair} = (:foo(1)) => 2)␤»
skids m: my %var := :{}; %var{a=>1} = "foo"; %var.perl.say
camelia rakudo-moar f10b09: OUTPUT«:{(:a(1)) => "foo"}␤»
geekosaur unfortunately while I know how to write what you want in perl 5, I'm not sure how to do it concisely in perl 6 02:28
geekosaur very definitely still more of a p5 type, as indicated by prior typo >.> 02:29
AlexDaniel I mean, well.
m: my %x = foo => { bar => { baz => 42 } }; say [%x, ‘foo’, ‘bar’ , ‘baz’].reduce({ $^a{$^b } })
camelia rakudo-moar f10b09: OUTPUT«42␤»
AlexDaniel so you just reduce with { $^a{$^b} } 02:30
AlexDaniel does not look like a good solution right, but it works? 02:31
geekosaur does that yield an lvalue?
AlexDaniel not really
well it does, if 02:32
m: %x = foo => { bar => { baz => 42 } }; say [%x, ‘foo’, ‘bar’].reduce({ $^a{$^b} })<baz> 02:33
camelia rakudo-moar f10b09: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '%x' is not declared␤at <tmp>:1␤------> 3<BOL>7⏏5%x = foo => { bar => { baz => 42 } }; sa␤»
AlexDaniel m: my %x = foo => { bar => { baz => 42 } }; say [%x, ‘foo’, ‘bar’].reduce({ $^a{$^b} })<baz>
camelia rakudo-moar f10b09: OUTPUT«42␤»
AlexDaniel m: my %x = foo => { bar => { baz => 42 } }; [%x, ‘foo’, ‘bar’].reduce({ $^a{$^b} })<baz> = 69
camelia ( no output )
AlexDaniel m: my %x = foo => { bar => { baz => 42 } }; [%x, ‘foo’, ‘bar’].reduce({ $^a{$^b} })<baz> = 69; dd %x
camelia rakudo-moar f10b09: OUTPUT«Hash %x = {:foo(${:bar(${:baz(69)})})}␤»
geekosaur ok, so pop last component off and index that separately to get an lvalue. looks doable
AlexDaniel not the worst thing that I've seen in my code for sure, but I can't really imagine somebody using this 02:34
geekosaur I can, that's why I described it as a path
not the most common thing I've ever done, but certainly one I've needed a few times 02:36
AlexDaniel m: sub path(+@a) { @a.reduce({ $^a{$^b} }) }; my %x = foo => { bar => { baz => 42 } }; path(%x, ‘foo’, ‘bar’)<baz> = 69; dd %x
camelia rakudo-moar f10b09: OUTPUT«Hash %x = {:foo(${:bar(${:baz(69)})})}␤»
AlexDaniel m: sub path(+@a) { @a.reduce({ $^a{$^b} }) }; my %x = foo => { bar => { baz => 42 } }; path(%x, <foo>, <bar>)<baz> = 69; dd %x
camelia rakudo-moar f10b09: OUTPUT«Hash %x = {:foo(${:bar(${:baz(69)})})}␤»
AlexDaniel hehe
samcv if you can get a good working example i'll just define a new operator or something 02:37
skids [;] 02:37
AlexDaniel skids: not anymore!
or what did you mean by that? :)
skids m: my %target := fee => { fie => { foo => "fum" } }; %target.perl.say; %target{"fee";"fie";"foo"}.perl.say
camelia rakudo-moar f10b09: OUTPUT«:fee({:fie(${:foo("fum")})})␤("fum",)␤»
skids need a [;]
AlexDaniel :OO 02:38
skids for psuedo-dimensional
geekosaur samcv, that path sub would work fine esp. if you did it instead as a special postcircumfix op
samcv which one should I use?
geekosaur ah. but can you do that dynamically too?
that is, I'm given @path not a static list
(and, without using EVAL) 02:39
AlexDaniel m: my %x = foo => { bar => { baz => 42 } }; %x{‘foo’; ‘bar’; ‘baz’} = 69; say %x{‘foo’; ‘bar’; ‘baz’}
camelia rakudo-moar f10b09: OUTPUT«(69)␤»
samcv yeah i thought about hacking it with eval but that's bad
skids right, we could if I could figure out a dimension-slice constructor, but [;] doesn't parse.
samcv and a terrible solution.
what is this [;]
skids samcv: it would be a reduce-to-list-of-lists, if it worked. 02:40
samcv is ; an operator?
skids (or well, not lol but a dimesional slice)
skids m: (1;2;3).perl.say 02:40
camelia rakudo-moar f10b09: OUTPUT«(1, 2, 3)␤»
skids it's a second level comma.
samcv ahhh ok 02:41
and where does that mean that and not end of statement
AlexDaniel I've never thought that it is going to work in a hash
skids samcv: in lists and hash indices
samcv also is there some texas version
ah ok
geekosaur texas version? of standard ascii? (welcome to the land of trigraphs...) 02:42
AlexDaniel geekosaur: if @a == 2 { %x{@a[0]; @a[1]} } elsif @a == 3 { %x{@a[0]; @a[1]; @a[2]} } … … … … :)
samcv i mean second level list operator. but 02:43
AlexDaniel what if you pass it an array that is dimensioned like that
samcv i mean i don't like things which mean different things in multiple contexts
AlexDaniel samcv: you're saying that as a maintainer of atom-language-perl6, right? ;) 02:44
skids Note that one should consider what beavior one wants with actual, rather than pseudo, multidimensional hashes.
samcv hah
atom-language-perl6 doesn't know about ; really. generally it's by line or by start regex and ending regex (multi line)
skids goes synopsis diving 02:45
AlexDaniel m: my %x = foo => { bar => { baz => 42 } }; my @z[1;3] = ((‘foo’, ‘bar’, ‘baz’),); say %x{@z} 02:46
camelia rakudo-moar f10b09: OUTPUT«({bar => {baz => 42}} (Any) (Any))␤»
AlexDaniel well wtf did it just attempt? 02:47
skids Hrm, not much in synopsis.. 02:54
samcv :( 02:57
AlexDaniel skids: don't you think this ↑ is supposed to work? 02:58
skids Complicated question. 02:59
samcv bisectable6, my %x = foo => { bar => { baz => 42 } }; my @z[1;3] = ((‘foo’, ‘bar’, ‘baz’),); say %x{@z}
bisectable6 samcv, Bisecting by output (old=2015.12 new=f10b09e) because on both starting points the exit code is 0
AlexDaniel no it never worked 02:59
bisectable6 samcv, bisect log: gist.github.com/863fd9f6be05cdd71f...3ad79eec8d
samcv, (2016-04-05) github.com/rakudo/rakudo/commit/6a...822dac090b
AlexDaniel the output changed a bit
commit: 6a2ff75a61^,6a2ff75a61 my %x = foo => { bar => { baz => 42 } }; my @z[1;3] = ((‘foo’, ‘bar’, ‘baz’),); say %x{@z}
committable6 AlexDaniel, ¦«6a2ff75a61^»: (bar => baz => 42 (Any) (Any))␤¦«6a2ff75»: ({bar => {baz => 42}} (Any) (Any))
AlexDaniel that's what bisectable is pointing at
samcv .perl is more stable maybe? 03:00
bisectable6, my %x = foo => { bar => { baz => 42 } }; my @z[1;3] = ((‘foo’, ‘bar’, ‘baz’),); say %x{@z}.perl
bisectable6 samcv, On both starting points (old=2015.12 new=f10b09e) the exit code is 0 and the output is identical as well
samcv, Output on both points: (${:bar(${:baz(42)})}, Any, Any)
samcv yea
skids A while back we decided we liked this accidental behavior:
AlexDaniel it's not the stability, the output is just curlified
skids m: my @target := [1,[2,[3,4]]]; @target.perl.say; @target[(1,),(1,),(0,)].perl.say
camelia rakudo-moar f10b09: OUTPUT«[1, [2, [3, 4]]]␤(($[2, [3, 4]],), ($[2, [3, 4]],), (1,))␤»
skids ...and a lot of the multidim stuff was not even considered during the GLR.
So the old idea that a list-of-lists means "go multidimesional" is perhaps old. 03:01
But that leaves us wondering what a (;;;) list is...
AlexDaniel commit: all my @x[2;3] 03:02
skids Way back we used to have a lol type.
committable6 AlexDaniel, gist.github.com/99fca641812dae4b2c...5f3d405527 03:02
AlexDaniel in fact, there were no shaped arrays during the GLR so vOv 03:03
skids Right. I forget whether pre-rakudo implementations did them. 03:04
skids But, I cannot explain that hash slice behavior at all... probably that area of code is rather full of NYIs. 03:05
skids From doing work with the array slices, I know that area of code is best approached well slept. 03:06
samcv so what _should_ work then? i mean what do we want to be able to work if this is NYI? 03:08
skids Arrays are more complete so clues can be sought there. 03:11
m: my @target := (1,2,3;4,5,6;7,8,9); @target.perl.say; @target[(0,1);1;0].perl.say
camelia rakudo-moar f10b09: OUTPUT«((1, 2, 3), (4, 5, 6), (7, 8, 9))␤(2, 5)␤»
skids m: my @target := (1,2,3;4,5,6;7,8,9); @target.perl.say; @target[(0,1),1,0].perl.say
camelia rakudo-moar f10b09: OUTPUT«((1, 2, 3), (4, 5, 6), (7, 8, 9))␤(((1, 2, 3), (4, 5, 6)), (4, 5, 6), (1, 2, 3))␤»
skids dimensional ; seems to be syntactical. 03:12
AlexDaniel m: sub path(+@a) { @a.reduce({ $^a{$^b} }) }; my %x = foo => { bar => { baz => 42 } }; path(%x, <foo>, <bar>)<baz> = 69; dd %x 03:13
camelia rakudo-moar f10b09: OUTPUT«Hash %x = {:foo(${:bar(${:baz(69)})})}␤»
AlexDaniel samcv: ↑ this is not too bad isn't it?
samcv nope that's not bad 03:14
skids wonders what »{} is supposed to do. 03:16
Ah, well ok I guess it makes sense for arrays of hash. 03:18
AlexDaniel … it does something scary for hashes…
AlexDaniel or not 03:19
skids It .kv's them and then indexes
AlexDaniel I have no idea what » does actually
m: my %x = ‘a’ => { ‘foo’ => 42 }, ‘b’ => { ‘bar’ => 90 }; say %x».succ
camelia rakudo-moar f10b09: OUTPUT«{a => {foo => 43}, b => {bar => 91}}␤»
AlexDaniel like, who'd expect that? 03:20
skids Oh right, hypers tree. 03:21
but... why no .succ on the Strs.
skids damn gnome gestures, gotta go turn that off. 03:22
samcv m: my %hash = 1 => 'one', 2 => 'two'; say %hash.sort; say %hash.sort.keys 03:23
camelia rakudo-moar f10b09: OUTPUT«(1 => one 2 => two)␤(0 1)␤»
samcv also what is going on here
skids hash.sort returns a list of two pairs. The keys of a list are the integer indices of the elements. 03:24
samcv kk. that's what i was thinking
samcv m: sub path(+@a) { @a.reduce({ $^a{$^b} }) }; my %x; path(%x, <foo>, <bar>)<baz> = 69; dd %x 03:29
camelia rakudo-moar f10b09: OUTPUT«Cannot modify an immutable Any␤ in block <unit> at <tmp> line 1␤␤»
samcv dammit
m: sub path(+@a) { @a.reduce({ $^a{$^b} }) }; my %x; path(%x, <foo>, <bar>)<baz> = 69; dd %x
camelia rakudo-moar f10b09: OUTPUT«Cannot modify an immutable Any␤ in block <unit> at <tmp> line 1␤␤»
samcv it can't seem to add items though
just modify
AlexDaniel it just cannot do it in one go 03:35
AlexDaniel samcv: but if you modify it just a little bit 03:36
m: sub path(+@a) { @a.reduce({ $^a{$^b}:exists ?? $^a{$^b} !! $^a{$^b} = {} }) }; my %x; path(%x, <foo>, <bar>)<baz> = 69; dd %x 03:37
camelia rakudo-moar f10b09: OUTPUT«Hash %x = {:foo(${:bar(${:baz(69)})})}␤»
samcv perfect AlexDaniel++ 03:37
skids wonders how that works without any <-> or "is rw" on the subs. 03:38
skids ah. Because objects are all that's used there. 03:41
m: sub idx (\a, \b) is rw { a{b} }; my %x = :a(1); idx(%x,<a>) = 4; %x.say;
camelia rakudo-moar f10b09: OUTPUT«{a => 4}␤»
skids m: sub idx (\a, \b) { a{b} }; my %x = :a(1); idx(%x,<a>) = 4; %x.say; 03:42
camelia rakudo-moar f10b09: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at <tmp> line 1␤␤»
skids m: sub idx (\a, \b) is rw { a{b} }; my %x = :a(:1b); (%x,"a","b").reduce(&idx) = 4
camelia rakudo-moar f10b09: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at <tmp> line 1␤␤» 03:42
skids :(
m: sub idx (\a, \b) is rw { a{b} }; my %x = :a(:1b); (%x,"a","b").reduce-rw(&idx) = 4 03:44
camelia rakudo-moar f10b09: OUTPUT«No such method 'reduce-rw' for invocant of type 'List'␤ in block <unit> at <tmp> line 1␤␤»
skids Darn.
skids Hrm. well apparently hypers tree arrays, work on a hash's values, but don't tree lists and don't tree hashes. I wonder how/when that was decided... I don't recall. 03:56
skids Oh, unary hypers do tree lists. 03:57
That makes better sense.
hartshorn hello 03:58
skids m: my $neighbors = ((-1, 0), (0, -1), (0, 1), (1, 0)); my $p = (2, 3); say $neighbors »>>+<<» ($p, *); 04:00
camelia rakudo-moar f10b09: OUTPUT«((1 3) (2 2) (2 4) (3 3))␤»
skids m: my $neighbors = ((-1, 0), (0, -1), (0, 1), (1, 0)); my $p = (2, 3); say $neighbors »+» ($p, *); 04:01
camelia rakudo-moar f10b09: OUTPUT«((1 3) (2 2) (2 4) (3 3))␤»
skids Methinks the docs moght be mistaken.
hartshorn skids it's just you? 04:05
skids Everyone else suddenly got quiet.
hartshorn weird 04:06
how are you making camelia do that?
TimToady m: my $neighbors = ((-1, 0), (0, -1), (0, 1), (1, 0)); my $p = (2, 3); say $neighbors »+» ($p,) 04:08
camelia rakudo-moar f10b09: OUTPUT«((1 3) (2 2) (2 4) (3 3))␤»
TimToady don't really need the *
skids I don't know whether to nuke that whole example from operators.pod or find out from the blamees what was going on there. 04:11
geekosaur isn't there still a bunch of stuff from pre-glr (and hypers changed quite a lot in glr's wake)? 04:12
skids All the blames are 2016, but that could've been formatting and tweaks. 04:14
AlexDaniel skids: I don't think it was ever decided
skids Hrm... then there might be a specbugtodo. 04:15
geekosaur most of the docs *are* from 2016, after it was decided to freeze the spec(ulation)s
and do actual docs instead of trying to fix them 04:16
but that means you get docs written from speculations that didn't necessarily happen as such
TimToady hyper infixes are supposed to replicate any deficient dimension if the » is pointing that way 04:16
which is what it looks like it's doing 04:17
that's just normal array operations from the APL perspective 04:18
samcv skids, ok so i'm going a different way with this. but need help applying one hash to another. well it's sort of the same problem. but. i guess you could say interweaving two hashes?
TimToady APL is basically always «+» when you say + 04:19
samcv how do i add one hash tree to another without deleting any preexisting ones
TimToady of course, APL doesn't do hashes... 04:20
skids samcv: example operands and desired results?
samcv sec
gist.github.com/9555fb141eca8f0da7...6e26a0620f 04:22
samcv the print out is {0000 => {NameAlias => {NULL => {type => control}}}} 04:22
{0000 => {NameAlias => {NUL => {type => abbreviation}}}}
${:NameAlias(${:NUL(${:type("abbreviation")})})}
so apply-to-cp gets those first two i pasted, and the result %points{0} is the last line 04:23
as you can see it overwrote it as I knew it would, but I want to be able to get NUL and NULL
if you want to test ftp://ftp.unicode.org/Public/UCD/latest/ucd/NameAliases.txt put it in a folder called UNIDATA one level below the script 04:24
samcv and it should be able to be generalized to make it so that i can pass it hashes with many different values set 04:27
not just a single one like in this example
skids Ah so you want sort of like Hash.append but not quite. 04:29
m: say { :1a }.append: { :2a } 04:30
camelia rakudo-moar f10b09: OUTPUT«{a => [1 2]}␤»
skids I'm kinda too tired to try to write that. 04:35
faraco NOTE: To upload a Perl6 distribution a target directory whose top level subdirectory is "Perl6" must be specified. In addition, a Perl6 distribution must contain a META6.json. Pause will only consider it a Perl6 dist if these two conditions are satisfied. 04:47
I got the META6.json
but..the top level subdirectory..means? 04:48
do I need to change my lib/Module/Name to Perl6/Module/Name 04:49
uploading to CPAN.
skids Or maybe just stuff the whle module in a Perl6 subdir? I dunno.
faraco yeah, that is question, which part should I stuff them. The whole project, or only the file under the lib/ 04:50
samcv skids, basically what you just said. if i do append i get this: $[{:NameAlias(${:NULL(${:type("control")})})}, {:NameAlias(${:NUL(${:type("abbreviation")})})}]
but i want them to be part of the same
skids Right. But you wat to do it recursively... merge all nonmatching keys, then for all matching keys, create te key and assign it the result of the recursion on the two value. 04:52
samcv yep
exactly
skids I'm not sure there's a "trick" to that other than just writing a recursive sub... hyperops can do some things with matching keys but it'll just get confusing. 04:53
samcv yeah 04:54
the old unicode database gen script just uses references to accoplish it but we have no references in perl 6 04:55
and maybe some other things. but yeah i'm attempting all the big picture parts that need to be in place to begin writing a replacement
only rewrite once etc.
samcv huh skids it may be simpler than I thought 05:03
m: my %hash = 1 => 'hi'; my %hash2 = 2 => 'hello'; my %new = (%hash, %hash2); say %new.perl
camelia rakudo-moar e7c1d5: OUTPUT«{"1" => "hi", "2" => "hello"}␤»
samcv though may not work for uh. 05:05
skids Well, yeah, just merging simple hashes is easy. It's the multidimensional that's the fun.
samcv m: my %hash = 1 => 'hi'; my %hash2 = 1 => 'hello'; my %new = (%hash, %hash2); say %new.perl
camelia rakudo-moar e7c1d5: OUTPUT«{"1" => "hello"}␤»
samcv yeah that don't work
bleh
i was too optimistic
skids Basically you can either recurse only for matching keys, or iterate a .unique list of the combined keys of the two hashes into a multisub that only recurses when the keys match. 05:09
samcv yeah 05:10
i'll just make a recursive function I guess
samcv i'll just make one that will apply the supplied hash to the main hash or whatever 05:15
samcv SourceBaby, &parse-base 06:00
SourceBaby, help
SourceBaby samcv, Use s: trigger with args to give to sourcery sub. e.g. s: Int, 'base'. See modules.perl6.org/dist/CoreHackers::Sourcery
samcv s: Str, parse-base
SourceBaby samcv, Something's wrong: ␤ERR: ===SORRY!=== Error while compiling -e␤Calling parse-base() will never work with any of these multi signatures:␤ (Str:D $str, Int:D $radix)␤at -e:6␤------> put sourcery( Str, ⏏parse-base )[1];␤
samcv s: Str, 'parse-base'
SourceBaby samcv, Sauce is at github.com/rakudo/rakudo/blob/e7c1...r.pm#L1302
samcv .tell brokenchicken I updated IRC::TextColor. can now do ircstyle('text', :bold, :green) 06:04
yoleaux samcv: I'll pass your message to brokenchicken.
samcv s: Str.parse-base 06:10
SourceBaby samcv, Something's wrong: ␤ERR: Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at -e line 6␤␤
samcv s: Str, .parse-base
SourceBaby samcv, Something's wrong: ␤ERR: No such method 'parse-base' for invocant of type 'Any'␤ in block <unit> at -e line 6␤␤
samcv s: Str, '.parse-base' 06:11
SourceBaby samcv, Something's wrong: ␤ERR: Type check failed in binding to &code; expected Callable but got Nil (Nil)␤ in sub do-sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 42␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 33␤ in block <unit> at -e line 6␤␤
samcv dammit.
samcv Interesting. the Kate text editor is for windows too. and it has syntax highlighting in it says 275 languages. and they just moved the highlighting code out of Kate 07:34
I use kate to work with very long files kate-editor.org/2016/11/15/ksyntax...framework/ 07:35
fluca1978 sorry for this trivial question, but why is the dist manager named 'panda'? 07:57
moritz because pandas are cute animals, IIRC :-) 07:59
and there's more than one module installer; currently many people use zef instead
samcv I usually use zef 08:00
why is it called zef? idk…
SourceBaby, source
SourceBaby samcv, See: github.com/zoffixznet/perl6-sourceable
moritz the previous generations of module installers were called "proto" (because it was a protoype), and "neutro" (logical successor to "proto") 08:02
labster panda: perl archive network done again 08:10
Not official, but close enough ;)
samcv hah 08:21
moritz PANDA = Panda Aint' No Darn Acronoym 08:22
tadzik :o 08:23
I think fluca1978 is gone, but the answer is that my dog was named panda 08:24
i.redd.it/jpop5n9y4b9y.jpg
diakopter :o 08:25
fluca1978 thanks tadzik 08:31
tadzik oh, so it's just my tab-completion acting up :) 08:32
DrForr No, they named the dog Indy :) 08:36
(movie ref, in case that's necessary.) 08:39
dilksinator Do knitters code fabric? 08:55
DrForr That's one way to look at it, I suppose. 08:57
Though what most people think of as "fabric" is really weaving and not knitting.
Geth oc: 89f75a3c17 | (Samantha McVey)++ | util/trigger-rebuild.txt
Trigger rebuild to pull in highlighting fixes

Fixes to regex after ~~ and regex using .match
09:09
brokenchicken . 11:03
yoleaux 06:04Z <samcv> brokenchicken: I updated IRC::TextColor. can now do ircstyle('text', :bold, :green)
brokenchicken m: (^0x110000).grep(/ <:Digit> /).elems.say 11:12
camelia rakudo-moar 0c5a58: OUTPUT«0␤»
brokenchicken m: q/'/ ~~ rx/ <:Digit> / 11:13
camelia ( no output )
brokenchicken m: say q/'/ ~~ rx/ <:Digit> /
camelia rakudo-moar 0c5a58: OUTPUT«「'」␤»
brokenchicken m: (^0x110000).grep({.chr ~~ / <:Digit> /}).elems.say
camelia rakudo-moar 0c5a58: OUTPUT«(timeout)»
brokenchicken That's rt.perl.org/Ticket/Display.html?id=130549 fwiw 11:14
samcv m: use nqp; say nqp::unipropcode('Digit') 11:15
camelia rakudo-moar 0c5a58: OUTPUT«25␤»
samcv well it is matching SOMETHING 11:16
samcv let me check what 11:16
ah ok
i think i see maybe 11:17
m: say ' '.uniprop-int('Numeric_Type')
camelia rakudo-moar 0c5a58: OUTPUT«0␤»
samcv m: say ' '.uniprop-str('Numeric_Type')
camelia rakudo-moar 0c5a58: OUTPUT«None␤»
samcv hm
m: say ' ' ~~ /<:Digit>/
camelia rakudo-moar 0c5a58: OUTPUT«「 」␤»
samcv yeah. uhm 11:19
samcv that's the same bug as <:space> 11:19
it's checking the string values before checking the bool properties
@brokenchicken,
i *think*
uh
m: say ' ' ~~ /<:Script>/
camelia rakudo-moar 0c5a58: OUTPUT«Nil␤»
samcv m: say ' ' ~~ /<:Numeric_Type>/ 11:20
camelia rakudo-moar 0c5a58: OUTPUT«「 」␤»
samcv m: say ' ' ~~ /<:Emoji>/ 11:21
camelia rakudo-moar 0c5a58: OUTPUT«Nil␤»
samcv hm. odd
m: say ' '.uniprop-bool('Digit') 11:22
camelia rakudo-moar 0c5a58: OUTPUT«False␤»
samcv togged that one as [UNI] 11:23
m: say "\[<illegal>]" 11:24
camelia rakudo-moar 0c5a58: OUTPUT«[<illegal>]␤»
samcv m: say "\c[<illegal>]"
camelia rakudo-moar 0c5a58: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized \c character␤at <tmp>:1␤------> 3say "\c[7⏏5<illegal>]"␤ expecting any of:␤ argument list␤ double quotes␤ term␤»
samcv m: say "\c[BYTE ORDER MARKER]"
camelia rakudo-moar 0c5a58: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name BYTE ORDER MARKER␤at <tmp>:1␤------> 3say "\c[BYTE ORDER MARKER7⏏5]"␤»
samcv u: { .match(/<:Digit>/) } 11:26
really curious what don't match…
unicodable6 samcv, «timed out after 30 seconds, output»: «exit signal = SIGHUP (1)»
samcv m: say ' ' ~~ /<:Numeric_Type>/
camelia rakudo-moar 0c5a58: OUTPUT«「 」␤»
samcv yeah ok so it's some fundamental issue going on here potentially diffent than the <:space> problem I think 11:27
since it's not related to value/name collisions, i think
m: use nqp; nqp::unipvalcode('Digit').say
camelia rakudo-moar 0c5a58: OUTPUT«===SORRY!===␤Arg count 1 doesn't equal required operand count 3 for op 'unipvalcode'␤»
samcv m: use nqp; nqp::unipvalcode(nqp::unipropcode('Digit'),'Digit').say 11:28
camelia rakudo-moar 0c5a58: OUTPUT«0␤»
samcv will put that on my list of things
fluca1978 but another thing I don't understand, is CPAN going to be used as perl6 module container or not? 11:49
raschipi fluca1978: It will. 11:50
raschipi fluca1978: zef already has `--cpan` 11:50
fluca1978 how are we going to discriminate a perl5 module from a perl6 one on cpan (I'm thinking about namespace collisions)?
samcv i mean I would think a perl 6 module installed would only install perl 6 modules 11:51
but. i mean there would have to be some way to distinguish them because there are already many collisions
pmurias fluca1978: the Perl 6 modules won't be indexed by the Perl 5 tools 11:52
fluca1978 pmurias: right, but that means we are going to have also different versions of search.cpan.org, I suspect 11:53
pmurias you mean metacpan.org? 11:54
;)
fluca1978 pmurias: may be, I don't know if search.cpan.org uses metacpan in the backend...
lizmat hopes we can continue this type of work at blogs.perl.org/users/book1/2017/01/...-2017.html 11:55
showmetheco.de/articles/2017/1/anno...ikaio.html # also interesting :-) 11:56
samcv that's neat 12:00
pmurias lizmat: seems like we would need a Perl::Critic for Perl 6 for this to work 12:03
;)
lizmat yes, but on the other hand, we have --ast :-)
we have PPI sorta built in, no ? 12:04
jnthn Not to mention DrForr's Perl6::Parser work
Also, when the QTree refactor happens... :)
DrForr pokes his nose in. 12:05
jnthn It'll open all kinds of things up
But yes, for now --ast and (probably better) Perl6::Parser are our PPI. And they actually are written in pure Perl 6. ;)
samcv save the trees! 12:06
jnthn :D
pmurias is the QTree refactor planned for the near future?
DrForr Well, there's maybe 5 lines that's nqp, but the rest is perl 6, yes.
jnthn pmurias: My gut feeling is the QTree/macro stuff will end up being in 6.e 12:07
pmurias will QTrees replace QAST? 12:08
jnthn Yes and no. 12:08
moritz I could imagine them replacing a part of the QAST nodes so far
jnthn My current feeling is that QAST will remain the backend inter-lingua.
And QTrees will represent mostly higher-level constructs (at the Perl 6 level) 12:09
moritz that was my understanding as well 12:09
jnthn So it's more like QTree nodes will produce QAST.
Though perhaps in a more pipelined style
(That is, we won't ever have to build the entire QAST tree up in memory) 12:10
jnthn lunch & 12:13
masak perks up 12:18
moritz wants to call them MTree instead 12:19
masak not too late for a name change, but there'll have to be a good reason :P
I'm sorry I haven't had more time to look at the Qtree stuff for Perl 6
there's this issue in the 007 repo: github.com/masak/007/issues/197
that'll probably help
moritz you're saying that my desires aren't a good reason? :-) 12:20
masak but I'm severely lacking in tuits, 'cus $work and @family 12:20
moritz: I always try to cater to your deepest needs, you know that :D
DrForr Then we can describe MTree in documentation, and follow it up with STree which everyone will actually use?
masak moritz: but also, Q is a nice, fun-loving letter
masak DrForr: :P 12:20
moritz DrForr: SMTree? :-) 12:21
masak you're not exactly selling me on MTree here...
moritz masak: I guess it doesn't qualify as "deepest need"
masak no, guess not
DrForr Sometimes I have to boggle that I'm in a crowd that actually *gets* that joke.
masak I even got it on first expansion! :P 12:22
Ulti I think #perl6 got faster today vs yesterday 13:34
or its I've rebooted and there is less RAM pressure
masak the... IRC channel got faster?
or the Twitter hashtag? 13:35
jnthn yeah I type supre fsat now...it's eays to be fast and rhight!
masak jnthn: first, make it fast. then, make it, uhhhhhhh
Ulti might be the Array.from-iterator stuff 13:36
masak .oO( might be the gremlins )
Ulti yeah its within gremlin level speedup
whats nice though is the times are increasingly rock solid it doesn't jump from one invocation to another which I assume is to do with GC maturing? 13:37
jnthn Ulti: There was a recent improvement that in some kinds of application decreased memory pressure and GC times quite a bit. 13:39
It depends heavily on the use pattern of the application. 13:40
(Some things got nothing. CORE.setting compilation got 20%.)
Uh, 20% speedup and 10% peak memory decrease.
Ulti cool, I haven't actually been tracking memory :< 13:41
though its not too uncommon for me to have access to a machine with at least 512GB of RAM its CPU which makes the difference in bioinfo 13:42
lizmat Ulti: the Array.from-iterator does not create a reifier and reification-target now, when it can 13:43
so that's halve the number of objects it used to create always before
Ulti im unsure how that might affect my code
lizmat isn't sure either, but creating fewer objects is always a win 13:44
Ulti no doubt
lizmat somewhere :-)
Ulti I think thats the main thing here though when I haven't had some big jump in perf for these tests stuff like the primes benchmark have... it all adds up and eventually evens out
I guess I should run those again now you had a go at natives too 13:45
brokenchicken 𝐖𝐎𝐖! 𝐒𝐔𝐑𝐄 𝐈𝐒 𝐐𝐔𝐈𝐄𝐓 𝐈𝐍 𝐇𝐄𝐑𝐄! 14:56
masak we shouldn't get $work get in the way so much of our Perl 6 time
brokenchicken R'amen to that!
lizmat was just about to drop a pin
masak lizmat: whenever someone does that, it ends up in a haystack and we all have to go find it 14:57
raschipi Good thing we have grep, then. 15:01
moritz it's easy to find a haystack in a needle if you have a very high-powered magnet 15:02
DrForr Didn't Mythbusters confirm you *can* find a needle...? 15:03
moritz they didn't confirm that *I* can do that :-)
perigrin moritz: if the haystack is in the needle wouldn't it just come *with* the needle when it's pulled by the magnet? 15:07
tadzik well, do you still need that flammable haystack afterwards? :)
pmurias ggoebel: did nqp-js build after the "mkdir node_modules;npm install src/vm/js/nqp-runtime"? 15:08
perigrin tadzik: make sure you knwo the melting point of the needle, they have some plastic ones these days.
DrForr It could be a knitting needle too, that might be easier to find but you'd need to use eddy currents or something.
brokenchicken m: say flat "", "is", "", "", "I" Z CORE::.keys[97,233,503,409,484] 15:09
camelia rakudo-moar 8852f7: OUTPUT«( Perl is Cool Whatever Version I Promise)␤»
jnthn brokenchicken++ 15:09
lizmat m: class Z is Date {method happy{}};say Z.^methods.map(*.name.tc).sort[11,16,29].join(" ")~"!" # am I missing something ? 15:10
camelia rakudo-moar 8852f7: OUTPUT«Earlier Is-leap-year Week-number!␤»
brokenchicken hah
Older version of Rakudo I guess :)
lizmat yeah :-( 15:11
brokenchicken mc: class Z is Date {method happy{}}; say Z.^methods.map(*.name.tc).sort[11,16,29].join(" ")~"!"
committable6 brokenchicken, ¦«2015.12»: Earlier Later Weekday-of-month!
brokenchicken committable6: 6.c class Z is Date {method happy{}}; say Z.^methods.map(*.name.tc).sort[11,16,29].join(" ")~"!"
committable6 brokenchicken, ¦«2015.12,2016.02»: Earlier Later Weekday-of-month!␤¦«2016.03,2016.04,2016.05,2016.06,2016.07.1,2016.08.1,2016.09»: Happy New Year!␤¦«2016.10»: Formatter Later Week-year!␤¦«2016.11,2016.12,HEAD»: Earlier Is-leap-year Week-number!
brokenchicken c: 2016.09 class Z is Date {method happy{}}; say Z.^methods.map(*.name.tc).sort[11,16,29].join(" ")~"!" 15:12
committable6 brokenchicken, ¦«2016.09»: Happy New Year!
brokenchicken \o/
lizmat glot.io apparently runs moar (2016.07) 15:13
perigrin lizmat: weirdly I be they also run less. 15:13
perigrin runs away before he gets lost in terrible unix puns.
DrForr You are lost in a twisty maze of version numbers, all alike. 15:15
perigrin is lost in a twisty maze of object contructor calls 15:19
brokenchicken m: BEGIN RAKUDO_EXCEPTIONS_HANDLER=Meow; class Exceptions::Meow { method process ($e) { say "\n😿😿😿\nOh noes! $e.^name() exception!\n😿😿😿"; False } }; say s:meows/x// 15:57
camelia rakudo-moar 9994c0: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared names:␤ Meow used at line 1␤ RAKUDO_EXCEPTIONS_HANDLER used at line 1␤␤»
brokenchicken m: BEGIN %*ENV<RAKUDO_EXCEPTIONS_HANDLER>="Meow"; class Exceptions::Meow { method process ($e) { say "\n😿😿😿\nOh noes! $e.^name() exception!\n😿😿😿"; False } }; say s:meows/x// 15:58
camelia rakudo-moar 9994c0: OUTPUT«␤😿😿😿␤Oh noes! X::Syntax::Regex::Adverb exception!␤😿😿😿␤»
brokenchicken hm, weird. On my terminal the catfaces get printed as "􏿽xF0􏿽x9F􏿽x98􏿽xBF􏿽xF0􏿽x9F􏿽x98􏿽xBF􏿽xF0􏿽x9F􏿽x98􏿽xBF"
oh.. even plain print does that :S 15:59
timotimo that's what utf8-c8 creates for invalid utf8 sequences
brokenchicken hm... say "😿"; gives me "􏿽xF0􏿽x9F􏿽x98􏿽xBF" 16:00
timotimo: how to fix it?
timotimo i'm not actually sure how utf8-c8 even figures in here?
oh, it doesn't 16:02
geekosaur locale isn't UTF8?
timotimo if it were utf8-c8 for output it'd turn those back into bytes
brokenchicken If I do say "\x[1F63F]" I get the catface, but if I copy-paste it and say it, I get that garbage
geekosaur that could be your terminal (or something in between it and you, like tmux)
too many moving parts that all have to support UTF8 properly :/ 16:03
brokenchicken alright, screw it then :) 16:04
timotimo what does the .perl give you for the thing you've copypasted? 16:05
brokenchicken $ perl6 -e 'say "😿 ".perl' 16:06
"􏿽xF0􏿽x9F􏿽x98􏿽xBF "
timotimo OK, how about $*IN.read(5).perl.say and pasting it into the terminal then? 16:09
is it actually F0 9F 98 BF?
m: say "\x[F09F98BF]"
camelia rakudo-moar 9994c0: OUTPUT«===SORRY!===␤chr codepoint cannot be negative␤»
timotimo m: say Buf.new(0xF0,0x9F,0x98,0xBF).encode("utf8")
camelia rakudo-moar 9994c0: OUTPUT«No such method 'encode' for invocant of type 'Buf'␤ in block <unit> at <tmp> line 1␤␤»
timotimo m: say Buf.new(0xF0,0x9F,0x98,0xBF).decode("utf8") 16:10
camelia rakudo-moar 9994c0: OUTPUT«😿␤»
timotimo is that a cat face to you?
brokenchicken Yeah 16:11
the read thing gives me Buf[uint8].new(240,159,152,191,10)
m: say (240,159,152,191,10)».base: 16 16:12
camelia rakudo-moar 9994c0: OUTPUT«(F0 9F 98 BF A)␤»
brokenchicken fffuuuu 16:13
Wrote a doc update, hit submit "No server is currently available to service your request." -_-
raschipi ugexe: Should I use Text::Fuzzy::PP or Text::Fuzzy? 16:14
timotimo well, i have no idea what's going wrong there 16:15
brokenchicken It's fine. It may be my box that's busted. 16:16
It's a 12.04 frankenbuntu
perigrin sudo apt-get breakitalltohell
Geth oc: d0de40f93d | (Zoffix Znet)++ | doc/Programs/00-running.pod6
Describe RAKUDO_EXCEPTIONS_HANDLER

specifically the expected properties of the handler class
16:25
brokenchicken raschipi: ::PP usually stands for PurePerl, as in "slower but not needing some C lib XYZ" 16:28
raschipi brokenchicken: Yeah, already got it. The PP is much better for me, thanks.
Geth oc: edf207644c | (Zoffix Znet)++ | doc/Programs/00-running.pod6
Update --profile-filename

to include info that we can do SQL format now too
16:31
oc: f517579c16 | (Zoffix Znet)++ | doc/Programs/00-running.pod6
Fix copy-paste fail
16:33
travis-ci Doc build errored. Zoffix Znet 'Update --profile-filename 16:37
travis-ci.org/perl6/doc/builds/191683541 github.com/perl6/doc/compare/d0de4...f207644c38
travis-ci Doc build errored. Zoffix Znet 'Fix copy-paste fail' 16:38
travis-ci.org/perl6/doc/builds/191683769 github.com/perl6/doc/compare/edf20...17579c16a4
brokenchicken (github 504ing) 16:39
tbrowder www.irccloud.com/pastebin/ZJJNBEL2...-data-dump
geekosaur twitter.com/githubstatus/status/81...8452615168
tbrowder .tell ugexe see www.irccloud.com/pastebin/ZJJNBEL2...-data-dump 16:40
yoleaux tbrowder: I'll pass your message to ugexe.
brokenchicken tbrowder: works fine for me. 16:41
without any versions that paste doesn't say much. 16:42
tbrowder y'r right: perl6 version: Rakudo version 2016.12-297-g9994c09 built on MoarVM version 2016.12-104-g64e2d93 16:43
brokenchicken mine's on 2016.12-266-ged5c866 with zef version of the same date
brokenchicken doesn't see any zef updates to account for the difference 16:46
tbrowder: can you run that command with --debug flag? 16:49
zef --debug instal blah blah
tbrowder yes i will, BTW, on another host of mine running older rakudo install is ok...trying debug now... 16:50
tbrowder hm, install went ok with the --debug flag. trying uninstall and reinstall without flag 16:52
brokenchicken tbrowder: considering GitHub is currently having outtages and the warnings are from code that fetches stuff, my guess would be that's failure to fetch some github stuff. 16:54
.oO( prolly should be detected and reported to the user in some better way )
geekosaur github claims ot be back now twitter.com/githubstatus/status/81...5503442945 16:55
tbrowder ok, i must hace a New Year ghost floating around--uninstall/install went fine...thanks..forgot about github possibilities--i'll try not to be so quick to shout fire next time!
geekosaur (github glitches, watch projects freeze like frightened mice) 16:57
brokenchicken tbrowder: well, there *is* some fire. If it is due to problems with github the zef plugin handling it should've reported the issues
tbrowder ok 17:00
rje_ camelia: help 17:17
camelia rje_: Usage: <(rakudo-jvm|debug-cat|nqp-js|nqp-jvm|p5-to-p6|prof-m|rakudo-moar|nqp-moarvm|star-m|m|p56|star|p6|rm|nqp-m|r-m|nqp|sm|r|j|r-j|r-jvm|perl6|nom|nqp-q|nqp-mvm|rj|rakudo)(?^::\s(?!OUTPUT)) $perl6_program>
brokenchicken m: say "Hi, rje_!" 17:18
camelia rakudo-moar d1c2e7: OUTPUT«Hi, rje_!␤»
rje_ I forgot how to point eval at a Gist... 17:20
brokenchicken rje_: m: gist..... 17:20
rje_ m: gist.githubusercontent.com/bobbyji...madryas.p6 17:21
camelia rakudo-moar d1c2e7: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3https:7⏏5//gist.githubusercontent.com/bobbyjim/92␤ expecting any of:␤ colon pair␤»
brokenchicken rje_: just the gist, not raw or anything
rje_ ah
m: gist.github.com/bobbyjim/92bac5c1f...7091baf4a7
camelia rakudo-moar d1c2e7: OUTPUT«「Hama」␤»
brokenchicken
.oO( that looks familiar.... )
17:22
rje_ m: gist.github.com/bobbyjim/92bac5c1f...7091baf4a7
camelia rakudo-moar d1c2e7: OUTPUT«「Hama」␤Hama␤»
brokenchicken heh, why go through the gist for that? :) 17:23
rje_ say() doesn't look as human-friendly as put(). But the docs seem to say that put() is machine-friendly, and say() is human-friendly.
brokenchicken hah
perlpilot put has no .gist 17:24
rje_ Until the LP6 draft, I'd never heard of put()
brokenchicken rje_: why doesn't it look human friendly? It tells you details about the Match object, while put() just placed the .Str of it
rje_ Right, say() calls gist()
moritz rje_: it can't be perfect in every edge case
rje_ Heh.
True.
moritz rje_: if you have nested captures in a match, .gist can be *very* helpful
to figure out how exactly to index stuff to get at what you want 17:25
perlpilot I imagine that P6's say might annoy P5ers
moritz m: say 'Hama' ~~ /(.((.)(.))/'
camelia rakudo-moar d1c2e7: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in metachar:sym<( )>; couldn't find final ')' ␤at <tmp>:1␤------> 3say 'Hama' ~~ /(.((.)(.))7⏏5/'␤ expecting any of:␤ infix stopper␤ term␤»
moritz m: say 'Hama' ~~ /(.((.)(.))/
camelia rakudo-moar d1c2e7: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in metachar:sym<( )>; couldn't find final ')' ␤at <tmp>:1␤------> 3say 'Hama' ~~ /(.((.)(.))7⏏5/␤ expecting any of:␤ infix stopper␤ term␤»
brokenchicken m: put "Hamas" ~~ /(.)(.)(.)(.)(.)/
camelia rakudo-moar d1c2e7: OUTPUT«Hamas␤»
brokenchicken m: say "Hamas" ~~ /(.)(.)(.)(.)(.)/
camelia rakudo-moar d1c2e7: OUTPUT«「Hamas」␤ 0 => 「H」␤ 1 => 「a」␤ 2 => 「m」␤ 3 => 「a」␤ 4 => 「s」␤»
moritz m: say 'Hama' ~~ /(.((.)(.)))/
camelia rakudo-moar d1c2e7: OUTPUT«「Ham」␤ 0 => 「Ham」␤ 0 => 「am」␤ 0 => 「a」␤ 1 => 「m」␤»
moritz eeks
you need real newlines to make sense of it
nicq20 Hey perlpilot, when you have a minute, I sent your Git::Wrapper module some pull requests.
TimToady m: say 1..10000000000
camelia rakudo-moar d1c2e7: OUTPUT«1..10000000000␤»
TimToady m: say 1...10000000000 17:26
camelia rakudo-moar d1c2e7: OUTPUT«(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 …»
brokenchicken :D
TimToady m: put 1...10000000000
brokenchicken m: say 1...Inf
aw, crap
m: say 1..Inf
TimToady :P
brokenchicken m: put 1..Inf
camelia rakudo-moar d1c2e7: OUTPUT«(timeout)»
rakudo-moar d1c2e7: OUTPUT«(...)␤»
rakudo-moar d1c2e7: OUTPUT«1..Inf␤»
rakudo-moar d1c2e7: OUTPUT«1..*␤»
brokenchicken :o
perlpilot nicq20++ nice.
brokenchicken m: put 1..Inf 17:27
camelia rakudo-moar d1c2e7: OUTPUT«1..*␤»
brokenchicken intreresting...
rje_ Granted, say in 5.10 does exactly what I would expect.
brokenchicken lol
geekosaur m: (1..Inf).WHAT.say
camelia rakudo-moar d1c2e7: OUTPUT«(Range)␤»
brokenchicken rje_: yeah, 5.10 of an entirely different language.
s: ^1, 'put', \()
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/2561...Mu.pm#L472 17:28
brokenchicken s: ^1, 'Str', \()
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/2561...ge.pm#L379
brokenchicken ah, it got magics for infs
rje_ granted (a) p5.* <> p6.* and (b) idiom must be learned. 17:29
perlpilot nicq20: So ... I just merged your PRs, but do you want to put your own version of Git::Wrapper in the ecosystem instead of mine? I have no particular attachment to mine since I wrote it a) for play and b) to accomplish what little I needed done and I haven't looked at it much since. 17:31
rje_ m: say (<a>,<b>,<c>)
camelia rakudo-moar ce6569: OUTPUT«(a b c)␤»
rje_ m: put (<a>,<b>,<c>)
camelia rakudo-moar ce6569: OUTPUT«a b c␤»
[Coke] perlpilot: P6's say annoys some P6ers, too! :) 17:32
rje_ So "put" seems more like P5.say
brokenchicken rje_: for non-Str types, put uses the return of .Str method and say uses .gist method... the names of those methods kinda hint at type of output
rje_ I'm just trying to grab it by the horns. 17:33
brokenchicken rje_: yeah, put is the Perl 5's say
If you had 200 elements in that list above, say would've outputted just 100 of them, for example.
rje_ I'm also getting 'helpful help' from IRC. 17:34
brokenchicken rje_: what do you think of LP6 so far?
nicq20 perlpilot: Only if you want to. I'm using it for a small project, and just noticed some bugs. :)
perlpilot nicq20: I'm not using it at all, so you win! ;)
nicq20 perlpilot: Lolz, Ok. :) 17:35
rje_ brokenchicken_: I can answer that best with another gist.
m: gist.github.com/bobbyjim/92bac5c1f...7091baf4a7
camelia rakudo-moar ce6569: OUTPUT«<tmp>␤hello world␤hello world␤「Hama」␤「Hama」␤True␤Matched␤matched␤True␤ Name: .cpanm␤ Modified: 2015-12-07T14:25:48.263804Z␤ Accessed: 2017-01-02T17:15:21.018029Z␤ Changed: 2016-11-12T12:34:04.095425Z␤ …»
brokenchicken isn't sure what the answer is :) 17:36
rje_ lol that looks horrible doesn't it? OK the answer is: helpful. 17:36
brokenchicken m: dir[0].^name.say
camelia rakudo-moar ce6569: OUTPUT«IO::Path␤»
brokenchicken that .IO is useless there
m: dir[0].modified.^name.say 17:37
camelia rakudo-moar ce6569: OUTPUT«Instant␤»
rje_ The first LP book taught me Perl umpteen hundred years ago. I think this LP will help me learn P6.
brokenchicken cool :)
rje_ That's the idea anyway. 17:38
brokenchicken and the given {} I guess.
rje_ So $dir.IO is ... ah you're saying there's nothing in the block that uses IO
brokenchicken rje_: no, dir() already gives IO::Paths, so that .IO is a nop 17:39
rje_ I was cutting and pasting in stuff from the chapters.
brokenchicken and the given $dir.IO {} just aliases to $_, so toss the $dir and the given and the $dir.IO; you still got the IO::Paths in the $_
rje_ getting it. slowly. 17:40
brokenchicken and the when {} can be used anywhere, not necessarily in a given {} block. It's possible bdfoy doesn't realize that
rje_ I find I type in three or four different ways to quit the REPL before I try 'exit'.
brokenchicken CTRL+D should do it
rje_ Unix++
rje_ On OSX I might think of CTRL+D. At work, on Windows, staring at a REPL, I tend to think in text mode. 17:42
of course 'bye' is the easiest thing to think of, though it's extremely casual, but then I'm that kind of guy 17:43
brokenchicken rje_: IIRC the Ctrl+D thing is a REPL thing, so it'd work everywhere
rje_ you're probably right
for some reason my instincts lead me elsewhere
brokenchicken yup, just tried on Windows in 2016.11 release
rje_ And for goodness' sake, the first line in the REPL says....... "To exit type 'exit' or '^D'" 17:44
Do I listen? noooooo
brokenchicken m: my $pattern = rx/ Hama /; $_ = "Hd"; say $pattern ?? "wat" !! "nope"
camelia rakudo-moar ce6569: OUTPUT«nope␤»
brokenchicken m: my $pattern = rx/ Hama /; $_ = "Hamad"; say $pattern ?? "wat" !! "nope"
camelia rakudo-moar ce6569: OUTPUT«wat␤»
brokenchicken TIL we have this :/
rje_ I like ?? and !!
brokenchicken too magical for my tastest
rje_ Why do you say that? Is there some bizarre-o side effect going on that I'm unaware of? 17:45
brokenchicken I mean the .Bool on Regex in a variable matching against $_ as too magical :) 17:46
lizmat brokenchicken: for @strings { say "match" if $pattern } # sensible syntax for me
rje_ However, say $pattern is quite obscure to me.
rje_ yes 17:46
agree
I'd be scared if I had to debug someone's code that had those thingies in there.
nice lizmat 17:47
awwaiid Is there a recommended benchmark lib/tool? I'm refactoring Inline::Perl5 and want to make sure I know the tradeoff
brokenchicken There's a csv stuff we use 17:48
lizmat brokenchicken: also @strings.grep( { $pattern } )
brokenchicken huggable: csv 17:49
huggable brokenchicken, github.com/Tux/CSV (see `bench csv` for how to run bench)
lizmat but that is actually better written as: @strings.grep( $pattern ) # optimized for Regex
brokenchicken lizmat: yeah, those look less weird than this one: gist.github.com/bobbyjim/92bac5c1f...p6-L14-L15
:)
rje_ @strings.grep() is fascinating 17:50
"where's the assignment?" It's implicit. I like it. 17:51
lizmat assignment ??
awwaiid mmm. I can time the overall test suite, that'll be pretty good for now
rje_ If I Understand (IIU), @strings is populated by the grep().
brokenchicken nope 17:52
geekosaur no, it's running grep on the contents, not setting it
rje_ oh crap
okay
brokenchicken rje_: for each thing in @strings, it gets aliased to $_ inside the grep thing
rje_ @found = @strings.grep( $rex )
?
brokenchicken m: my @strings = <foo bar ber>; my @result = @strings.grep: { say "Thing is $_"; $_.starts-with: "b" }; say @result 17:53
camelia rakudo-moar 032040: OUTPUT«Thing is foo␤Thing is bar␤Thing is ber␤[bar ber]␤»
rje_ { $rex }
brokenchicken m: my @strings = <foo bar ber>; my @result = @strings.grep: { say "Thing is $_"; $_.starts-with: "b" }; say "The result is @result[]"
camelia rakudo-moar 032040: OUTPUT«Thing is foo␤Thing is bar␤Thing is ber␤The result is bar ber␤»
rje_ powerfuller
grep + map -ish
brokenchicken m: my @strings = <foo bar ber>; my @result = keys @strings ∖ <bar ber>; say @result 17:54
camelia rakudo-moar 032040: OUTPUT«[foo]␤»
brokenchicken hehe :)
rje_ what the what....
\ removes from set? 17:55
brokenchicken No, ∖ does 17:55
m: "∖".uniname.say
camelia rakudo-moar 032040: OUTPUT«SET MINUS␤»
brokenchicken perl6advent.wordpress.com/2016/12/...ggy-types/
rje_ using keys on an array....
brokenchicken nope, it's using keys on the result of @strings ∖ <bar ber> 17:56
which is a Set
rje_ yes, a hash is an array (Perl 4 taught me that), but to think of it that way...
brokenchicken Hash isn't an array :S
m: say Hash ~~ Array
camelia rakudo-moar 032040: OUTPUT«False␤»
rje_ So keys() is not a hash method... 17:57
timotimo well, in theory a hash is an array, but indexing it is quite funky. also, many implementations of hashes actually store the data off of a linked list from the array slots ... so actually hardly like an array at all.
brokenchicken rje_: keys() is a subroutine
brokenchicken feels he pushed rje_ too far in
lizmat m: my @a = ^10; say @a.keys
camelia rakudo-moar 032040: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
rje_ understood. But understand I first have to disconnect neurons that scream "KEYS FOR HASHES!"
brokenchicken How about this for something less mind blowing:
rje_ And those neurons are baked in...
brokenchicken m: sub infix:<+> { $^a - $^b }; say 2+2 17:58
camelia rakudo-moar 032040: OUTPUT«0␤»
rje_ Perl4 is not Precambrian, but it's close...
brokenchicken But see what I said above "brokenchic+│ nope, it's using keys on the result of @strings ∖ <bar ber>"
here...
rje_ ah ok yes I didn't get that far
brokenchicken m: my @strings = <foo bar ber>; my $result-set = @strings ∖ <bar ber>; my @result = keys $result-set; say @result 17:59
camelia rakudo-moar 032040: OUTPUT«[foo]␤»
brokenchicken And it doesn't make much sense for there being keys in a set in mathematical sense, but our Set objects are hashlike, with keys being objects in the set and values all being True
rje_ I think my Rakudo doesn't like \
brokenchicken It's not \, it's ∖ 18:00
rje_ uh oh
brokenchicken u: ∖
unicodable6 brokenchicken, U+2216 SET MINUS [Sm] (∖)
brokenchicken u: \
unicodable6 brokenchicken, U+005C REVERSE SOLIDUS [Po] (\)
brokenchicken You want the SET MINUS one
rje_ I see that now, but now I have to connect new neurons at the same time I'm disconnecting old ones. My brain is going to run screaming like a little girl. 18:01
brokenchicken And on SOME fonts they don't look totally identical :P
rje_ let
timotimo there's also the non-unicode variant of set minus, which is (-) 18:02
brokenchicken Ah, yeah :)
rje_ yes, just looked it up
brokenchicken The alternatives are all up here: docs.perl6.org/language/unicode_texas
rje_ that might save some brain cells
docs.perl6.org/routine/(-) 18:03
brokenchicken pfft, bran cells are overrated
rje_ m: my @foo = <foo bar baz> (-) <baz>
camelia ( no output )
timotimo brian cells?
rje_ no, bran cells. he's right.
brokenchicken You need a say or something; to print output
m: my @foo = <foo bar baz> (-) <baz>; say @foo
[Coke] I'm sure a little girl is going to be more neural plastic than you and have an easier time. :P
camelia rakudo-moar 032040: OUTPUT«[set(foo, bar)]␤»
rje_ no brain cells left; have to use bran
Coke is right
TimToady
.oO(egoless thinking)
18:04
rje_ ego is underrated
brokenchicken eggos? I love those waffles!
rje_ at least that's what ego thinks. ah, eggo thinks.
ok 18:05
where was I with sets? OK I can subtract from sets now. I'll use (-) because numeric keypads are scary.
rje_ m: my @bar = keys <foo bar baz> 18:06
camelia ( no output )
rje_ sigh
brokenchicken oh, right, I almost forgot about that
rje_ m: my @bar = keys <foo bar baz>; say @bar
[Coke] mmm, eggos.
camelia rakudo-moar 032040: OUTPUT«[0 1 2]␤»
brokenchicken s: [], 'keys', \() 18:07
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/2561...st.pm#L784
rje_ m: my @bar = <foo bar baz> (-) <bar>; say @bar
camelia rakudo-moar 032040: OUTPUT«[set(foo, baz)]␤»
brokenchicken k, .keys on a list gives you idnexes. neat 18:08
rje_ m: my @bar = <foo bar baz>; say keys @bar 18:09
camelia rakudo-moar 032040: OUTPUT«(0 1 2)␤»
rje_ duh, an array has keys. they're numeric. a hash has string indexes. I've known this forever; why should it bother me?
brokenchicken m: my @bar = <foo bar baz>; say keys @bar Z @bar
camelia rakudo-moar 032040: OUTPUT«(0 1 2)␤»
brokenchicken m: my @bar = <foo bar baz>; say (keys @bar) Z @bar
camelia rakudo-moar 032040: OUTPUT«((0 foo) (1 bar) (2 baz))␤»
rje_ Z = zip? 18:10
brokenchicken yup
m: my @bar = <foo bar baz>; say zip (keys @bar), @bar
camelia rakudo-moar 032040: OUTPUT«((0 foo) (1 bar) (2 baz))␤»
rje_ I remember that but don't quite grep it yet
m: my @foo = <foo bar>; my @bar = <bar baz>; say @foo Z @bar 18:11
camelia rakudo-moar aba04b: OUTPUT«((foo bar) (bar baz))␤»
brokenchicken It's like a zipper, as you run it it joins teeth from left and right zipper things together. So here it's the same thing, it joines elements from left and right lists together
rje_ yep
brokenchicken And you can give it some op to use
m: my @foo = <foo bar>; my @bar = <bar baz>; say @foo Z=> @bar
camelia rakudo-moar aba04b: OUTPUT«(foo => bar bar => baz)␤»
brokenchicken m: my @foo = <foo bar>; my @bar = <bar baz>; say @foo Z~ @bar
camelia rakudo-moar aba04b: OUTPUT«(foobar barbaz)␤»
rje_ hash construction
brokenchicken more-or-less. It returns a list of pairs. 18:12
m: my @foo = <foo foo foo>; my @bar = <bar bar bar>; say @foo Z~ @bar
camelia rakudo-moar aba04b: OUTPUT«(foobar foobar foobar)␤»
brokenchicken m: my @foo = <foo foo foo>; my @bar = <bar bar bar>; say @foo Z=> @bar
camelia rakudo-moar aba04b: OUTPUT«(foo => bar foo => bar foo => bar)␤»
brokenchicken m: my @foo = <foo foo foo>; my @bar = <bar bar bar>; say (@foo Z=> @bar).Hash
camelia rakudo-moar aba04b: OUTPUT«{foo => bar}␤»
brokenchicken ^ and they'd collapse in a hash
Perl 6 got Pair objects.
rje_ ok 18:20
that'll take a bit of thinking 18:21
dalek line-Perl5: 11dcf7d | (Brock Wilcox)++ | .travis.yml:
Bump rakudo version for travis
18:22
line-Perl5: 81135cf | lizmat++ | .travis.yml:
Merge pull request #86 from awwaiid/rakudo-2016.12

Bump rakudo version for travis
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) /; say @foo 18:23
camelia rakudo-moar aba04b: OUTPUT«[「Ham」␤ 0 => 「Ham」]␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) /; put @foo
camelia rakudo-moar aba04b: OUTPUT«Ham␤»
lizmat hmmm... seems a bit appropriate dalek is still doing Inline::Perl5 :-)
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham). :i (DRY) /; put @foo
camelia rakudo-moar aba04b: OUTPUT«Hamadry␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; say @foo 18:24
camelia rakudo-moar aba04b: OUTPUT«[「Hamadry」␤ 0 => 「Ham」␤ 1 => 「dry」]␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; say @foo.reverse
camelia rakudo-moar aba04b: OUTPUT«[「Hamadry」␤ 0 => 「Ham」␤ 1 => 「dry」]␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; put @foo.reverse
camelia rakudo-moar aba04b: OUTPUT«Hamadry␤»
rje_ m: say <sheet dryer>.reverse 18:25
camelia rakudo-moar aba04b: OUTPUT«(dryer sheet)␤»
rje_ m: my @foo = <sheet dryer>; say @foo.reverse
camelia rakudo-moar aba04b: OUTPUT«[dryer sheet]␤»
brokenchicken FWIW, the bot also takes /msg
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; say @foo
camelia rakudo-moar aba04b: OUTPUT«[「Hamadry」␤ 0 => 「Ham」␤ 1 => 「dry」]␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; say @foo.values 18:26
camelia rakudo-moar aba04b: OUTPUT«(「Hamadry」␤ 0 => 「Ham」␤ 1 => 「dry」)␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; say @foo.values.reverse
camelia rakudo-moar aba04b: OUTPUT«(「Hamadry」␤ 0 => 「Ham」␤ 1 => 「dry」)␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; say @foo.keys
camelia rakudo-moar aba04b: OUTPUT«(0)␤»
rje_ m: my @foo = 'Hamadryas' ~~ / (Ham) . :i (DRY) /; say @foo
camelia rakudo-moar aba04b: OUTPUT«[「Hamadry」␤ 0 => 「Ham」␤ 1 => 「dry」]␤»
rje_ m: my @foo = ('Hamadryas' ~~ / (Ham) . :i (DRY) /); say @foo 18:27
camelia rakudo-moar aba04b: OUTPUT«[「Hamadry」␤ 0 => 「Ham」␤ 1 => 「dry」]␤»
[Coke] and by "takes /msg", brokenchicken means you can experiment in private. 18:28
rje_ m: my @uwp = 'Regina 1910 A788899-C' ~~ /(\w+) (\d+) (\w+)/; say @uwp
camelia rakudo-moar aba04b: OUTPUT«[「1910」␤ 0 => 「19」␤ 1 => 「1」␤ 2 => 「0」]␤»
rje_ oops forgot whitespace thingy 18:29
rje_ m: my @uwp = 'Regina 1910 A788899-C' ~~ rx/(\w+) (\d+) (\w+)/; say @uwp 18:29
camelia rakudo-moar aba04b: OUTPUT«[「1910」␤ 0 => 「19」␤ 1 => 「1」␤ 2 => 「0」]␤»
brokenchicken rje_: do you mind doing this in /msg to the bot or in REPL? The 327 people in this channel likely aren't that interested in repeated execution of a regex...
rje_ Sorry 18:30
pmurias nqp-m: my $op := QAST::Op.new(:name<null>); say(nqp::istype($op, QAST::Children)); $op.name("foo"); say(nqp::istype($op, QAST::Children)); 18:52
camelia nqp-moarvm: OUTPUT«1␤1␤»
pmurias nqp-m: my $op := QAST::Op.new(:name<null>); say(nqp::istype($op, QAST::Children)); $op.name("foo"); $op.named("foo"); say(nqp::istype($op, QAST::Children));
camelia nqp-moarvm: OUTPUT«1␤0␤»
pmurias ^^ this seems like a bug
nqp-j: my $op := QAST::Op.new(:name<null>); say(nqp::istype($op, QAST::Children)); $op.name("foo"); $op.named("foo"); say(nqp::istype($op, QAST::Children));
Geth oc: fe34000c72 | (Zoffix Znet)++ | doc/Programs/00-running.pod6
List default of RAKUDO_MAX_THREADS
19:02
[Coke] wonders if anyone (aside from [particle] who I haven't seen in years) has setup a DBA or something for Perl 6 support (more in preparation than anything else since there isn't a large footprint out there needing services yet)
brokenchicken wonders what DBA is....
[Coke] "doing business as". or incorporated, or other-wise set up a company. 19:03
masak oh! didn't know that meaning of DBA. 19:09
there's also a :dba directive inside Perl 6 grammars, where it also means "doing business as" 19:10
IIUC it's used to give more cogent error messages when a mismatch happens
of course, in the rest of IT it means "database administrator"... :P
geekosaur depends on the kind of company 19:11
perigrin and the location you're setting the company up in 19:13
mspo DBA depends on context :)
bu twhen I said it the other day I was talking about Doing-Business-As in relation to ICANN
(assuming that was in this channel)
perigrin [Coke]: at a guess I'd say "no more than there is for Perl 5"
perigrin [Coke]: if nothing else I can think of a few companies that would be willing to take it on if the work presented itself. 19:16
grondilu Hello, #perl6. Question: how can I search voyels, including those with diacritics (e.g. àéèù etc.) 19:17
?
brokenchicken grondilu: wouldn't those be different, depending on the language?
You mean just the aeuoi with any mark, you can use :ignoremark adverb 19:18
grondilu well, I suppose. I'm interested in French.
brokenchicken m: .say for "àéh2è34ùaoauzb".match: :g, :ignoremark, /<[aeuoi]>/ 19:19
camelia rakudo-moar 232641: OUTPUT«「a」␤「o」␤「a」␤「u」␤»
grondilu m: say "été" ~~ m:ignoremark/e/;
camelia rakudo-moar 232641: OUTPUT«「é」␤»
grondilu nice
brokenchicken :(
huf isnt french full of odd multi-letter ways to spell vowels?
or is that a can of worms we dont want to touch right now? :)
brokenchicken s: "àéh2è34ùaoauzb", 'match', \(:g, :ignoremark, /<[aeuoi]>/)
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/fe89...tr.pm#L945
brokenchicken has trouble understanding that code :( 19:21
s: /<[aeuoi]>/, 'CALL-ME', \('g', True, %(:ignoremark))
SourceBaby brokenchicken, Something's wrong: ␤ERR: Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/main.nqp')␤ at <unknown>:1 (/home/zoffix/services/sourceable/building-perl6/perl6.moarvm:<dependencies+deserialize>)␤
grondilu thing is, I was reading a French wp article about "art of memory": fr.wikipedia.org/wiki/Mn%C3%A9motechnique. I'd like to use /usr/share/dict/french and Perl 6 to make a program that takes a number as input and returns a list of words encoding it.
I think the hassle/usefulness ration would be less than 1 but I'm not sure. 19:22
*ratio
brokenchicken s: /<[aeuoi]>/, 'CALL-ME', \('g', True, %(:ignoremark)) 19:23
SourceBaby brokenchicken, Something's wrong: ␤ERR: Could not find candidate that can do \("g", Bool::True, {:ignoremark})␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29␤ in block <unit> at -e line 6␤␤
brokenchicken s: /<[aeuoi]>/, 'CALL-ME', \('g', True, :ignoremark)
SourceBaby brokenchicken, Something's wrong: ␤ERR: Could not find candidate that can do \("g", Bool::True, :ignoremark)␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29␤ in block <unit> at -e line 6␤␤
brokenchicken s: /<[aeuoi]>/, 'CALL-ME', \('g', True, "ignoremark", True)
SourceBaby brokenchicken, Something's wrong: ␤ERR: Could not find candidate that can do \("g", Bool::True, "ignoremark", Bool::True)␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29␤ in block <unit> at -e line 6␤␤
brokenchicken :(
raschipi u:        19:26
unicodable6 raschipi, Found nothing!
grondilu m: say "foo".subst: /(.) ** 2..*/, $0; 19:32
camelia rakudo-moar 232641: OUTPUT«Use of Nil in string context␤ in block <unit> at <tmp> line 1␤␤»
grondilu m: say "foo" ~~ /(.) ** 2..*/;
camelia rakudo-moar 232641: OUTPUT«「foo」␤ 0 => 「f」␤ 0 => 「o」␤ 0 => 「o」␤»
brokenchicken m: say "foo".subst: /(.) ** 2..*/, -> $/ { $0 };
camelia rakudo-moar 232641: OUTPUT«f o o␤»
brokenchicken m: say "foo".subst: /(.) ** 2..*/, { $_[0] }; 19:33
camelia rakudo-moar 232641: OUTPUT«f o o␤»
brokenchicken Your way you're using the current $0, not the one that'll be produce during matching.
grondilu indeed
I'm not sure why f is a match though
m: say "foo" ~~ /. ** 2..*/; 19:34
camelia rakudo-moar 232641: OUTPUT«「foo」␤»
grondilu oh
silly me
how do I state "a letter repeating itself"?
timotimo don't we have something like ww for that?
otherwise backreference with $0 and friends
brokenchicken m: say "baac dddd" ~~ m:g/<ww>/ 19:35
camelia rakudo-moar 232641: OUTPUT«(「」␤ ww => 「」 「」␤ ww => 「」 「」␤ ww => 「」 「」␤ ww => 「」 「」␤ ww => 「」 「」␤ ww => 「」)␤»
brokenchicken m: say "baac dddd" ~~ m:g/<!ww>/
camelia rakudo-moar 232641: OUTPUT«(「」 「」 「」 「」)␤»
brokenchicken m: say "baac dddd" ~~ m:g/.<ww>/
camelia rakudo-moar 232641: OUTPUT«(「b」␤ ww => 「」 「a」␤ ww => 「」 「a」␤ ww => 「」 「d」␤ ww => 「」 「d」␤ ww => 「」 「d」␤ ww => 「」)␤»
brokenchicken m: say "baac dddd" ~~ m:g/.<!ww>/
camelia rakudo-moar 232641: OUTPUT«(「c」 「 」 「d」)␤»
grondilu this is obscure to me 19:37
brokenchicken nah, ignore it
it's not-word-boundary IIRC
pmurias is a NQPClassHOW allowed to have parents that are not NQPClassHOW?
brokenchicken m: say "foo".subst: /(.)$0+/, { $_[0] }; 19:38
camelia rakudo-moar 232641: OUTPUT«fo␤»
brokenchicken m: say "foooooosssssss".subst: :g, /(.)$0+/, { $_[0] };
camelia rakudo-moar 232641: OUTPUT«fos␤»
brokenchicken m: say "foooooosssssss".subst: :g, /(.))>$0+/, {$_};
camelia rakudo-moar 232641: OUTPUT«foooooosssssss␤»
brokenchicken :( 19:39
m: say "foooooosssssss".subst/(.))>$0+/, {~$_};
camelia rakudo-moar 232641: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix call␤at <tmp>:1␤------> 3say "foooooosssssss".subst/(.7⏏5))>$0+/, {~$_};␤»
brokenchicken m: say "foooooosssssss".subst: :g, /(.))>$0+/, {~$_}; 19:40
camelia rakudo-moar 232641: OUTPUT«foooooosssssss␤»
brokenchicken :/
oh right
m: say "foooooosssssss".subst: :g, /(.)<($0+/, "";
camelia rakudo-moar 232641: OUTPUT«fos␤»
brokenchicken \o/
grondilu nicely done 19:41
I have no idea what <( means though
brokenchicken capture boundary 19:41
like \K in Perl 5 for )>; except we also have <(
m: say "foooooosssssss".comb.squish.join
camelia rakudo-moar 232641: OUTPUT«fos␤»
mr_ron Looking for feedback on a new module github.com/ronaldxs/Perl6-US-ASCII. If there are other/better places for such discussion please say ... I was directed here from another chan
grondilu oh yeah, that's pretty smart
brokenchicken mr_ron: that distro is broken. Your META file is missing some of the files in lib/ 19:43
m: "foooooosssssssooooossssooooss".comb.squish.join.say
camelia rakudo-moar 232641: OUTPUT«fososos␤»
mst brokenchicken: github.com/perl6/doc/commit/ade320...t-20472280
grondilu oh yeah squish can be used indeed
brokenchicken m: "foooooosssssssooooossssooooss".comb.squish.join.say; say now - INIT now 19:44
camelia rakudo-moar 232641: OUTPUT«fososos␤0.00346733␤»
brokenchicken m: for ^1000 { "foooooosssssssooooossssooooss".comb.squish.join.say }; say now - INIT now
camelia rakudo-moar 232641: OUTPUT«fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososos␤fososo…»
brokenchicken >_<
m: for ^1000 { "foooooosssssssooooossssooooss".comb.squish.join }; say now - INIT now
camelia rakudo-moar 232641: OUTPUT«0.1059373␤»
brokenchicken m: for ^1000 { "foooooosssssssooooossssooooss".subst: :g, /(.))>$0+/, "" }; say now - INIT now
camelia rakudo-moar 232641: OUTPUT«0.5617486␤»
brokenchicken neat, squish is faster too!
mst: surprised to see teh name of the author of that commit. I have zero recollection of writing that. 19:46
mst brokenchicken: maybe you'll have better luck remembering after you rewrite it? :P 19:47
brokenchicken mst: I've no idea what that channel is for... Should that commit just be removed from docs?
mst probably not
er, that channel is for the toolchain. it's where compunitrepository, zef, etc. get discussed normally
brokenchicken Oh, I'd no idea :)
mst similar to irc.perl.org's #toolchain covering CPAN.pm, Makefile.PL, Build.PL etc.
brokenchicken You seem to have a good idea of what it should say... you got the commit bit, right? :) 19:48
Sent you an invite 19:49
to perl6 org
mst oh dear 19:50
brokenchicken ^_^
mst but, yes, I suppose I can attempt to rewrite it
brokenchicken mst++ thanks
mst it's becoming increasingly apparent that you've no idea what you're talking about, so if you review the results to compensate for my having no idea how to write documentation the end result hopefully will make us both look smarter than we actually are :D 19:51
brokenchicken :)
grondilu any French person here? I'm wondering if it's possible to write a regex that would distinguish a 'c' pronounced 's' and a 'c' pronounced 'k' 19:53
probably doable but tough 19:54
raschipi Does it have anything to do with the way vowels are placed arond it?
arnsholt I think that should actually be doable
grondilu yes
arnsholt French orthography is terrible and atrocious in many ways, but IIRC the c is quite deterministic 19:55
grondilu there are quite a few rules. Not many exception, but still lots of rules
arnsholt At least c before vowel
grondilu but if the voyel is 'e', then it's pronounced 's' I think 19:56
raschipi Ça va.
arnsholt [aou] gives k, [eiy] gives s
grondilu I'm French but I'm actually not sure there is any case where the 'c' is pronounced 'k' before a 'e' 19:56
arnsholt Pretty sure there isn't 19:57
(I'm a foreigner, so we had to drill this shit =)
In fact, I'm not sure if French phonotactics are all too happy with a back consinant like /k/ and then a front vowel like /e/ 19:58
mr_ron brokenchicken: added one more module to provides in META6.json (not sure if right place). Installs with zef on my system now.
arnsholt And I think c before consonant will generally be k
grondilu that's almost certain indeed 19:59
arnsholt And the k before [aou] is pretty set as well, because you use the cedilla when you want it to be s
grondilu eventually googles it and finds www.maxicours.com/se/fiche/7/1/13971.html 20:00
also fr.wikipedia.org/wiki/C_(lettre)#Fran.C3.A7ais 20:01
I should be able to write this mnemotechnic program I'm thinking of, but it will require some work.
arnsholt Right, so no objections to our rules there then
Although the "zinc" example is interesting 20:02
Didn't think of word-final c
grondilu yeah I forgot those
arnsholt For your purposes, you can probably ignore the distinction between g and k
grondilu I doubt it, it seems important for the purpose. 20:03
oh wait actually you're right, Q, K Gu all code the number 7 20:04
(that's convenient)
arnsholt grondilu: Well, I have no idea what you need this for, so I'm just guessing at this point =) 20:05
mr_ron Looking for feedback on fitness of US-ASCII module for ecosystem. If no other objection will add it I guess. 20:06
brokenchicken Add it :) 20:08
jdv79 mr_ron: what does it do?
and where is it
mr_ron github.com/ronaldxs/Perl6-US-ASCII
travis-ci Doc build passed. Zoffix Znet 'List default of RAKUDO_MAX_THREADS' 20:13
travis-ci.org/perl6/doc/builds/191728118 github.com/perl6/doc/compare/f5175...34000c721d
brokenchicken m: say "à".match: /:ignoremark <[aeuoi]>/ 20:27
camelia rakudo-moar 232641: OUTPUT«「à」␤»
brokenchicken Earlier where it didn't work above... :ignoremark and :ignorecase need to be inside regex, as they affect how it's compiled.
(or on the rx//, m//, s///, S/// thing) 20:28
jnthn mr_ron: Just had a quick glance at the module; I think putting those tokens in a role would be more natural
So they're easily composed into other grammars
mr_ron jnthn: will do but don't understand why role is better than simple inheritance ?? 20:29
jnthn Because if I am composing my grammar out of various pieces I'll have a chance to find out about conflicting tokens
Whereas with inheritance I get...whatever is first in the C3 MRO 20:30
Which is less simple to reason about :)
dugword inheritance is fine when you have a single sub class, but it gets really murky and awful once you start doing multiple inheritance. Roles are much more easy to compose
mr_ron thanks ... will try to research further and make the needed changes 20:31
dugword www.youtube.com/watch?v=cjoWu4eq1Tw A good video on the subject. He uses perl5 moose but the object system in perl6 is very similar 20:32
arnsholt "Not as advanced as the stuff Damian or jnthn puts out, but also not as funny." ^.^ 20:34
mst mr_ron: because a role is simpler than inheritance. 20:38
DBIx::Class leans very heavily on the C3 MRO, and it's a ridiculously powerful approach, but roles are much easier to reason about and debug 20:39
arnsholt Given that Ovid just mentioned C3 in that video: "I find [it] about as useful as an icepick on the Titanic" =) 20:40
Possibly with a "usually" mixed in
samcv do we have a good YAML parser?
i saw there is one but I have not used it yet
mst arnsholt: well, yeah, he had a lot of trouble understanding roles, and C3 is significantly harder 20:41
I've seen classes he wrote that compose in ten or fifteen roles, all of which are just bags of utility functions
those are ... interesting to unpick 20:42
usually into a mixture of imported subroutines and delegation to sub-objects
jnthn samcv: I used it in $dayjob project. My main complaint is that it's not got good error reporting.
arnsholt Ow. That sounds a bit over-eager in its application of roles =) 20:43
samcv 0 bytes to the right of the data structure. uhm.
arnsholt samcv: Just outside of the bounds
jnthn So if you write correct YAML life is good. :P
samcv ok then i know what the problem probably is
mst arnsholt: yeah, I mean, it's a common programmer failure mode
I mean, perl5 programmers usually have a stage where they go "ooh lots of syntax, let's use as much of it as possible" 20:44
then they discover Moose and try and meta ALL the things
samcv i think this cropped up when I stopped using an int i in the loop and declared it above. and iterated down instead of up
arnsholt True, true
samcv so that makes sense
RabidGravy ah, arnsholt github.com/arnsholt/Net-ZMQ/pull/9 if you have a moment
mst I didn't fall down that particular rathole with roles, but I've fallen down most of the others
and by the time I got to roles, I modeled them as 'C3 MI except comprehensible' so I suspect I'd already shot my foot off a couple times with MI and that informed my choices 20:45
samcv yeah this ASAN report it's 8 bytes and 0 to the right, so it's probably accessing the pointer. 20:46
would be nice if ASAN said, XX is starts 0 bytes to the right of YYY 20:47
would be more clear
DrForr Interesting buglet I just caught - Errors that are truncated like "List ($(Long::Type::Nam...)" don't balance thei parens. 20:53
Should "really" be "List ($(Long::Type::Nam...))" IMO, at least to keep editors happy. 20:54
moritz the times we live in... today we needed a MicroSD card for a mobile phone, just to get some pictures to a cheap feature phone. My wife asked what size, and I said "the smallest. Or cheapest" 20:55
she came back with a 32GB MicroSD card, because it was the cheapest. 5€.
DrForr Scare-quotes around "really" because of course that requires the truncator to be much smarter, and balance its output when "needed". 20:56
moritz and I remember when I first had my own computer, with only floppy discs to exchange data between my PC and the PC with internet access
RabidGravy yeah, I've got a bowl here full of 2GB ones,
DrForr They give away 32G cards in the RPi bags, back when I was buying my DSLR I only got an 8Gb because it was the largest I could afford. 20:57
RabidGravy I tried to get am 8GB usb drive a few weeks ago, no deal, had to get a 32
RabidGravy on the other hand I do have at least one device that balks at a 16GB CF card, which is a pain as the 4GB ones are hard to get and more expensive 21:01
Geth cosystem: nicqrocks++ created pull request #286:
Take over Git::Wrapper
21:02
cosystem: d9501a37fb | Nic++ | META.list
Take over Git::Wrapper (#286)

Given permission by @perlpilot, (see: irclog.perlgeek.de/perl6/2017-01-13#i_13915698) I would like to take over maintenance of the Git::Wrapper module.
samcv why is lenovo's site always broken…
jdv79 so it looks like i have supply { loop { emit() } } and emit doesn't seem to do anything 21:21
but remove the loop {} and it works
brokenchicken umm.. what does it emit? 21:24
El_Che are all modern democracies about delegating power to a prince for a time? 21:25
brokenchicken like what's the actual code 21:26
El_Che oops 21:27
jdv79 i'm golfing it
El_Che ignores El_Che
jdv79 oh, i think its because its .act'ed 21:32
and the loop never ends
i lifted the loop and used .tap and it seems happier. thanks . 21:33
brokenchicken Why would that matter?
it's only executed until an emit 21:34
[Coke] rant: can't easily convert comments on commits into github tickets. 21:36
mst: converted your comment into a ticket so someone can act on it.
mst [Coke]: ta 21:39
[Coke]: I think I got 'well volunteered' for it, but that doesn't mean I'll get to it soon
[Coke] eh, seems like one of the easier tickets, I may get to it this weekend. 21:40
[Coke] might need to install some sort of VM so he's not crippled by $DAYJOB's security stuff.
(makes working on doc stuff SUPER slow.)
¿⋊ᴚOM SIH⊥ SƎO◖ 21:42
aha! I can paste in unicode if I'm using tmux, but not when doing tmux -CC
mspo [Coke]: a lot of corp/windows virus scanners have excluded directories 21:43
[Coke]: if you find the config you can put everything in the excludes and things speed way up
at least assuming it's doing the mcaffee read-every-IO-op thing 21:44
brokenchicken I have the strangest of problems: I'm failing at turning on the air conditioner because the motor is frozen solid. 21:51
jnthn If it's so cold, why do you need air conditioning? Or does the conditioner also provide heating? 21:53
timotimo just make it cool the outside 21:55
brokenchicken Haha! Because the heating in my apartment is so damn hot that sometimes it's way too hot in my bedroom, despite the balcony window and doors open... So how come I don't just open a window in my bedroom? It's cause there's barely any window sil on it and I'm on the 8th floor, with a parking lot below it. Fearing the aircon would fall out, I essentially glued it into the window with expanding foam. So what the
hell was I thinking when I did that? I thought, "hey, the 'fan-only' setting on this aircon surely sucks the air from the outside" but no, the fan-only setting just circulates the air inside for no reason.
So once in a while I run the aircon in my room for a few minutes, but last night I forgot about it and it ran for awhile, generating a lot of condensation that now froze :P 21:56
I managed to make it turn now, but looks like there's a chunk of ice on the fan, making it unbalanced and noisy :P
timotimo yikes 21:57
samcv ok I fixed ASAN 22:02
oops wrong room
jeepc Hi, I still have a question on perl6 grammar. I have an issue with simple quote. My testcase is gist.github.com/anonymous/fa686cee...f5d9116a5. I don't understand why simple quote are not captured by the regex <expr2txt> defined as {:s .+} 22:04
I tried to give complete explanation with the code ... 22:05
Thanks for your help.
brokenchicken jeepc: prolly 'cause rules don't backtrack. Change expr2 from rule to regex 22:09
brokenchicken recalls a wise voice saying backtracking in grammars is a smell... 22:09
jeepc Many thanks. 22:10
I'm checking.
Of course, this is perfect. Many thanks for your quick help. 22:12
DrForr As a side note - I'd generally stick with {rule,token} names inside a grammar, just as a style thing.
And [<foo>]* is easie to write as <foo>*. 22:13
jeepc You are right
DrForr In the longer term, <expr1> and <expr2> will probably merge into one term. 22:17
moritz and if you want to parse a quoted string, the inside usually parses as <-[$delimiter]>* 22:25
much better than .+ and backtracking
jdv79 brokenchicken: youre right. it was something else that got changed indirectly. 23:22
samcv how do you define new methods for lets say the Str type? 23:37
lizmat m: augment class Str { } 23:38
camelia rakudo-moar 0ffce7: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤augment not allowed without 'use MONKEY-TYPING'␤at <tmp>:1␤------> 3augment class Str7⏏5 { }␤ expecting any of:␤ generic role␤»
lizmat m: use MONKEY-TYPING; augment class Str { } 23:39
camelia ( no output )
samcv ok cool :)
brokenchicken perl6.party/post/Hacking-on-Rakudo-...x-Your-Fix # seems topical 23:45
samcv where is JSON::Faster 23:52
hah. trying to dump 10MB of data is slow :P
i don't need json can be anything… i suppose i could just like use a data dumper instead 23:53
what's the fastest data dumper module?
AlexDaniel o/ 23:54
woah… what a day
brokenchicken What makes it whoahy? 23:57