»ö« 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 | ||
00:02
cpage_ joined
00:03
Ven joined
00:06
curt_ left,
cpage_ left
00:11
cale2 left
00:19
Actualeyes left
00:22
Ven left,
drrho left
00:23
Ven joined
00:27
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg,
skids joined
00:29
cpage_ joined
00:30
drrho joined
00:33
wamba left,
cpage_ left
00:37
Ven left
00:38
Actualeyes joined
00:40
cpage_ joined
00:42
shayan_ left
00:44
Ven joined
|
|||
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 | ||
00:48
pyrimidine joined
00:50
Ven left
|
|||
timotimo | nice work | 00:50 | |
samcv | timotimo, any idea how long we would deprecate it? | 00:52 | |
i don't really care, just curious | |||
00:52
pyrimidine left
|
|||
samcv | don't think anybody is using them | 00:54 | |
00:55
inra joined
|
|||
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 | |||
00:57
drrho left
|
|||
TimToady | quick, deprecate the deprecation message, so we can get rid of it in 6.e! | 00:58 | |
samcv | haha | ||
00:59
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
samcv | nqp-j: say("\c[BELL]") | 01:00 | |
nqp-jvm: say("\c[BELL]") | |||
camelia | nqp-jvm: OUTPUT«Error occurred during initialization of VMCould 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 | |
01:02
TEttinger left
01:04
drrho joined
01:15
Actualeyes left
01:16
shayan_ joined
01:17
jonadab left
01:19
inra left
01:23
Ven joined
01:24
shayan_ left
01:26
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
01:32
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
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 | ಠ_ಠ | ||
01:36
pyrimidine joined,
Ven left
01:38
Actualeyes joined
|
|||
[Coke] | no, pugs didn't use nqp | 01:41 | |
01:44
Ven joined
01:45
pyrimidine left
01:50
leego left,
leego joined,
cdg left
01:52
Ven left,
ssotka left
01:55
leego left,
leego joined
01:58
pyrimidine joined
02:01
FROGGS_ joined
02:02
pyrimidine left
02:03
telex left
02:04
telex joined
02:05
FROGGS left
02:10
pyrimidine joined
|
|||
samcv | m: my $pair = 'value' => 'thing'; my %var; %var{$pair} = 'test'; say %var.perl | 02:14 | |
camelia | rakudo-moar f10b09: OUTPUT«{"value\tthing" => "test"}» | ||
02:14
pyrimidine left
|
|||
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 | |||
02:23
Ven joined
|
|||
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 | ||
02:27
kalkin- joined
|
|||
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"}» | ||
02:27
telex left
|
|||
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 | |
02:30
user_ left
|
|||
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 declaredat <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 | ||
02:34
labster left
|
|||
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 | |
02:37
Ven left
|
|||
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) | ||
02:40
astj left
|
|||
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 | |||
02:42
astj joined
|
|||
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]} } … … … … :) | ||
02:42
Ven joined
02:43
telex joined
|
|||
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 | ||
02:43
cpage_ left
|
|||
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 | ||
02:46
ilbot3 left
|
|||
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 | |
02:48
ilbot3 joined
02:51
Ven left,
astj_ joined
02:52
astj left
02:53
tardisx joined,
tardisx left
|
|||
skids | Hrm, not much in synopsis.. | 02:54 | |
02:55
tardisx joined
|
|||
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 | ||
02:59
cpage_ joined
|
|||
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. | ||
03:02
Actualeyes left
|
|||
committable6 | AlexDaniel, gist.github.com/99fca641812dae4b2c...5f3d405527 | 03:02 | |
03:03
Ven joined
|
|||
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 | |
03:04
Ven left
|
|||
skids | But, I cannot explain that hash slice behavior at all... probably that area of code is rather full of NYIs. | 03:05 | |
03:05
ggoebel left
|
|||
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 | |
03:14
labster joined
|
|||
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… | ||
03:18
ggoebel joined
|
|||
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 | |
03:20
pyrimidine joined
03:21
xtreak joined
|
|||
skids | Oh right, hypers tree. | 03:21 | |
but... why no .succ on the Strs. | |||
03:22
skids left,
skids joined
|
|||
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 | ||
03:23
Ven joined
|
|||
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 | ||
03:25
pyrimidine left
|
|||
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 | |||
03:30
newbie1 left
03:35
cpage_ left
|
|||
AlexDaniel | it just cannot do it in one go | 03:35 | |
03:36
Ven left
|
|||
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)})})}» | ||
03:37
cpage_ joined
|
|||
samcv | perfect AlexDaniel++ | 03:37 | |
03:38
hartshorn joined
|
|||
skids wonders how that works without any <-> or "is rw" on the subs. | 03:38 | ||
03:39
hartshorn left
03:40
cpage_ left,
hartshorn joined
|
|||
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 | ||
03:42
Ven joined
|
|||
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. | ||
03:46
TEttinger joined
03:51
Ven left
03:52
notostraca joined
03:53
TEttinger left,
cpage_ joined
03:54
cpage_ left
|
|||
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 | |
03:57
notostraca left
|
|||
skids | Oh, unary hypers do tree lists. | 03:57 | |
That makes better sense. | |||
03:58
shayan_ joined
|
|||
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. | ||
04:02
Ven joined
04:04
Ven left
|
|||
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? | |||
04:07
TEttinger joined
|
|||
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 | |||
04:16
hartshorn left
|
|||
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 | ||
04:22
Ven joined
|
|||
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 | ||
04:26
Actualeyes joined
|
|||
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]}» | ||
04:32
shayan_ left,
shayan_ joined
|
|||
skids | I'm kinda too tired to try to write that. | 04:35 | |
04:38
Ven left
04:40
cpage_ joined
04:41
labster left
04:43
Ven joined
04:46
faraco joined
|
|||
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 | |||
04:52
Ven left
|
|||
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. | |||
05:03
Ven joined
|
|||
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 | |||
05:05
pyrimidine joined
05:07
Ven left
05:09
faraco left
|
|||
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 | |||
05:10
pyrimidine left
05:12
khw left,
bwisti left
05:14
dugword left
|
|||
samcv | i'll just make one that will apply the supplied hash to the main hash or whatever | 05:15 | |
05:22
Ven joined
05:31
skids left
05:37
Ven left
05:41
Cabanossi left
05:42
Ven joined
05:44
Cabanossi joined,
BenGoldberg left
05:49
dugword joined
05:51
Ven left
|
|||
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 -eCalling 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 | ||
06:02
Ven joined
|
|||
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. | ||
06:07
Ven left
|
|||
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. | ||
06:12
kyan left
06:14
pyrimidine joined
06:18
pyrimidine left
06:19
Tonik joined
06:20
RabidGravy joined
06:21
shayan_ left
06:22
Ven joined
06:25
Ven left
06:30
bjz joined
06:42
Tonik left
06:44
bjz left
06:45
AlexDaniel left
06:48
pyrimidine joined
06:51
xtreak left
06:52
pyrimidine left
06:54
xtreak joined
06:57
darutoko joined
06:59
bjz joined
07:00
pyrimidine joined
07:04
labster joined,
pyrimidine left
07:05
labster left
07:06
labster joined
07:08
domidumont joined
07:14
domidumont left
07:15
domidumont joined
07:21
wamba joined
07:28
isacloud left
07:29
geekosaur left,
geekosaur joined,
leego left,
JimmyZ left,
JimmyZ joined,
thayne joined
07:30
ihab left,
kipd left,
huggable left,
buggable left,
ilmari left,
plicease left,
hobbs left
07:31
plicease joined
07:32
ilmari joined
07:33
kipd joined
07:34
ihab joined
|
|||
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 | ||
07:35
leego joined
07:36
hobbs joined,
hobbs left,
hobbs joined,
geekosaur left
07:37
isacloud joined
07:38
geekosaur joined
07:41
pyrimidine joined,
kst left
07:42
fluca1978 joined
07:43
kst joined
07:45
pyrimidine left
07:50
fluca1978 left
07:56
geekosaur left,
fluca1978 joined
07:57
leego left
|
|||
fluca1978 | sorry for this trivial question, but why is the dist manager named 'panda'? | 07:57 | |
07:58
geekosaur joined
|
|||
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 | ||
08:02
kst left
|
|||
moritz | the previous generations of module installers were called "proto" (because it was a protoype), and "neutro" (logical successor to "proto") | 08:02 | |
08:04
geekosaur left,
leego joined,
Sgeo joined,
[particle] left,
kst joined
08:05
geekosaur joined,
[particle] joined
08:09
abraxxa joined
|
|||
labster | panda: perl archive network done again | 08:10 | |
Not official, but close enough ;) | |||
08:11
pyrimidine joined
08:14
ufobat joined
08:18
pyrimidine left,
abraxxa left
08:20
kst left
|
|||
samcv | hah | 08:21 | |
08:22
dugword left,
xtreak left
|
|||
moritz | PANDA = Panda Aint' No Darn Acronoym | 08:22 | |
08:23
kst joined
|
|||
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 | |
08:25
xtreak joined
|
|||
fluca1978 | thanks tadzik | 08:31 | |
08:31
ufobat left
|
|||
tadzik | oh, so it's just my tab-completion acting up :) | 08:32 | |
08:33
abraxxa joined
|
|||
DrForr | No, they named the dog Indy :) | 08:36 | |
(movie ref, in case that's necessary.) | 08:39 | ||
08:45
bjz_ joined
08:46
bjz left
08:51
dilksinator joined
08:52
wamba left,
sQuEE` joined
|
|||
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. | |||
08:59
astj joined,
astj_ left
09:01
zakharyas joined
09:08
pyrimidine joined
|
|||
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 | |
09:10
dilksinator left
09:12
pyrimidine left
09:24
bjz joined
09:25
bjz_ left
09:29
espadrine joined
09:33
xtreak left
09:35
xtreak joined
09:42
cschwenz joined
09:43
wamba joined
09:49
pyrimidine joined
09:54
pyrimidine left
09:56
dha joined
09:57
dha left
09:59
xtreak left
10:00
bjz left
10:04
Actualeyes left
10:05
espadrine left,
rindolf joined
10:07
pyrimidine joined
10:10
cdg joined,
labster left
10:11
cdg left,
pyrimidine left,
bjz joined,
cdg joined
10:15
bjz left,
bjz_ joined,
labster joined
10:19
xtreak joined
10:26
g4 left
10:29
g4 joined,
g4 left,
g4 joined
10:30
fluca1978 left
10:36
pyrimidine joined,
rindolf left
10:40
pyrimidine left
10:44
bjz joined
10:45
bjz_ left
10:51
pyrimidine joined
10:53
cschwenz left
10:56
pyrimidine left
11:03
pyrimidine joined
|
|||
brokenchicken | . | 11:03 | |
yoleaux | 06:04Z <samcv> brokenchicken: I updated IRC::TextColor. can now do ircstyle('text', :bold, :green) | ||
11:06
Actualeyes joined
11:07
darutoko left,
pyrimidine left,
labster left,
pyrimidine joined
11:12
raschipi joined,
pyrimidine left
|
|||
brokenchicken | m: (^0x110000).grep(/ <:Digit> /).elems.say | 11:12 | |
camelia | rakudo-moar 0c5a58: OUTPUT«0» | ||
11:12
CluelessProgramm joined
|
|||
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)» | ||
11:14
CluelessProgramm left
|
|||
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 | |
11:16
xtreak left
|
|||
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 | |
11:19
xtreak joined
|
|||
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 characterat <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 MARKERat <tmp>:1------> 3say "\c[BYTE ORDER MARKER7⏏5]"» | ||
11:25
pmurias joined
|
|||
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 | ||
11:37
geekosaur left
11:39
geekosaur joined,
xtreak left
11:43
fluca1978 joined
11:47
cdg_ joined
|
|||
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 | |
11:50
cdg left
|
|||
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)? | ||
11:51
astj left,
astj joined
|
|||
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 | |||
11:52
pyrimidine joined,
Ven joined
|
|||
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 | |
11:53
Actualeyes left
|
|||
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 | ||
11:56
pyrimidine left
|
|||
samcv | that's neat | 12:00 | |
12:00
rindolf joined
12:02
cdg_ left
|
|||
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 | |
12:08
Ven left
|
|||
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 | ||
12:09
fluca1978 left
|
|||
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 | ||
12:11
Ven joined
|
|||
jnthn | lunch & | 12:13 | |
12:15
Actualeyes joined
|
|||
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 | |
12:20
wamba left
|
|||
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 | ||
12:20
ufobat joined
|
|||
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 | |
12:23
Ven left
12:31
pyrimidine joined,
Ven joined
12:35
pyrimidine left
12:37
Ven left
12:39
sammers left
12:46
newbie1 joined
12:50
Ven joined
12:52
sammers joined
12:58
literal joined
13:18
bjz left
|
|||
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 | ||
13:42
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
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 | ||
13:50
pyrimidine joined
13:54
Grauwolf joined
13:56
pyrimidine left
14:07
aborazmeh left,
thayne left
14:08
pyrimidine joined
14:12
pyrimidine left
14:22
cpage_ left
14:24
cdg joined
14:31
skids joined
|
|||
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 :-) | ||
15:05
pyrimidine joined
|
|||
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)» | ||
15:09
curt_ joined
|
|||
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 | |
15:13
g4 left
|
|||
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 | ||
15:21
oldblue137 joined
15:26
pyrimidine left,
cpage_ joined,
pyrimidine joined
15:29
pmurias left
15:31
pyrimidine left
15:36
melezhik_ joined
15:43
troys joined,
ChoHag left
15:46
pyrimidine joined
15:49
shayan_ joined
15:51
shayan_ left
15:53
pyrimidine left
15:54
vendethiel joined
|
|||
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 "xF0x9Fx98xBFxF0x9Fx98xBFxF0x9Fx98xBF" | ||
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 "xF0x9Fx98xBF" | 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 | |
"xF0x9Fx98xBF " | |||
16:07
wamba joined
|
|||
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 | ||
16:23
domidumont left
|
|||
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 | ||
16:37
travis-ci joined
|
|||
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 | |||
16:37
travis-ci left
16:38
travis-ci joined
|
|||
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 | |||
16:38
travis-ci left
|
|||
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 | |
16:52
khw joined
|
|||
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 | ||
16:57
dugword joined
|
|||
tbrowder | ok | 17:00 | |
17:03
aindilis` left,
ChoHag joined
17:04
kurahaupo joined,
aindilis joined,
kurahaupo left
17:05
buggable joined,
ChanServ sets mode: +v buggable
17:06
zakharyas left
17:10
rje_ joined,
rje_ left
17:12
rje_ joined
|
|||
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 | |
17:20
nicq20 joined
|
|||
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>Confusedat <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 worldhello world「Hama」「Hama」TrueMatchedmatchedTrue 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 | ||
17:36
domidumont joined
|
|||
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++ | ||
17:42
Actualeyes left
|
|||
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 | ||
17:43
nicq20 left
|
|||
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. | ||
17:46
captain-adequate left
|
|||
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 } ) | ||
17:48
huggable joined,
ChanServ sets mode: +v huggable
|
|||
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 fooThing is barThing 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 fooThing is barThing is berThe 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 | ||
17:55
pmurias joined
|
|||
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. | |||
18:06
setty1 left,
setty1 joined
|
|||
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)]» | ||
18:07
setty1 left
|
|||
brokenchicken | k, .keys on a list gives you idnexes. neat | 18:08 | |
18:08
setty1 joined,
mr-foobar left
|
|||
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 | ||
18:12
vendethiel- joined
|
|||
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. | |||
18:15
vendethiel left,
lukaramu joined
|
|||
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» | ||
18:24
mr-foobar joined
|
|||
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 | |
18:29
Tonik joined
|
|||
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 | |
18:31
xzhao joined
18:35
vendethiel joined
18:36
vendethiel- left
18:44
wamba left
|
|||
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«11» | ||
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«10» | ||
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 | |||
19:10
melezhik_ left
|
|||
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" | ||
19:14
vendethiel left
19:16
grondilu joined
|
|||
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 | ||
19:20
ChoHag left
|
|||
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! | ||
19:26
nicq20 joined
19:27
lmmx joined
19:28
cyphase left
19:30
cdg left
|
|||
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」)» | ||
19:36
pecastro left,
mr_ron joined
19:37
pecastro joined
|
|||
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 callat <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 | |||
19:41
cyphase joined
|
|||
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«fososos0.00346733» | ||
brokenchicken | m: for ^1000 { "foooooosssssssooooossssooooss".comb.squish.join.say }; say now - INIT now | ||
camelia | rakudo-moar 232641: OUTPUT«fosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfosososfososo…» | ||
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 | |||
19:50
vendethiel joined
|
|||
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 | :) | ||
19:53
labster joined
|
|||
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 | ||
19:56
raschipi left
|
|||
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) | |||
20:04
rje_ left
20:05
labster left
|
|||
arnsholt | grondilu: Well, I have no idea what you need this for, so I'm just guessing at this point =) | 20:05 | |
20:05
girafe joined
|
|||
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 | ||
20:11
vendethiel left
20:12
labster joined,
labster left
20:13
travis-ci joined
|
|||
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 | |||
20:13
travis-ci left
20:18
vendethiel joined
20:23
bjz joined
|
|||
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 | ||
20:31
grondilu left
|
|||
mr_ron | thanks ... will try to research further and make the needed changes | 20:31 | |
20:31
troys is now known as troys_
|
|||
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 | ||
20:39
domidumont left
|
|||
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 | |||
20:40
vendethiel left
|
|||
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 | |||
20:50
vendethiel joined
20:53
cdg joined
|
|||
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 | ||
21:00
bjz left
|
|||
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… | ||
21:05
lmmx left
21:06
lmmx joined
21:08
lmmx left,
lmmx joined
21:10
lmmx left
21:11
lmmx joined
21:12
vendethiel left
21:15
lmmx left
21:17
lmmx joined
21:18
ChoHag joined,
lmmx left,
lmmx joined
|
|||
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 | |||
21:30
nicq20 left
|
|||
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 | ||
21:45
troys_ is now known as troys,
perlpilot left,
troys is now known as troys_,
troys_ is now known as troys
|
|||
brokenchicken | I have the strangest of problems: I'm failing at turning on the air conditioner because the motor is frozen solid. | 21:51 | |
21:52
ssotka joined
|
|||
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 | |
22:00
jeepc joined
|
|||
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 | |
22:09
espadrine joined
|
|||
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 | |
22:18
skids left
22:22
go|dfish joined
22:23
rindolf left,
bleh_ joined
|
|||
moritz | and if you want to parse a quoted string, the inside usually parses as <-[$delimiter]>* | 22:25 | |
much better than .+ and backtracking | |||
22:26
bleh_ left,
mcsnolte joined
22:30
troys is now known as troys_
22:32
pecastro left
22:38
pecastro joined
22:39
cxreg2 is now known as cxreg
23:13
RabidGravy left
23:19
DarthGandalf left
|
|||
jdv79 | brokenchicken: youre right. it was something else that got changed indirectly. | 23:22 | |
23:27
lmmx left
23:28
lmmx joined,
raschipi joined
23:29
oldblue137 left
23:31
lukaramu left
23:34
newbie1 left
23:36
raschipi left
|
|||
samcv | how do you define new methods for lets say the Str type? | 23:37 | |
23:38
espadrine left
|
|||
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 :) | ||
23:42
lmmx left,
lmmx joined
23:43
cdg left,
lmmx left
|
|||
brokenchicken | perl6.party/post/Hacking-on-Rakudo-...x-Your-Fix # seems topical | 23:45 | |
23:49
yqt joined
|
|||
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? | |||
23:53
AlexDaniel joined
|
|||
AlexDaniel | o/ | 23:54 | |
woah… what a day | |||
23:54
troys_ is now known as troys
23:55
DarthGandalf joined
|
|||
brokenchicken | What makes it whoahy? | 23:57 | |
23:59
cibs left
|