»ö« 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. |
|||
buggable | 🎺🎺🎺 It's time for the monthly Accidental /win Lottery 😍😍😍 We have 4 ballots submitted by 3 users! DRUM ROLL PLEASE!... | 00:00 | |
And the winning number is 28! Congratulations to jnthn! You win a roll of duck tape! | |||
AlexDaniel | XD | ||
zengargoyle FML - "thanks @zengargoyle ! been looking for a replacement for something like FocusMe on win/mac, this is the closest iv'e found so far so will continue giving it a shot" | 00:12 | ||
zengargoyle expects i will have to write a non-gui version. this person listened to my non-documented hack-arounds, isn't afraid of the Terminal and sudo and editing YAML files and still wants that thing i made on a whim in response to some random post on a Q&A site. | 00:18 | ||
zengargoyle that i never actually used myself because knowing how it works negates the reason for it's existance. aaarrrrggghhh. | 00:20 | ||
00:33
dubi0us left
00:53
dubi0us joined
00:55
astj joined
00:58
dubi0us left
|
|||
ugexe | m: class Foo { has %.hash handles <AT-KEY>; multi method AT-KEY($key where {$_ eq 'foo'}) { say "Got foo"; nextsame(); }; } | 01:17 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Package 'Foo' already has a method 'AT-KEY' (did you mean to declare a multi-method?) at <tmp>:1 |
||
ugexe | is there a way to make the handles play nice with the multi? | 01:18 | |
01:22
bjz joined
01:28
bjz left
01:32
dubi0us joined
|
|||
geekosaur | I don't think that does what you want | 01:32 | |
"handles" trait defines AT-KEY in Foo to do AT-KEY in %.hash | 01:33 | ||
oh, I see, you want overrideable. I think you have to do that by hand | |||
just as you would have to define your own accessors instead of somehow modifying the autogenerated ones with has $.whatever | 01:34 | ||
01:37
dubi0us left
01:41
astj left,
astj joined
01:44
bjz joined
01:45
ilbot3 left
01:48
dubi0us joined,
ilbot3 joined,
ChanServ sets mode: +v ilbot3
01:49
BenGoldberg joined
01:52
aindilis joined
01:56
bjz left
01:58
dubi0us left
01:59
dubi0us joined
02:03
dubi0us left
02:17
raschipi joined
02:18
dubi0us joined,
noganex_ joined
02:21
noganex left
02:23
astj left
02:26
astj joined
02:28
dubi0us left,
astj left,
astj joined
02:29
ggoebel left
02:32
bjz joined,
dubi0us joined
02:34
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:41
dubi0us left
02:50
dubi0us joined
02:58
dubi0us_ joined
02:59
dubi0us left
03:01
aborazmeh left
03:05
Cabanossi left
03:06
Cabanossi joined
03:07
dubi0us_ left
03:10
literal_ joined
03:21
dubi0us joined
03:22
bjz left
03:26
Actualeyes joined
03:31
dubi0us left
03:33
literal_ left
03:34
bwisti joined
03:40
bjz joined
03:42
araraloren_ left
03:49
araraloren joined
03:50
dubi0us joined
03:53
bjz left,
astj left
03:54
dubi0us left
03:55
bjz joined,
khw left
03:56
astj joined
03:59
dubi0us joined
04:01
astj left,
Cabanossi left
04:03
Cabanossi joined
04:14
dubi0us left
04:17
dubi0us joined
04:19
wamba joined
04:23
mcmillhj joined
04:24
pilne left
04:25
aquila-chrysaeto joined
04:27
dubi0us left,
dubi0us joined
04:29
mcmillhj left
04:32
dubi0us left
04:33
Cabanossi left
04:34
Cabanossi joined
04:38
bwisti left,
dubi0us joined
04:41
astj joined
04:42
astj left,
dubi0us left,
astj joined
04:48
dubi0us joined
04:57
dubi0us left
05:06
aborazmeh joined,
aborazmeh left,
aborazmeh joined
05:11
llfourn joined
05:14
raschipi left
05:21
dubi0us joined
05:22
mcmillhj joined
05:25
dubi0us left
05:27
dubi0us joined,
mcmillhj left
05:28
BenGoldberg left
05:31
skids left,
dubi0us left
05:38
dubi0us joined
05:39
avalenn left
05:40
astj left
05:41
kaare_ joined
05:43
astj joined
05:47
dubi0us left
05:48
dubi0us joined
05:53
dubi0us left
05:58
dubi0us joined
|
|||
Geth | DBIish: d9378416c0 | (Alexey Melezhik)++ (committed using GitHub Web editor) | README.pod An example how to pass dbname as file for qqlite I took me some time to understand how can I do this. |
06:00 | |
DBIish: c46dfe5821 | (Alexey Melezhik)++ (committed using GitHub Web editor) | README.pod Fix typo |
|||
DBIish: e658df8846 | (Salvador Ortiz)++ (committed using GitHub Web editor) | README.pod Merge pull request #94 from melezhik/master An example how to pass dbname as file for sqlite |
|||
06:02
dubi0us left
06:04
astj left
06:07
dubi0us joined
06:12
dubi0us left
06:16
wamba left
06:17
domidumont joined
06:18
Cabanossi left
06:19
dubi0us joined,
Cabanossi joined,
astj joined
06:22
astj left,
astj_ joined
06:23
dubi0us left
06:24
domidumont left,
domidumont joined
06:27
cpage__ left
06:28
dubi0us joined
06:32
dubi0us left
06:34
|oLa| joined
06:37
dubi0us joined,
domidumont left
06:38
rindolf joined
06:40
espadrine joined,
aindilis left
06:42
dubi0us left
06:47
dubi0us joined
06:51
abraxxa joined
06:54
darutoko joined
06:55
abraxxa left
06:57
dubi0us left
06:58
dubi0us joined
07:02
dubi0us left
07:07
dubi0us joined
07:12
dubi0us left
07:14
setty1 joined
07:19
dubi0us joined
07:23
dubi0us left
07:30
dubi0us joined
07:34
huf joined,
dubi0us left
07:35
aborazmeh left
07:36
astj_ left
07:39
dubi0us joined
07:40
astj joined
07:43
dubi0us left
07:48
dubi0us joined
07:57
dubi0us_ joined,
dubi0us left
07:59
astj left
08:00
kaare_ left,
astj joined
08:01
astj left,
astj joined,
dubi0us_ left
08:02
Cabanossi left
08:04
Cabanossi joined
08:08
dubi0us joined
08:09
domidumont joined
08:12
dubi0us left
08:13
bjz left
08:15
kaare_ joined
08:16
kurahaupo left,
kurahaupo joined
08:17
dubi0us joined
08:18
araujo left
08:21
dubi0us left
08:28
dubi0us joined
08:33
dubi0us left
08:34
bjz joined
08:35
FROGGS joined
08:37
kyan joined
08:38
dubi0us joined,
kaare_ left
08:48
Cabanossi left
08:49
Cabanossi joined
08:52
dubi0us left
08:58
dubi0us joined
09:00
bjz left
09:02
mcmillhj joined,
dubi0us left
09:03
kaare_ joined,
bjz joined
09:07
mcmillhj left
09:10
dubi0us joined
09:15
dubi0us left
09:16
astj left,
kaare__ joined
09:17
kaare_ left
09:18
dubi0us joined
09:19
pmurias joined
09:20
mcmillhj joined
09:22
kaare__ left,
dubi0us left
09:23
astj joined
09:25
mcmillhj left
09:28
dubi0us joined,
lichtkind_ joined
09:37
kurahaupo left,
kurahaupo joined,
sjoshi joined,
dubi0us left
09:39
dubi0us joined
09:40
sjoshi left
09:44
dubi0us left
09:48
dubi0us joined,
astj left
09:49
parv joined
09:52
dubi0us left,
mniip left
09:56
domidumont left,
mcmillhj joined
09:58
dubi0us joined,
cpage__ joined
10:01
mcmillhj left
10:07
dubi0us left
|
|||
Geth | doc: f682cd6abb | (Jan-Olof Hendig)++ | doc/Language/io-guide.pod6 Indentation fixes |
10:11 | |
10:16
TEttinger left
10:18
dubi0us joined
10:22
dubi0us left
10:23
bjz_ joined
10:25
bjz left
10:27
dubi0us joined
10:31
dubi0us left
10:32
parv left
10:40
baar joined
|
|||
baar | hello all. One question about sigils: | 10:40 | |
in Python I can create class with methofs typical for some containers. But without to extend base container type | 10:41 | ||
for example iterable but without setting. Or with indexable getter but without setting and other combinations | |||
10:42
dubi0us joined
|
|||
baar | This mean that I can not say what is it: list, hash or something else. So if I can do the same in Perl, what sigil I should use for such instances? How to select sigil? | 10:43 | |
I mean Perl6 sure | |||
10:44
mr-foobar joined
10:46
notbenh joined
|
|||
jnthn | You can put anything in a $ so that's always an option. | 10:46 | |
10:46
dubi0us left,
mr-fooba_ left
|
|||
jnthn | @ means "I can index into it like @a[...]"; you don't have to subclass anything, just do the Positional role. The role for % is associative and means "I can index into it like %h{...}" | 10:47 | |
*Associative | |||
m: my %h is BagHash # an example of an Associative built-in that's not Hash | 10:48 | ||
camelia | ( no output ) | ||
jnthn | m: say BagHash ~~ Hash | ||
camelia | False | ||
jnthn | docs.perl6.org/language/subscripts#Custom_types may be useful also | 10:49 | |
timotimo | hmm, if BagHash isn't Hash, maybe it should be called something different. maybe HashyBag :D | 10:50 | |
llfourn | m: say BagHash ~~ Map | ||
camelia | False | ||
10:52
travis-ci joined
|
|||
travis-ci | Doc build passed. Jan-Olof Hendig 'Indentation fixes' | 10:52 | |
travis-ci.org/perl6/doc/builds/249069522 github.com/perl6/doc/compare/e2754...82cd6abb90 | |||
10:52
travis-ci left
10:56
bjz joined
10:57
dubi0us joined
10:58
bjz_ left
11:02
dubi0us left
11:05
khw joined
11:07
dubi0us joined
11:17
dubi0us left,
dubi0us joined
|
|||
lizmat | m: say BagHash ~~ QuantHash # timotimo | 11:18 | |
camelia | True | ||
llfourn | .oO(maybe it should be called QuantHashy)Oo |
11:20 | |
11:22
dubi0us left
|
|||
timotimo | :) | 11:24 | |
lizmat | .oO( QuantyHash ) |
11:25 | |
11:26
dubi0us joined
11:30
domidumont joined
11:31
dubi0us left
|
|||
timotimo | HantyQuash | 11:34 | |
11:38
dubi0us joined
11:42
dubi0us left
11:46
bjz left
11:47
giraffe joined,
giraffe left,
giraffe joined,
dubi0us joined,
Cabanossi left
11:49
Cabanossi joined
11:52
dubi0us left
11:56
dubi0us joined
12:01
dubi0us left
12:06
dubi0us joined
12:10
dubi0us left
12:17
dubi0us joined
12:21
dubi0us left
12:27
dubi0us joined
12:32
dubi0us left
12:36
dubi0us joined
12:40
dubi0us left
12:45
dubi0us joined
12:47
Cabanossi left,
domidumont left
12:49
Cabanossi joined
12:50
dubi0us left
12:52
robertle left
12:57
dubi0us joined
12:58
colomon_ joined
12:59
bjz joined,
colomon left,
colomon_ is now known as colomon
13:01
dubi0us left
13:06
dubi0us joined
13:10
dubi0us left
13:17
dubi0us joined
13:21
bjz left
13:24
robertle joined
13:26
dubi0us_ joined
13:27
dubi0us left,
colomon left
13:28
colomon joined
13:30
dubi0us_ left
13:31
baar left
13:33
bjz joined
13:37
dubi0us joined
|
|||
sacomo | hi #perl6 | 13:39 | |
13:41
dubi0us left
13:46
lucasb joined
13:47
dubi0us joined
|
|||
rindolf | sacomo: moose! | 13:48 | |
sacomo: sup? | 13:49 | ||
sacomo | ola | ||
looks like everyone is sleeping | |||
lucasb | yo | ||
sacomo | konbanwa | ||
are either of you familiar with match? | 13:50 | ||
when I return a list of matches the results are wrapped in 「」 brackets | 13:51 | ||
13:52
dubi0us left
|
|||
lucasb | you want just the string matched, not the match object? | 13:52 | |
sacomo | is the best way to get thos to Str to just use .Str? | ||
yeah, is there a better way? like some option I can pass to match? | |||
lucasb | yes, I would guess calling .Str on it is the way to go | 13:53 | |
jnthn | Can also stringify them with the ~ prefix operator, or if you just use them in a context that wants a Str then you'll get that | ||
fwiw, in Perl 6 a Match is an object (and nested matches form a tree) | 13:54 | ||
sacomo | ok, thanks. | ||
jnthn | And it's the .gist method that does the formatted output (which is used by `say`) | 13:55 | |
If using, for example, `put` instead of `say`, which just outputs the string value, then you'd also get them without that | |||
sacomo | the ~ prefix is simple | 13:56 | |
ok, that is good to know | |||
13:56
dubi0us joined
13:58
dubi0us left
|
|||
sacomo | m: say "the quick brown fox".match(/ 'quick'|'brown' /, :g).map({.Str}); | 13:58 | |
camelia | (quick brown) | ||
sacomo | m: say "the quick brown fox".match(/ 'quick'|'brown' /, :g).map({~$_}); | 13:59 | |
camelia | (quick brown) | ||
jnthn | m: say ~<< "the quick brown fox".match(/ 'quick'|'brown' /, :g) | 14:00 | |
camelia | (quick brown) | ||
sacomo | ooh | 14:01 | |
I like that | |||
14:02
bjz_ joined,
Cabanossi left
14:03
bjz left
14:04
Cabanossi joined,
dubi0us joined
14:07
dubi0us left
14:09
dubi0us joined
14:19
leont joined
14:41
[particle] left
14:45
mr-fooba_ joined
14:47
andrzejku joined,
mr-foobar left
|
|||
araraloren | I want make a clone method for my class. Should I clone the parent class first or after child class ? | 14:49 | |
15:03
jsoo_ joined,
jsoo_ left
15:05
pilne joined
15:10
dubi0us left
15:11
dubi0us joined
15:13
Ven joined,
Ven is now known as Guest79326
15:16
dubi0us_ joined
15:17
Cabanossi left
15:18
dubi0us left
15:19
Cabanossi joined,
Guest79326 left
15:21
dubi0us_ left
15:22
Ven_ joined
15:25
zakharyas joined
15:26
dubi0us joined
|
|||
araraloren | :) | 15:31 | |
15:33
dubi0us left,
dubi0us joined
15:35
dubi0us left
15:36
dubi0us joined
15:39
Celelibi joined
15:41
dubi0us left,
dubi0us joined
15:42
ptolemarch left,
dubi0us_ joined,
ptolemarch joined
15:46
dubi0us left
15:49
[particle] joined
15:51
domidumont joined,
Rawriful joined
15:56
lichtkind_ left
15:59
mniip joined
16:03
bjz joined
16:04
dubi0us_ left
16:05
bjz_ left
16:08
dubi0us joined
16:09
lichtkind_ joined
|
|||
timotimo | the built-in clone doesn't do what you need it to? you need deep cloning semantics? | 16:12 | |
16:12
dubi0us left
|
|||
FROGGS | araraloren: usually you care about dependencies first (in a recursive manner)... but I dunno what your use-case is, and whet difference there is | 16:13 | |
araraloren | timotimo, yeah right, I want a deep clone | ||
timotimo | with a clone you won't likely have any inter-attribute dependencies? | 16:14 | |
you just set all the attributes? | |||
araraloren | I want figure out what is the right way to do it . | 16:15 | |
m: class B { has $.s; method clone(*%_) { self.bless(s => %_<s> // $!s.clone); } }; class A is B { has @.a; method clone(*%_) { self.bless(a => %_<a> // @!a.clone()); }; }; my $a = A.new(a => [1, 2, 3], s => 8); my $b = $a.clone(); $a.a.push(23);say $b; | 16:16 | ||
camelia | A.new(a => [1, 2, 3], s => Any) | ||
16:16
Cabanossi left
16:17
dubi0us joined
|
|||
araraloren | m: class B { has $.s; method clone(*%_) { self.bless(s => %_<s> // $!s.clone); } }; class A is B { has @.a; method clone(*%_) { self.bless(a => %_<a> // @!a.clone()); nextwith(|%_); }; }; my $a = A.new(a => [1, 2, 3], s => 8); my $b = $a.clone(); $a.a.push(23);say $b; | 16:17 | |
camelia | A.new(a => [], s => 8) | ||
16:19
wamba joined,
Cabanossi joined
16:22
dubi0us left
16:28
dubi0us joined
16:29
bwisti joined
16:33
dubi0us left
16:34
BenGoldberg joined
|
|||
BenGoldberg | What's the syntax for declaring a C struct with a fixed-length array embeded in it? my class Foo is repr('CStruct') { HAS ... } | 16:36 | |
timotimo | we don't have that yet :( | 16:37 | |
zengargoyle | m: my %h = <foo bar>; %h{*}.[0] | ||
camelia | ( no output ) | ||
zengargoyle | m: my %h = <foo bar>; %h{}.[0] | ||
camelia | ( no output ) | ||
16:37
dubi0us joined
|
|||
zengargoyle | m: my %h = <foo bar>; %h{*}.[0].say | 16:37 | |
camelia | bar | ||
zengargoyle | m: my %h = <foo bar>; %h{}.[0].say | ||
camelia | {foo => bar} | ||
16:38
bjz left
|
|||
zengargoyle | jnthn: «make ($<style1> // $<style2> // $<style3>).ast» -- once upon a time... i did «make $/{*}.[0].made» for the same sort of thing. decent approach or not? | 16:40 | |
guess now that would be $/{*}.first.made. :) | 16:42 | ||
timotimo | yeah, or [//] @$/{*} | 16:44 | |
zengargoyle tots wishes i had remembered this before now. guess that will go into plan-e of my `at` parser. :P | |||
in grammar, only one thing will be there.... | 16:45 | ||
16:45
xinming joined
|
|||
zengargoyle | you just don't know which one thing you got... | 16:46 | |
timotimo | the thing is that to get the .made you'd need to put parens around | ||
or | |||
16:46
Mithaldu joined
|
|||
timotimo | "made [//] @$/{*}:" | 16:46 | |
okay, so how about this, though: | |||
m: my %result = :99style2; say %result{*}:kv:value.perl; | 16:47 | ||
camelia | Failure.new(exception => X::Adverb.new(what => "slice", source => "\%result", unexpected => ["value"], nogo => ["kv"]), backtrace => Backtrace.new) | ||
timotimo | whoops? | ||
m: my %result = :99style2; say %result{*}:pair:value.perl; | |||
camelia | Unexpected named argument 'pair' passed in block <unit> at <tmp> line 1 |
||
timotimo | m: my %result = :99style2; say %result{*}:pairs:value.perl; | ||
16:47
dubi0us left
|
|||
camelia | Unexpected named argument 'pairs' passed in block <unit> at <tmp> line 1 |
16:47 | |
timotimo | m: my %result = :99style2; say %result{*}:p:value.perl; | ||
camelia | Failure.new(exception => X::Adverb.new(what => "slice", source => "\%result", unexpected => ["value"], nogo => ["p"]), backtrace => Backtrace.new) | ||
zengargoyle | :" -- ? i don't get this... | ||
timotimo | what's that one called again | ||
16:47
dubi0us joined
|
|||
timotimo | oh, that's the indirect method call syntax | 16:47 | |
it's for people who really want to write "new MyClass: 1, 2, 3" | 16:48 | ||
m: my %result = :99style2; say %result{*}:value; | |||
camelia | Unexpected named argument 'value' passed in block <unit> at <tmp> line 1 |
||
timotimo | m: my %result = :99style2; say %result{*}:values; | ||
camelia | Unexpected named argument 'values' passed in block <unit> at <tmp> line 1 |
||
timotimo | there totally was an adverb like that | 16:49 | |
i have no idea what it was | |||
m: my %result = :99style2; say %result{*}:v; | |||
camelia | (99) | ||
timotimo | actually, when you have {*} :v makes no sense because you already only get that | ||
zengargoyle | if you match and hit the action, you're going to have a $/ with a $/<something> = Match | ||
timotimo | the stuff that didn't go into the match don't even end up in the match object | ||
instead of $/{*}.[0] you can also $/.values.head | 16:50 | ||
zengargoyle | m: my %result = :99style2; say %result{*}; | ||
camelia | (99) | ||
16:50
lucasb left
|
|||
zengargoyle | {*} gives you values, {} gives you pairs.... | 16:50 | |
timotimo | did you want the name of the thing matched? | 16:51 | |
16:51
bjz joined
|
|||
zengargoyle | no, just the thing... the $whatever.made is the only really important part in this case. | 16:51 | |
16:52
dubi0us left
|
|||
timotimo | right, so %result.values.head.made? | 16:52 | |
hm, i wonder | |||
zengargoyle | yeah, or %result{*}.first.made | ||
16:52
zacts joined
|
|||
timotimo | m: my %result = :99foo; say head values %result::: | 16:52 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: head used at line 1 |
||
timotimo | m: my %result = :99foo; say (head (values %result:):): | 16:53 | |
camelia | 99 | ||
timotimo | :) :) | ||
zengargoyle | (that's pretty much what i did recently before i remembered the {*}.[0] thing.... | ||
16:57
dubi0us joined
|
|||
zengargoyle | m: my %h = <foo bar>; for %h{}.[0].kv -> $k, $v { say "$k -> $v" } | 16:57 | |
camelia | foo -> bar | ||
zengargoyle | m: my %h = <foo bar>; for %h{}.[0] -> $p { say "$p.key() -> $p.value()" } | 17:00 | |
camelia | foo -> bar | ||
zengargoyle | howto -> $k, $v { ... } | ||
timotimo | how do you mean? | 17:01 | |
zengargoyle | m: my %h = <foo bar>; for %h{}.[0] -> $k, $v { say "$k -> $v" } | 17:02 | |
camelia | Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 |
||
17:02
dubi0us left
|
|||
zengargoyle | m: my %h = <foo bar>; for %h{}.[0] -> $k => $v { say "$k -> $v" } | 17:02 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Preceding context expects a term, but found infix > instead at <tmp>:1 ------> 3my %h = <foo bar>; for %h{}.[0] -> $k =>7⏏5 $v { say "$k -> $v" } |
||
zengargoyle | m: my %h = <foo bar>; for %h{}.[0] -> ($k, $v){ say "$k -> $v" } | ||
camelia | Too few positionals passed to ''; expected 2 arguments but got 0 in sub-signature in block <unit> at <tmp> line 1 |
||
zengargoyle | m: my %h = <foo bar>; for %h{}.[0] -> ($k => $v){ say "$k -> $v" } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Preceding context expects a term, but found infix > instead at <tmp>:1 ------> 3y %h = <foo bar>; for %h{}.[0] -> ($k =>7⏏5 $v){ say "$k -> $v" } |
||
timotimo | m: my %h = <foo bar>; say %h{}.perl | ||
camelia | {:foo("bar")} | ||
zengargoyle | sorta like that | ||
timotimo | looks like %h{} just returns %h | ||
a zen-slice, like @foo[] | 17:03 | ||
17:03
Ven_ left
|
|||
zengargoyle | ah | 17:03 | |
17:04
perigrin joined
|
|||
timotimo | m: my %h = <foo bar>; my ($k, $v) = %h.kv; say $k.perl; say $v.perl | 17:05 | |
camelia | "foo" "bar" |
||
araraloren | so, There is no pretty way to do a clone for a child class ? | 17:06 | |
17:06
zakharyas left
|
|||
araraloren | github.com/araraloren/perl6-termin...ng.pm6#L22 | 17:06 | |
17:06
dubi0us joined
|
|||
timotimo | in that clone method you have there the result of self.bless is unused and just thrown away | 17:06 | |
araraloren | Look at this String, it inherit from Str, also I know that clone maybe wrong. | 17:07 | |
Yeah, so what should I do.. | |||
timotimo | i'd my $theclone = callsame; $theclone.style = $theclone.style.clone | ||
17:08
BenGoldberg left
|
|||
timotimo | of course you'll have to have accessors for $!style | 17:08 | |
araraloren | I also have read some rakudo source code, but found no way. | ||
timotimo | oh | ||
how about this | |||
nextwith(|(%_, {style => self.style.clone})) | |||
araraloren | em, I will try | 17:09 | |
timotimo | m: my %foo = :1bar, :2baz; sub sayparams(*%_) { say %_.perl }; sayparams(|(%foo, {style => 99})) | ||
camelia | Too many positionals passed; expected 0 arguments but got 2 in sub sayparams at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
timotimo | m: my %foo = :1bar, :2baz; sub sayparams(*%_) { say %_.perl }; sayparams(|%(%foo, {style => 99})) | ||
camelia | {:bar(1), :baz(2), :style(99)} | ||
timotimo | there we go | ||
17:10
perigrin left
17:11
dubi0us left
|
|||
zengargoyle sould have said make a .perl and EVAL. :) method clone() { return EVAL self.perl } -- like. | 17:11 | ||
araraloren | timotimo, seems like you code is right, I will make more test | 17:12 | |
thanks | |||
17:13
perigrin joined
|
|||
araraloren | s/you/your/ | 17:13 | |
17:17
dubi0us joined,
Cabanossi left
17:19
Cabanossi joined
17:22
dubi0us left
17:27
dubi0us joined
17:31
bjz left
17:32
dubi0us left
17:33
bjz joined
17:35
nhywyll joined
17:37
dubi0us joined
|
|||
zengargoyle | m: my %h = <foo bar>; given %h.first -> (:key($k), :value($v)) { say "$k -> $v" } | 17:37 | |
camelia | foo -> bar | ||
zengargoyle | that's what i was looking for. | 17:38 | |
17:41
dubi0us left
17:47
dubi0us joined
17:52
dubi0us left,
bjz left
17:53
bjz joined
17:57
dubi0us joined
|
|||
jnthn | zengargoyle: Hm, that's cute. %().first.made may also work (iirc %() is short for %($/)) | 17:59 | |
zengargoyle | m: grammar D { rule TOP { a+ | b+ { say "in TOP" } } }; say so D.parse("aaa"); | 18:06 | |
camelia | True | ||
zengargoyle | where's my "in TOP" ? | ||
18:07
grumble joined
|
|||
zengargoyle | m: grammar D { rule TOP { a+ | b+ { make "in TOP" } } }; say D.parse("aaa").made; | 18:08 | |
camelia | No such method 'gist' for invocant of type 'NQPMu'. Did you mean 'isa'? in block <unit> at <tmp> line 1 |
||
zengargoyle | m: grammar D { rule TOP { a+ | b+ { make "in TOP" } } }; say D.parse("bbb").made; | 18:10 | |
camelia | in TOP | ||
18:10
jamesaxl joined
|
|||
zengargoyle frell | 18:10 | ||
m: grammar D { rule TOP { [ a+ | b+ ] { make "in TOP" } } }; say D.parse("aaa").made; | |||
camelia | in TOP | ||
18:11
dubi0us left
|
|||
Geth | ecosystem: d22b30e8ea | loren++ (committed using GitHub Web editor) | META.list Update Terminal::Table version fix clone method |
18:18 | |
18:19
dubi0us joined
18:20
Ven joined,
Ven is now known as Guest28990
18:21
Guest28990 left
|
|||
zengargoyle | m: my grammar D { token a { a+ }; token b { b+ }; rule TOP { [ <a> | <b> ] { given %().kv -> ($k,$v) { make [ $k, $v ] } } }; }; say so D.parse("aaaa"); say D.parse("aaaa").made; | 18:21 | |
camelia | True [a 「aaaa」] |
||
18:23
dubi0us left
18:25
cdg joined
|
|||
Geth | doc: 64a0330591 | (Jan-Olof Hendig)++ | doc/Type/IO/CatHandle.pod6 Formatting fixes |
18:26 | |
18:27
dubi0us_ joined
18:28
Cabanossi left
18:31
Khisanth left
18:32
Cabanossi joined,
dubi0us_ left
|
|||
zengargoyle | m: my grammar D { token a { a+ }; token b { b+ }; rule TOP { [ <a> | <b> ] { make %().kv } }; }; say so D.parse("aaaa"); say D.parse("aaaa").made; | 18:36 | |
camelia | True (a 「aaaa」) |
||
18:37
dubi0us joined
18:45
dubi0us left
18:47
darutoko left,
dubi0us joined
|
|||
Geth | doc: 33a6888252 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/quoting.pod6 show the example as described |
18:47 | |
18:49
Kaffe left
18:52
dubi0us left
18:56
dubi0us joined
19:02
Kaffe joined
19:04
Khisanth joined
19:06
dubi0us left
19:09
dubi0us joined
19:14
bjz left
|
|||
sjn | how does one introspect the signature of the method you're currently in? (I'm thinking of calling .signature on something similar to Perl5's __SUB__) | 19:16 | |
19:16
travis-ci joined
|
|||
travis-ci | Doc build errored. Jan-Olof Hendig 'Formatting fixes' | 19:16 | |
travis-ci.org/perl6/doc/builds/249162155 github.com/perl6/doc/compare/f682c...a0330591a5 | |||
19:16
travis-ci left
19:18
dubi0us_ joined,
dubi0us left
19:19
Khisanth left
19:22
dubi0us_ left
19:28
dubi0us joined
|
|||
geekosaur | m: class A { method a { dd &?ROUTINE.signature } }; A.new.a | 19:29 | |
camelia | :(A $: *%_) | ||
geekosaur | sjn ^^ | ||
19:31
nhywyll left
19:32
dubi0us left
|
|||
tbrowder | hi, how can i get the number of bytes in a Str? i can get graphemes, but i haven't been able to convert to a Buf to get bytes. | 19:32 | |
geekosaur | you need to specify an encoding | 19:34 | |
tbrowder | never mind, looks like Str encode method is the route to go, thnx | ||
geekosaur | m: say "Åä".encode('UTF-8').bytes | 19:35 | |
camelia | 4 | ||
geekosaur | yes | ||
19:37
madgoat joined,
dubi0us joined
19:38
travis-ci joined
|
|||
travis-ci | Doc build errored. Tom Browder 'show the example as described' | 19:38 | |
travis-ci.org/perl6/doc/builds/249166391 github.com/perl6/doc/compare/64a03...a68882521e | |||
19:38
travis-ci left
19:40
madgoat left
19:42
dubi0us left
19:45
kyan left
19:47
dubi0us joined
19:52
dubi0us left,
lucasb joined
19:55
Shanta joined
19:57
dubi0us joined,
kyan joined
|
|||
Shanta | Hi I am new to perl 6 in the process of installing zef using. 2 git clone github.com/ugexe/zef.git 3 cd zef 4 perl6 -Ilib bin/zef install zef | 19:57 | |
Too few positionals passed; expected 2 arguments but got 1 in code at /home/shanta/zef/lib/Zef/Repository/LocalCache.pm6 (Zef::Repository::LocalCache) line 90 in method slurp-package-list at /home/shanta/zef/lib/Zef/Repository/LocalCache | 19:58 | ||
What am I missing? | 19:59 | ||
20:04
cdg left,
jamesaxl left
20:06
dubi0us left
20:07
TEttinger joined,
dubi0us joined,
dubi0us left
20:08
dubi0us joined
20:16
Cabanossi left,
cyphase joined
20:19
user3 joined,
Cabanossi joined,
rindolf left
|
|||
user3 | how do I get the symmetric difference between 2 hash variables %h1 and %h2 | 20:20 | |
%h1 is a proper superset of %h2 | 20:23 | ||
moritz | Shanta: what's your version of Perl 6? | 20:25 | |
yoleaux | 30 Jun 2017 22:01Z <AlexDaniel> moritz: clog handles unicode rather poorly nowadays… ¦ appears as ¦ and I don't think this issue existed previously | ||
moritz | perl6 --version | ||
zengargoyle | Shanta: try: perl6 -I. ./bin/zef install . | ||
moritz | user3: sets support difference as an operator, duno if hashes do | ||
zengargoyle | and/or the instructions say: perl6 -Ilib bin/zef install . | 20:27 | |
it might not be able to install a named module from the internets from it's source dir 'install zef', but should install a directory (itself) with 'install .' | 20:28 | ||
sjn | Shanta: perl6 -v # gives the version you're running now. zef needs a recent version | ||
jnthn | m: my %h1 = :a, :b, :c; my %h2 = :c, :d; say %h1 ⊖ %h2 | 20:30 | |
camelia | set(d, b, a) | ||
jnthn | m: my %h1 = :a, :b, :c; my %h2 = :c, :d; say %h1 (^) %h2 # ascii | ||
camelia | set(d, b, a) | ||
zengargoyle | oh, yeah, maybe perl6 version. :) | 20:31 | |
20:32
rindolf joined
|
|||
zengargoyle | .u ⊖ | 20:33 | |
yoleaux | U+2296 CIRCLED MINUS [Sm] (⊖) | ||
zengargoyle | docs.perl6.org/language/setbagmix#...e_operator | 20:36 | |
i think docs.perl6.org/language/glossary#i...s_operator needs a link to docs.perl6.org/language/unicode_texas | 20:38 | ||
20:42
|oLa| left,
Khisanth joined,
|oLa| joined
20:44
BenGoldberg joined
20:45
ilbot3 left,
ilbot3 joined,
ChanServ sets mode: +v ilbot3
|
|||
moritz | m: say 42 | 20:46 | |
camelia | 42 | ||
20:48
Cabanossi left
20:49
Cabanossi joined,
rindolf left
20:51
andrzejku left
|
|||
leont | My code is doing «my $raw = $optional || %variables{$key}:exists», and the compiler complains about «You can't adverb &infix:<||>», what am I doing wrong? | 20:51 | |
20:52
rindolf joined
|
|||
moritz | just precedence | 20:54 | |
my $raw = $optional || (%variables{$key}:exists); | |||
zengargoyle thinks it's too late in the day to figure out usage of L<> in docs. :) | |||
20:56
user3 left
20:57
|oLa| left
|
|||
Juerd | Interesting that adverbs are looser than || | 20:58 | |
Does that have use cases? | |||
leont | Solved it be switching them around | 20:59 | |
*by | |||
20:59
|oLa| joined
|
|||
masak | Juerd: adverbs don't really participate in the precedence game. they just seek out the highest node in the AST fragment they're in. | 20:59 | |
Juerd | masak: What's a good strategy for me, as a code reading human, to know what the adverb will be applied to? | 21:01 | |
leont | ugexe: And now zef doesn't want to do anything. «Too few positionals passed; expected 2 arguments but got 1», Zef::Repository::LocalCache line 90 | ||
masak | Juerd: it will apply to the loosest operator that precedes it (but no looser than infix:<,>) | 21:04 | |
21:05
parv joined
|
|||
masak | Juerd: so if you have a sense of the order the operators will execute in, you can form an intuition of what the adverb will bind to | 21:05 | |
Juerd | masak: Oh, so in %foo{$key}:exists it applies to the operator {}, rather than the hash? | ||
masak | aye | ||
Juerd | I should read up on adverbs. I understand very little about them. | ||
masak | %foo is a term, not an operator :) | ||
Juerd | Good point, but I find this syntax rather alien :) | ||
masak | but with `+%foo{$key} :exists`, it applies to the prefix:<+>; probably not intended | 21:06 | |
Juerd | Ahh | ||
masak | because prefix:<+> is very loose | ||
Juerd | Thanks, this clears up a lot of the fog in my mind, regarding adverbs | ||
masak | the one that always bites me is the `||` above. or `&&` | ||
basically, I find (for me) adverbs break a fundamental expectation of refactoring | |||
that subexpressions can be re-arranged according to mathematical laws | 21:07 | ||
leont | I would have expected them to bind on proximity | ||
masak | yes, that might have been nice | ||
timotimo | maybe it's time for a slang to explore this | 21:09 | |
masak | \o/ | ||
to the slang machine! | |||
timotimo | that was not me volunteering | ||
:) | |||
masak | history will be the judge of that | 21:10 | |
timotimo | historians from the future will not be able to retroactively force me to implement this :) | 21:11 | |
well, if sufficiently far in the future, it might be possible | 21:12 | ||
21:12
domidumont left
21:13
broquaint left,
iH2O joined
|
|||
masak | any sufficiently advanced future-historianism is indistinguishable from coercion | 21:13 | |
iH2O | why doesn't "say;" work to print an empty line? what is the cleanest way to do it? | 21:14 | |
21:14
araraloren left
|
|||
masak | m: say "" | 21:14 | |
camelia | |||
iH2O | say '' | ||
masak | iH2O: historical reasons. | ||
evalable6 | |||
masak | iH2O: in Perl 5, `say` means `say $_` | 21:15 | |
iH2O | ok | ||
masak | iH2O: and it was decided early on that people who wrote `say;` in Perl 6 would be far too likely to mean `say $_;` (influenced by Perl 5) even though by the logic of Perl 6 it clearly means `say "";` | 21:16 | |
timotimo | m: put | ||
camelia | 5===SORRY!5=== Argument to "put" seems to be malformed at <tmp>:1 ------> 3put7⏏5<EOL> Other potential difficulties: Function "put" may not be called without arguments (please use () or whitespace to denote arguments, or &put to r… |
||
timotimo | m: put() | ||
camelia | |||
timotimo | m: say() | ||
camelia | |||
timotimo | there you go, you can do that, as well | ||
parv | m: say put | 21:18 | |
yoleaux | 30 Jun 2017 10:19Z <HelpBot[perl6]> parv: you should only ever use releases and not "build every day" off a random commit. Non-release commits aren't as thoroughly tested and it isn't uncommon for them to have some regressions. People who build them are like people who do 30 over speed limit: they think they know better and would like to get (bugfixes) fast, but eventually they'll come across a untested pothole that wipes all their data. | ||
camelia | 5===SORRY!5=== Argument to "put" seems to be malformed at <tmp>:1 ------> 3say put7⏏5<EOL> Other potential difficulties: Function "put" may not be called without arguments (please use () or whitespace to denote arguments, or &put … |
||
masak | I've always felt that those of us who don't have a strong Perl 5 lilt have been short-changed by that "potential difficulty" error. `say;` is such a nice, short, clear, straightforward thing to write. | ||
but, on the other hand, I haven't been strongly pushing for a pragma-or-something to turn it off, either, so... :) | |||
parv | masak, i won't have minded if Perl 6 would not even bear a passing similarity to Perl 5 (which I have been using for a long time) | 21:20 | |
m: say say | |||
camelia | 5===SORRY!5=== Argument to "say" seems to be malformed at <tmp>:1 ------> 3say say7⏏5<EOL> Other potential difficulties: Unsupported use of bare "say"; in Perl 6 please use .say if you meant to call it as a method on $_, or use an… |
||
21:21
iH2O left
|
|||
timotimo | with slanngs you can make it as outlandish as you like :D | 21:24 | |
21:31
setty1 left
|
|||
Shanta | This is Rakudo version 2016.12 built on MoarVM version 2016.12 implementing Perl 6.c. | 21:34 | |
timotimo | that's rather old | 21:35 | |
21:36
lucasb left
|
|||
Shanta | zengargoyle tried yor sugestion shorter error list but same problem | 21:38 | |
timotimo | Shanta: it's definitely possible that your version of rakudo is too old to install zef | 21:44 | |
Shanta | Just downloaded from the site. | 21:47 | |
timotimo | you're on a 32bit windows? | 21:51 | |
no, that's 2016.01 | |||
Shanta | linux | ||
timotimo | where did you download it? rakudo.org has 2017.04, or 2016.01, not 2016.12 | ||
Shanta | yes | ||
I will try again from the tar. | 21:52 | ||
did the first install from the web page code as shown way above. | 21:53 | ||
21:54
wamba left
|
|||
El_Che | Shanta: in case you just want rakudo and want to install modules with zef: github.com/nxadm/rakudo-pkg/releases | 21:57 | |
Shanta | wget rakudo.perl6.org/downloads/rakudo/....06.tar.gz 3 tar xzf rakudo-2017.06.tar.gz 4 cd rakudo-2017.06/ 5 perl Configure.pl --gen-moar --gen-nqp --backends=moar 6 make 7 make install | ||
timotimo | it will not install that rakudo systemwide btw | 21:58 | |
Shanta | El_Che can't get zef installed yet. | ||
timotimo | maybe you have a PATH that points to an older perl6 binary? | 21:59 | |
what would "which perl6" say? | |||
El_Che | Shanta: the link I gave you are precompiled linux packages that include a script to install zef. | 22:00 | |
Shanta | I am reading the i should have .06 | ||
El_Che | rakudo star on linux are: source to compiles with a set of pre-chose modules | ||
Shanta | code used to get zef git clone github.com/ugexe/zef.git Cloning into 'zef'... | 22:01 | |
timotimo | + documentation | 22:02 | |
Shanta | path seems to be /usr/bin/perl6 | ||
22:02
parv left
|
|||
timotimo | okay, it wouldn't install that with the commandline you gave above | 22:03 | |
so that must be the przoblem | |||
did you try installing a perl6 with your package manager? | |||
22:03
|oLa| left
|
|||
Shanta | yes them removed it as it would be too old. | 22:03 | |
timotimo | hm, but somehow it must have stuck around | 22:04 | |
Shanta | Maybe I pull a windows to get the path to refresh Primarily flowing Gabor Szabo's new book. | 22:07 | |
timotimo | oh cool | ||
if there's no perl6 binary at that path, which wouldn't output it and calling perl6 wouldn't try to run it | |||
22:09
robertle left
22:11
Shanta left
22:12
Shanta joined
22:19
sftp left
22:20
sftp joined
22:28
cyphase left
22:33
bjz joined
22:44
bjz left
22:59
dubi0us_ joined
23:01
dubi0us left
23:02
Cabanossi left
23:03
pmurias left
23:04
Cabanossi joined
23:06
cyphase joined,
Ven joined
23:07
Ven is now known as Guest98263
23:08
dubi0us_ left
23:10
dubi0us joined
23:11
dubi0us_ joined
23:12
Guest98263 left
23:14
dubi0us left,
dubi0us__ joined
23:17
dubi0us_ left
23:23
cyphase left
23:24
dubi0us__ left
23:27
cyphase joined,
dubi0us joined
23:29
Rawriful left
23:32
dubi0us left
23:35
dubi0us joined,
dubi0us_ joined
23:40
dubi0us left
23:48
bjz joined,
Cabanossi left
23:49
Cabanossi joined
23:53
dubi0us joined
23:56
dubi0us_ left,
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|