»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋 Set by Zoffix on 25 July 2018. |
|||
Xliff | guifa: Is this method in a subclass? | 00:00 | |
lizmat | Xliff: just switching on my machine after coming back from Köln | ||
lizmat goes to bed | |||
guifa | Ha, I’ll throw it all up very shortly (this is probably the last thing to squash and I think I’ve got a big new release for BCP47 with langtag filtering available | 00:01 | |
Xliff | :) | ||
00:01
woolfy joined
|
|||
guifa | Aha! Nicely golfs | 00:02 | |
tio.run/##K0gtyjH7/z85J7G4WMFRoZqL...GSVp/v8PAA | |||
errrr wait | 00:03 | ||
I didn’t bless the object in the golfed code one sec | |||
timotimo | guifa: you actually declared a multi sub inside class A | 00:07 | |
you can't call that with A.new syntax | |||
guifa | That’s bad golfing on my part | 00:08 | |
I’m definitely using “multi method new ( … )” | |||
Xliff | Is there a way to check if a Routine is hidden from backtrace? | ||
m: Routine.^methods.say | |||
camelia | (The 'ForeignCode' class is a Rakudo-specific implementation detail and has no serviceable parts inside The 'ForeignCode' class is a Rakudo-specific implementation detail and has no serviceable parts inside The 'ForeignCode' class is a Rakudo-spec… |
||
timotimo | if you omit the "multi", the existing candidates from parent classes no longer exist | 00:09 | |
Xliff | m: .say for Routine.^methods | ||
camelia | The 'ForeignCode' class is a Rakudo-specific implementation detail and has no serviceable parts inside The 'ForeignCode' class is a Rakudo-specific implementation detail and has no serviceable parts inside The 'ForeignCode' class is a Rakudo-s… |
||
Xliff | WTF? | ||
timotimo | ha | ||
m: .name.say for Routine.^methods | |||
camelia | <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> onlystar candidates cando multi soft wrap unwrap yada package leave gist perl BUILD… |
||
timotimo | but the "is it hidden from backtrace?" thing is mixed in via a role | 00:10 | |
Xliff | HA! | ||
timotimo | m: sub foo() is hidden-from-backtrace { }; say foo.^methods | ||
camelia | (new Numeric Str sink AT-POS AT-KEY BIND-POS BIND-KEY ASSIGN-POS ASSIGN-KEY STORE push append unshift prepend FALLBACK ords chrs chop chomp iterator Set SetHash Bag BagHash Mix MixHash gist) | ||
timotimo | hm | ||
ah | |||
m: sub foo() is hidden-from-backtrace { }; say &foo.^methods | |||
camelia | (is-hidden-from-backtrace The 'ForeignCode' class is a Rakudo-specific implementation detail and has no serviceable parts inside yada The 'ForeignCode' class is a Rakudo-specific implementation detail and has no serviceable parts inside The 'Forei… |
||
timotimo | there it is | ||
Xliff | m: sub foo() is hidden-from-backtrace {}; say foo.^roles.name.say | 00:11 | |
camelia | No such method 'name' for invocant of type 'List'. Did you mean any of these? none note race take in block <unit> at <tmp> line 1 |
||
timotimo | btw the warning message about ForeignCode is because it's trying to call .gist or something on the methods that are on Routine | ||
Xliff | m: sub foo() is hidden-from-backtrace {}; say foo.^roles».name | ||
camelia | () | ||
Xliff | m: sub foo() is hidden-from-backtrace {}; say foo.^roles | ||
camelia | () | ||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles | ||
camelia | ((is-hidden-from-backtrace) (Callable)) | ||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles.contains('is-hidden-from-backtrace') | 00:12 | |
camelia | Use of uninitialized value of type is-hidden-from-backtrace in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. False in block <unit> at <tmp> line 1 Use of uninitialized value of typ… |
||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles.contains(is-hidden-from-backtrace) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: is-hidden-from-backtrace used at line 1 |
||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles».^name | ||
camelia | List | ||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles».name | ||
camelia | No such method 'name' for invocant of type 'is-hidden-from-backtrace' in block <unit> at <tmp> line 1 |
||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles.map( *.name ) | 00:13 | |
camelia | No such method 'name' for invocant of type 'is-hidden-from-backtrace' in block <unit> at <tmp> line 1 |
||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles.map( *.^name ) | ||
camelia | (is-hidden-from-backtrace Callable) | ||
00:13
zacts joined
|
|||
Xliff | m: sub foo() is hidden-from-backtrace {}; say &foo.^roles.map( *.^name ).contains( 'is-hidden-from-backtrace' ) | 00:13 | |
camelia | True | ||
Xliff | \o/ | ||
timotimo | bad idea | ||
Xliff | :( | ||
timotimo | let me show you :) | ||
Xliff | Explain, pls | ||
timotimo | m: role is-hidden-from-backtrace-haha-just-kidding { }; sub foo() {}; &foo does is-hidden-from-backtrace-haha-just-kidding; say &foo.^roles.map( *.^name ).contains( | 00:14 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1) at <tmp>:1 ------> 3say &foo.^roles.map( *.^name ).contains(7⏏5<EOL> expecting … |
||
Xliff | m: List.STORE.^roles.map( *.^name ).say | ||
camelia | Invocant of method 'STORE' must be an object instance of type 'List', not a type object of type 'List'. Did you forget a '.new'? in block <unit> at <tmp> line 1 |
||
timotimo | oops | ||
Xliff | m: List.STORE.code.^roles.map( *.^name ).say | ||
camelia | Invocant of method 'STORE' must be an object instance of type 'List', not a type object of type 'List'. Did you forget a '.new'? in block <unit> at <tmp> line 1 |
||
timotimo | m: role is-hidden-from-backtrace-haha-just-kidding { }; sub foo() {}; &foo does is-hidden-from-backtrace-haha-just-kidding; say &foo.^roles.map( *.^name ).contains( 'is-hidden-from-backtrace' ) | ||
camelia | True | ||
timotimo | contains will first stringify the list and then search for the substring in the result | 00:15 | |
Xliff | Oh. HAHA. | ||
guifa | Okay so packaging up all the code is going to be really awkward, but basically here’s what’s the issue | ||
imgur.com/a/j4siKVF | |||
Xliff | m: sub foo() is hidden-from-backtrace {}; say 'is-hidden-from-backtrace'∈ &foo.^roles.map( *.^name ) | 00:16 | |
camelia | True | ||
00:16
rindolf left
|
|||
Xliff | :P | 00:16 | |
guifa | When I added the Str version of new, the named-only one started acting as if it didn’t exist | ||
Xliff | m: role is-hidden-from-backtrace-haha-just-kidding { }; sub foo() {}; &foo does is-hidden-from-backtrace-haha-just-kidding; say 'is-hidden-from-backtrace' ∈ &foo.^roles.map( *.^name ) | ||
camelia | False | ||
guifa | And it’ll output the “Found base of “ line no problem, but then never outputs “Called without a string” | ||
(there are no other multi candidates) | 00:17 | ||
Xliff | m: GLOBAL.samewith.^roles.map( *.^name ).say | 00:18 | |
camelia | No such method 'samewith' for invocant of type 'GLOBAL' in block <unit> at <tmp> line 1 |
||
Xliff | BOLLOCKS! I've been fighting that thing in my backtraces all afternoon! | 00:19 | |
guifa: First off, all of your arrays in the second multi will need "is copy" at the end. | 00:20 | ||
Otherwise it will complain about modifying the immutable | 00:21 | ||
secondly, how are you invoking if you want to trigger the second? | |||
guifa | Triggering the second using only named arguments and no Str | ||
timotimo | you'll want "proto method new(|) {*}" in your class | 00:22 | |
guifa | Per the docs, named arguments take precedence over positional | ||
timotimo | methods will always take any amount of named arguments, though | ||
Xliff: are you sure push will not succeed there? | 00:24 | ||
guifa | Push definitely works there :-) | 00:25 | |
Xliff | gist.github.com/Xliff/74a448e07fed...8bd14a41d8 | ||
Oh. Nevermind. | |||
^^ See the bane of my existence. | |||
Cannot call method from outside of a GTK:: object (Any::IterateOneWithoutPhasers.pull-one) | 00:26 | ||
WTF?!? | |||
Why is that appearing in my backtrace!? | |||
timotimo | btw the internals try for is-hidden-from-backtrace using if $foo.^can("is-hidden-from-backtrace") && $foo.is-hidden-from-backtrace, iirc | 00:27 | |
Xliff | So gisted code returns Any::IterateOneWithoutPhasers.pull-one, and I don't want that. | ||
timotimo | what do you want to do with the calling method once you have it? | 00:28 | |
guifa | So I did a $foo = LanguageTagFilter and I think I found the issue | 00:29 | |
Xliff | timotimo: Insure that it doesn't come from user code that doesn't start with "GTK::" | ||
guifa | Can’t resolve caller because I think it wants me to supply all of those to match since they don’t have default values? | 00:30 | |
timotimo | m: package A { our sub call-into($other-thing) { $other-thing() } }; package B { our sub call-into($other-thing) { $other-thing } }; sub tell-me-caller { say CLIENT::.^keys }; A::call-into({ B::call-into({ tell-me-caller }) }); | 00:31 | |
camelia | ( no output ) | ||
timotimo | m: package A { our sub call-into($other-thing) { $other-thing() } }; package B { our sub call-into($other-thing) { $other-thing() } }; sub tell-me-caller { say CLIENT::.^keys }; A::call-into({ B::call-into({ tell-me-caller }) }); | ||
camelia | Cannot invoke this object (REPR: Null; VMNull) in sub tell-me-caller at <tmp> line 1 in block at <tmp> line 1 in sub call-into at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
timotimo | m: package A { our sub call-into($other-thing) { $other-thing() } }; package B { our sub call-into($other-thing) { $other-thing() } }; sub tell-me-caller { say CLIENT::.WHAT }; A::call-into({ B::call-into({ tell-me-caller }) }); | ||
camelia | Cannot invoke this object (REPR: Null; VMNull) in sub tell-me-caller at <tmp> line 1 in block at <tmp> line 1 in sub call-into at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
timotimo | m: package A { our sub call-into($other-thing) { $other-thing() } }; package B { our sub call-into($other-thing) { $other-thing() } }; sub tell-me-caller { say CLIENT::&ROUTINE }; A::call-into({ B::call-into({ tell-me-caller }) }); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed lookup of ::&ROUTINE; please use ::('&ROUTINE'), ::{'&ROUTINE'}, or ::<&ROUTINE> at <tmp>:1 ------> 3g() } }; sub tell-me-caller { say CLIENT7⏏5::&ROUTINE }; A::call-into({ B::call-in… |
||
timotimo | m: package A { our sub call-into($other-thing) { $other-thing() } }; package B { our sub call-into($other-thing) { $other-thing() } }; sub tell-me-caller { say CLIENT::('&ROUTINE') }; A::call-into({ B::call-into({ tell-me-caller }) }); | ||
camelia | Cannot invoke this object (REPR: Null; VMNull) in sub tell-me-caller at <tmp> line 1 in block at <tmp> line 1 in sub call-into at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
timotimo | hm. i wonder. | 00:32 | |
guifa | Okay no, giving everything default values didn’t work. | 00:33 | |
00:34
hc1^ left
|
|||
timotimo | did you try the "proto method new" one? | 00:34 | |
guifa | I did | ||
Cannot resolve caller new(Intl::BCP47::LanguageTagFilter: :variants(Array), :language(Language), :region(Region), :script(WildcardScript)); none of these signatures match: | 00:35 | ||
timotimo | named arguments are always optional, so their default value is just their corresponding type object | ||
guifa | (Intl::BCP47::LanguageTagFilter $: Language :$language = { ... }, Language :@languages = { ... }, Region :$region = { ... }, Region :@regions = { ... }, Script :$script = { ... }, Script :@scripts = { ... }, Variant :$variant = { ... }, Variant :@variants = { ... }, PrivateUse :@privateuses = { ... }, *%_) | ||
timotimo | i think i'd need to see more code for that | ||
guifa | OMG | 00:36 | |
00:36
kurahaupo left
|
|||
guifa *hates* the typing system sometimes | 00:36 | ||
Finally found it | |||
I was passing an array of Variants | |||
timotimo | oh | 00:37 | |
guifa | but not an Array[Variant] | ||
00:37
kurahaupo joined
|
|||
timotimo | well, that doesn't match Variant :$variant | 00:37 | |
00:37
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
timotimo | oh, Variants | 00:37 | |
er, variants | |||
yeah, nominal typing system | |||
guifa | I wish there were a way to capture that and allow that through | 00:38 | |
timotimo | with a constraint that says "all elements of this need to be Variant"? | ||
guifa | I mean I can do that with a where | ||
But I’ve hit this a few times before | 00:39 | ||
timotimo | if there's no other side effects until then, you can also explode later when one of the entries isn't a Variant | ||
guifa | Maybe an autocasting of some sort where Variant() @foo is copy; will attempt to create a Positional[Variant] | ||
timotimo | i could kind of see that | 00:40 | |
guifa | I’m not sure what the best syntax would be, but it would definitely help with the DWIT concept | ||
DWIM* | |||
I’ll do a where restrain for now | 00:41 | ||
00:41
zacts left
|
|||
timotimo | Xliff: i wonder if putting a dynamic variable into the GTK:: packages would make it accessible through CALLERS:: or just the variable itself | 00:43 | |
00:44
dominix__ is now known as dominix
00:46
zachk left
|
|||
Xliff | timotimo: How would it work with a dynvar? | 00:47 | |
I mean, how would the failure case look? | 00:48 | ||
timotimo | m: say $*FOO ~~ Failure | ||
camelia | True | ||
Xliff | Oh. | ||
LOL! | |||
timotimo: How would that work inside of a class? | 00:51 | ||
m: class A { my $*A; } | |||
camelia | ( no output ) | ||
dominix | m: say ((A, B, C,D) X=>1); | 00:52 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared names: A used at line 1 B used at line 1 C used at line 1 D used at line 1 |
||
guifa | finally! | ||
Xliff | m: class A { my $*A; submethod BUILD { $*A = True; }; method a { $*A.say }; }; A.new | ||
camelia | Dynamic variable $*A not found in submethod BUILD at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
guifa does a little dance | |||
dominix | m: say <(A, B, C,D) X=>1>; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3say <(A, B, C,D) X=>7⏏051>; expecting any of: infix infix stopper postfix statement end statement… |
||
Xliff | guifa++ | ||
m: class A { my $*A = True; method a { $*A.say }; }; A.new | |||
camelia | ( no output ) | ||
dominix | m: say (<A, B, C,D> X=>1); | ||
camelia | (A, => 1 B, => 1 C,D => 1) | ||
Xliff | m: class A { my $*A = True; method a { $*A.say }; }; A.new.a | 00:53 | |
camelia | Dynamic variable $*A not found in method a at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
dominix | m: say (<A, B, C, D> X=>1); | ||
camelia | (A, => 1 B, => 1 C, => 1 D => 1) | ||
00:53
kurahaupo_ joined
|
|||
Xliff | m: class A { my $*A = True; method a { $*A = 1; $*A.say }; }; A.new.a | 00:53 | |
camelia | Dynamic variable $*A not found in method a at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
dominix | can someone explain me this weird X=> thing in this exemple | ||
Xliff | dominix: which example? | ||
dominix | m: say (<A, B, C, D> X=>1); | ||
camelia | (A, => 1 B, => 1 C, => 1 D => 1) | ||
Xliff | X is cross operator. | 00:54 | |
m: say (<A B C D> X (1, 2, 3)) | |||
camelia | ((A 1) (A 2) (A 3) (B 1) (B 2) (B 3) (C 1) (C 2) (C 3) (D 1) (D 2) (D 3)) | ||
dominix | ha ok, at least I got the name of this thing | 00:55 | |
m: say (<A, B, C, D> X(1)); | |||
camelia | ((A, 1) (B, 1) (C, 1) (D 1)) | ||
Xliff | m: say (<A B C D> X=>1); | ||
camelia | (A => 1 B => 1 C => 1 D => 1) | ||
lookatme_q | m: say (<A B C D> X=> 1); | 00:56 | |
camelia | (A => 1 B => 1 C => 1 D => 1) | ||
00:56
kurahaupo left
|
|||
Xliff | dominix: If using <>, you do NOT need commas. | 00:56 | |
m: <Todd Tim Timmah!>.say | |||
camelia | (Todd Tim Timmah!) | ||
dominix | Xliff, OK | 00:57 | |
Xliff | m: (<A B C D> X 1).say | ||
camelia | ((A 1) (B 1) (C 1) (D 1)) | ||
dominix | m: say (<A B C D> X=>1, <E F G H> X=>2, <I J K> X=>3); | 00:58 | |
camelia | (A => 1 => 2 => 3 A => 1 => (I J K) => 3 A => (E F G H) => 2 => 3 A => (E F G H) => (I J K) => 3 B => 1 => 2 => 3 B => 1 => (I J K) => 3 B => (E F G H) => 2 => 3 B => (E F G H) => (I J K) => 3 C => 1 => 2 => 3 C => 1 => (I J K) => 3 C => (E F G H) => … | ||
Geth | doc: 897388637f | cfa++ | doc/Type/IO/Path.pod6 Formatting. |
||
synopsebot | Link: doc.perl6.org/type/IO::Path | ||
Xliff | dominix: Now you are trying to cross with a list, which is why that came out so weird. | 01:00 | |
W say ( (<A B C D> X=>1), (<E F G H> X=>2), (<I J K> X=>3)); | |||
m: say ( (<A B C D> X=>1), (<E F G H> X=>2), (<I J K> X=>3)); | |||
camelia | ((A => 1 B => 1 C => 1 D => 1) (E => 2 F => 2 G => 2 H => 2) (I => 3 J => 3 K => 3)) | ||
dominix | m: say (<A B C D> X=>1),(<E F G H> X=>2), (<I J K> X=>3); | ||
camelia | (A => 1 B => 1 C => 1 D => 1)(E => 2 F => 2 G => 2 H => 2)(I => 3 J => 3 K => 3) | ||
Xliff | m: say ( |(<A B C D> X=>1), |(<E F G H> X=>2), |(<I J K> X=>3)); | ||
camelia | (A => 1 B => 1 C => 1 D => 1 E => 2 F => 2 G => 2 H => 2 I => 3 J => 3 K => 3) | ||
Xliff | ^ Flattened. | 01:01 | |
dominix | m: say ((<A B C D> X=>1),(<E F G H> X=>2), (<I J K> X=>3)).flat; | ||
camelia | (A => 1 B => 1 C => 1 D => 1 E => 2 F => 2 G => 2 H => 2 I => 3 J => 3 K => 3) | ||
dominix | haaa OK | ||
Xliff | m: say |( (<A B C D> X=>1), (<E F G H> X=>2), (<I J K> X=>3)); # Also flattened | ||
camelia | (A => 1 B => 1 C => 1 D => 1)(E => 2 F => 2 G => 2 H => 2)(I => 3 J => 3 K => 3) | ||
Xliff | Or now. | ||
not | |||
Yeah. My mistake. That makes 3 lists, not one | |||
dominix | m: say ( |(<A B C D> X=>1), |(<E F G H> X=>2), |(<I J K> X=>3)); | 01:02 | |
camelia | (A => 1 B => 1 C => 1 D => 1 E => 2 F => 2 G => 2 H => 2 I => 3 J => 3 K => 3) | ||
dominix | m: say ((<A B C D> X=>1),(<E F G H> X=>2), (<I J K> X=>3)).flat; | 01:03 | |
camelia | (A => 1 B => 1 C => 1 D => 1 E => 2 F => 2 G => 2 H => 2 I => 3 J => 3 K => 3) | ||
dominix | the .flat operator has more meaning to me than this (|()) thing | ||
Xliff | Is there a way to detect if the routine is in a role? | 01:06 | |
dominix | the doc on X "cross metaoperator" is very light | 01:07 | |
Xliff | m: class A { method a { ?&ROUTINE.HOW.^name.say }; }; A.new.a | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: ROUTINE used at line 1. Did you mean 'Routine'? |
||
Xliff | m: class A { method a { &?ROUTINE.HOW.^name.say }; }; A.new.a | ||
camelia | Perl6::Metamodel::ClassHOW | ||
Xliff | m: role B { method b { &?ROUTINE.HOW.^name.say }; }; { class A does B { method a { &?ROUTINE.HOW.^name.say }; }; A.new.a; A.new.b | 01:08 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3INE.HOW.^name.say }; }; A.new.a; A.new.b7⏏5<EOL> expecting any of: statement end statement modifier statement modifier loo… |
||
Xliff | m: role B { method b { &?ROUTINE.HOW.^name.say }; }; class A does B { method a { &?ROUTINE.HOW.^name.say }; }; A.new.a; A.new.b | ||
camelia | Perl6::Metamodel::ClassHOW Perl6::Metamodel::ClassHOW |
||
Geth | doc: 7350b35230 | cfa++ | 2 files Spelling. |
||
Xliff | m: role B { method b { &?ROUTINE.name.say }; }; class A does B { method a { &?ROUTINE.HOW.^name.say }; }; A.new.a; A.new.b | ||
camelia | Perl6::Metamodel::ClassHOW b |
||
01:24
manwar joined
|
|||
guifa | How do you test for die in the testing module? | 01:24 | |
(nok [something that dies] kills the testing ha) | 01:25 | ||
timotimo | dies-ok | ||
or lives-ok | |||
manwar | Just installed rakudo-star-2018.10.tar.gz using the instruction on perl6.org/downloads/ | 01:26 | |
timotimo | hi mohammad :) | 01:27 | |
manwar | Hi TimoTimo :-) | ||
However when I do manwar@ubuntu:~/rakudo-star-2018.10$ perl6 -v This is Rakudo version 2016.04 built on MoarVM version 2016.04 implementing Perl 6.c. | |||
why does it say 2016.04 | 01:28 | ||
timotimo | sounds like you may have installed a rakudo via your package manager | ||
manwar | most likely...how can I clean up? | ||
timotimo | not exactly sure what the package would be called on ubuntu, maybe it's "apt-get uninstall rakudo"? | 01:29 | |
manwar | good guess...let me try | ||
timotimo | other things to try, "perl6" or "rakudo-star" | ||
also, maybe it's apt-get purge rather than uninstall? i haven't been on a debian-like system in ages | 01:30 | ||
01:33
choiboi joined
01:42
aborazmeh left
|
|||
manwar | It can't find any package called rakudo | 01:48 | |
manwar@ubuntu:~/rakudo-star-2018.10$ sudo apt-get remove rakudo Reading package lists... Done Building dependency tree Reading state information... Done Package 'rakudo' is not installed, so not removed 0 upgraded, 0 newly installed, 0 to remove and 257 not upgraded. | |||
01:49
ryn1x left
|
|||
timotimo | have you tried "perl6" or "rakudo-star"? | 01:52 | |
if there's a separate package "moarvm", it should also remove anything that uses that along with it | |||
Xliff | manwar: "dpkg -l rakudo\*" | 01:53 | |
Also | |||
manwar: "dpkg -l perl6\*" | |||
01:54
Kaiepi joined
|
|||
manwar | dpkg-query: no packages found matching rakudo* | 01:55 | |
dpkg-query: no packages found matching perl6* | 01:56 | ||
Xliff | manwar: "cd ~; which perl6" | 01:57 | |
timotimo | OK, maybe try "which perl6" | ||
yes | |||
Xliff | Or maybe "~/rakudo-star-2018.10/site/install/bin/perl6 -v" | 01:58 | |
I think that's the path. | |||
Xliff dinner & | 01:59 | ||
manwar | I am rebuilding fresh...having dropped the folder containing 2016.10 | 02:00 | |
02:00
Kaiepi left
02:09
cfa left
02:11
Praise left
02:12
Praise joined,
Praise left,
Praise joined
02:13
mowcat joined
02:25
choiboi left
02:26
AlexDani` joined
02:28
AlexDaniel left
|
|||
Geth | doc: f82ad1eecc | cfa++ | doc/Type/IO/Path.pod6 Sort file test list. Method order should probably follow suit. |
02:29 | |
synopsebot | Link: doc.perl6.org/type/IO::Path | ||
02:33
manwar left
02:46
zacts joined
03:13
MasterDuke joined,
MasterDuke left,
MasterDuke joined
03:16
lgtaube left
03:28
netrino_ left
03:36
mowcat left,
lgtaube joined
03:44
lgtaube left
03:46
zacts left
03:57
Kaiepi joined
03:59
lgtaube joined
|
|||
Geth | doc: 7c43c864a6 | cfa++ | doc/Type/IO/Path.pod6 Expand file test list. |
04:04 | |
synopsebot | Link: doc.perl6.org/type/IO::Path | ||
04:14
Cabanossi left
|
|||
guifa | Okay I thought I tried resubmitting the PR to add BCP47 I think I messed up | 04:22 | |
(not in the file names just not seeing it as a pending PR) | 04:25 | ||
04:26
Cabanossi joined
04:37
zacts joined
04:44
reach_satori left
04:47
kurahaupo_ left
04:48
kurahaupo joined
04:51
llfourn_ joined
04:52
llfourn left
04:54
molaf joined
05:04
w17t joined
05:14
ferreira1 left
|
|||
Xliff | m: $*PERL.compiler.version.say | 05:18 | |
camelia | v2018.12.311.gd.6563816.e | ||
05:35
zacts left
05:37
reach_satori joined
05:57
curan joined
06:04
dominix_ joined
|
|||
dominix_ | is there in perl6 something like perl5 B::Deparse ? | 06:04 | |
06:06
jmerelo joined
|
|||
dominix_ | trying to understand obscure code like : { given .comb(/<[A..Z0..9]>+/) { %map{.[0..*-2]} = .[*-1] xx (.elems - 1) } } for @B; | 06:06 | |
@B contains text lines, like "A, E, I, O, U, L, N, R, S, T 1","B, C, M, P 3" | 06:07 | ||
%map is an empty hash, my %map | |||
jmerelo | releasable6: status | 06:08 | |
releasable6 | jmerelo, Next release will happen when it's ready. 4 blockers. 175 out of 311 commits logged (⚠ 1 warnings) | ||
jmerelo, Details: gist.github.com/13fdfeb64080dafcbb...3c2a0ccdf1 | |||
dominix_ | my @B=("Letter Value","A, E, I, O, U, L, N, R, S, T 1","D, G 2","B, C, M, P 3","F, H, V, W, Y 4","K 5","J, X 8","Q, Z 10",); | ||
06:10
w_richard_w left
|
|||
guifa | dominix_: I’m working up a little thing to show you | 06:17 | |
06:17
zacts joined
|
|||
Xliff | { .say } for <A B C> | 06:18 | |
evalable6 | A B C |
||
Xliff | Well shit. | ||
m: -> $a, $b { .say } for <A B C> X <D E F> | |||
camelia | (Any) Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 (Any) (Any) (Any) |
||
Xliff | m: { .say } for <A B C> X <D E F> | ||
camelia | (A D) (A E) (A F) (B D) (B E) (B F) (C D) (C E) (C F) |
||
Xliff | dominix: { given .comb(/<[A..Z0..9]>+/) { %map{.[0..*-2]} = .[*-1] xx (.elems - 1) } } for @B; is better written as | 06:20 | |
for @B { my @a = $_.comb(/<[A..Z0..9+/); %map { $_.[0 .. *-2] = $_.[*-1] xx (@a.elems - 1) } | 06:22 | ||
m: @a = <A B C>; (%map { .[0..*-2] } = @a[*-1] xx 3).say | 06:23 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '@a' is not declared at <tmp>:1 ------> 3<BOL>7⏏5@a = <A B C>; (%map { .[0..*-2] } = @a[* |
||
Xliff | m: my @a = <A B C>; (%map { .[0..*-2] } = @a[*-1] xx 3).say | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '%map' is not declared. Did you mean any of these? &map Map at <tmp>:1 ------> 3my @a = <A B C>; (7⏏5%map { .[0..*-2] } = @a[*-1] xx 3).say |
||
Xliff | m: my @a = <A B C>; (map { .[0..*-2] } = @a[*-1] xx 3).say | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing comma after block argument to map at <tmp>:1 ------> 3 B C>; (map { .[0..*-2] } = @a[*-1] xx 37⏏5).say |
||
Xliff | m: my @a = <A B C>; (map { .[0..*-2] }, @a[*-1] xx 3).say | ||
camelia | (() () ()) | ||
Xliff | m: my @a = <A B C>; {% map { .[0..*-2] } = @a[*-1] xx 3) | 06:24 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3my @a = <A B C>; {%7⏏5 map { .[0..*-2] } = @a[*-1] xx 3) expecting any of: infix infix stopper statement end … |
||
Xliff | m: my @a = <A B C>; {map { .[0..*-2] } = @a[*-1] xx 3) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing comma after block argument to map at <tmp>:1 ------> 3B C>; {map { .[0..*-2] } = @a[*-1] xx 37⏏5) |
||
Xliff | m: my @a = <A B C>; {map { .[0..*-2] } = @a[*-1] xx 3; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing comma after block argument to map at <tmp>:1 ------> 3B C>; {map { .[0..*-2] } = @a[*-1] xx 37⏏5; |
||
Xliff | Yeah. That's a sign it's time for bed. | 06:25 | |
That %map is doing me in. | |||
m: "Now is the time for all good men to come to the aid of their country"..comb(/<[A..Z0..9]>+/) | 06:26 | ||
camelia | WARNINGS for <tmp>: Useless use of ".." in expression "\"Now is the time for all good men to come to the aid of their country\"..comb(/<[A..Z0..9]>+/)" in sink context (line 1) Too few positionals passed; expected 2 or 3 arguments but got 1 in… |
||
Xliff | m: "Now is the time for all good men to come to the aid of their country".comb(/<[A..Z0..9]>+/) | ||
camelia | ( no output ) | ||
Xliff | m: "Now is the time for all good men to come to the aid of their country".comb(/<[A..Z0..9]>+/).say | ||
camelia | (N) | ||
Xliff | m: "Now is the Time for all Good men to come to the aid of their country".comb(/<[A..Z0..9]>+/).say | ||
camelia | (N T G) | ||
Xliff | So.... | 06:27 | |
m: .comb(/<[A..Z0..9]>+/).say == Search invocant for all capital letters and numbers and put them in an array in the order they were found. | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3ers and numbers and put them in an array7⏏5 in the order they were found. expecting any of: infix infix stopper postf… |
||
guifa | tio.run/##hVTZUhsxEHxef8UUkMIQecHk...WkbT2k9BJ7 | ||
czfLmNRhSFURpirBYx6YCIyZ1n3VXQu24tXdbOi2ZUgSgN3ZWRSsjUFGYV@7pKHGKOf9WcpxxqyVqlIyAUJSNRda1HinxlgkgYZEBS5yNIz3uIaw8Xfdq/sUBXvTrjHNXrsrSGu7dJXaHAZz2UtMaJTdK4ef1wkOrSeG3JyqNx4kjX9CBDyR4b08sLGE084OqGBVvHt3WEExJBH2AadgRi84ygbwamW@N8NMsZonmdJRiA9jYFc0wuvMMQROFNj@MzuL3Z2jmfoA/x2WarfU5DOBmz5cxRi9piHjq1Fk6g3wG4P7yNd@Zxj57LZIe4ZOoE0thQxjp3lPNQmiaktQs95CzcluEezpnIkF/xiMaiXGiG78BwVgQE/7KR8pMgaNKIJnhOTs/@rjrT6R8 | |||
Eek, didn’t realize that URL was going to be so big | 06:28 | ||
sorry | |||
Xliff | :) | ||
You can always pastebin the URL! :D | |||
Still can't get that link to work. | 06:29 | ||
guifa | pastebin.com/XNPVCNnC | ||
Although for some reason I am not QUITE getting the same result | 06:30 | ||
Xliff | guifa++ | ||
guifa | err duh I see it | 06:31 | |
dominix_ | amazing | 06:32 | |
Xliff slaps forhead. | |||
%map is a freaking hash | |||
dominix_ | thanks guys for the explaination | ||
Xliff | np | ||
guifa | pastebin.com/zA3ymSQZ | 06:35 | |
That’s a better one | |||
And gets the correct result | |||
06:35
reach_satori left
|
|||
guifa | Xliff: I was trying to figure that one out too for a second lol | 06:35 | |
Xliff | :) | ||
dominix_ | %map should look like this {A => 1, B => 3, C => 3, D => 2, E => 1, F => 4, G => 2, H => 4, I => 1, J => 8, K => 5, L => 1, M => 3, N => 1, O => 1, P => 3, Q => 10, R => 1, S => 1, T => 1, U => 1, V => 4, W => 4, X => 8, Y => 4, Z => 10} | 06:36 | |
guifa | dominix if you look at the last link you sent you should get that result | ||
dominix_ | it put weight to some letter (it is use to score words at scrabble) | 06:37 | |
06:39
Cabanossi left
|
|||
dominix_ | I guess the use of %map has confused me with map{} | 06:39 | |
06:40
reach_satori joined
|
|||
guifa | So I tried to make my language tag module automagically use the latest and greatest language subtag registry direct from IANA. They provide a super easy to process text file that I could have used a phaser to compile-time download and parse | 06:41 | |
Make a raw HTTP request and everything to keep dependencies down | 06:42 | ||
And what do I end up downloading? A file telling me that the file has moved and is now at an HTTPS page =\ | |||
Geth | doc: 07a56a2457 | (JJ Merelo)++ | doc/Type/Any.pod6 Adds tail refs |1494 |
06:44 | |
synopsebot | Link: doc.perl6.org/type/Any | ||
doc: 39140e37f4 | (JJ Merelo)++ | doc/Type/Any.pod6 Adds iterator refs #1494 |
|||
SmokeMachine | m: sub bla is hidden-from-backtrace {}; say &bla ~~ is-hidden-from-backtrace | 06:45 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: is-hidden-from-backtrace used at line 1 |
||
06:45
cgfbee left
|
|||
dominix_ | thanks guifa: | 06:46 | |
06:48
Cabanossi joined
06:50
kurahaupo left,
kurahaupo_ joined,
kurahaupo_ left
06:51
kurahaupo joined
|
|||
guifa | SmokeMachine: I’m about to upload Fluent if you want to play around with it although the big feature (the number selection) isn’t available | 06:52 | |
ufobat_ | cfa tadzik wondering if this line needs a 'is rw' github.com/Bailador/Bailador/blob/...text.pm#L7 | 06:53 | |
SmokeMachine | guifa: sure! I’ll take a look when I go back from work! :) | ||
06:54
molaf left
|
|||
Xliff | ufobat_: No, it's this line that needs the "is rw" github.com/Bailador/Bailador/blob/...ext.pm#L12 | 06:55 | |
ufobat_ | ah | 06:56 | |
Xliff | And definitely want a "FETCH => ->" here github.com/Bailador/Bailador/blob/...ext.pm#L12 | ||
ufobat_ | those lines are still your code, tadzik :p | ||
thanks Xliff | 06:57 | ||
Xliff | :) | ||
ufobat_ | i cant fix it in the next 3 days i am afraid | 06:58 | |
Xliff | m: class A { has $!a; method a is rw { Proxy.new: FETCH => { $!a }, STORE => -> $, $v { $!a = $v }; }; }; my $a = A.new; $a.a = 4; $a.a.say; $a.a = 2; $a.a.say | 07:00 | |
camelia | 4 2 |
||
Xliff | OK, So the FETCH is fine. | 07:01 | |
But the method definitely needs the "is rw" | |||
m: class A { has $!a; method a { Proxy.new: FETCH => { $!a }, STORE => -> $, $v { $!a = $v }; }; }; my $a = A.new; $a.a = 4; $a.a.say; $a.a = 2; $a.a.say | |||
camelia | Cannot modify an immutable 'Any' type object in block <unit> at <tmp> line 1 |
||
Xliff | m: class A { has $!a = 2; method a { Proxy.new: FETCH => { $!a }, STORE => -> $, $v { $!a = $v }; }; }; my $a = A.new; $a.a = 4; $a.a.say; $a.a = 2; $a.a.say | 07:02 | |
camelia | Cannot modify an immutable Int (2) in block <unit> at <tmp> line 1 |
||
Xliff | m: class A { has $!a = 2; method a { Proxy.new: FETCH => { $!a }, STORE => -> $, $v { $!a = $v }; }; }; my $a = A.new; $a.a.say; $a.a = 2; $a.a.say | ||
camelia | 2 Cannot modify an immutable Int (2) in block <unit> at <tmp> line 1 |
||
Xliff bed & | |||
07:07
kurahaupo left,
kurahaupo_ joined,
kurahaupo_ left,
kurahaupo joined
07:08
ayerhart left
07:09
sauvin joined,
dominix_ left
07:15
kurahaupo left,
kurahaupo joined
07:17
ayerhart joined
|
|||
guifa | SmokeMachine: what’s your username on GH? | 07:28 | |
SmokeMachine | guifa: FCO | 07:36 | |
07:38
jmerelo left
07:45
Xliff left
|
|||
ufobat_ | bisectable6_, help | 07:52 | |
bisectable6_ | ufobat_, Like this: bisectable6_: old=2015.12 new=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # See wiki for more examples: github.com/perl6/whateverable/wiki/Bisectable | ||
ufobat_ | m: class A { has $!a; method a { Proxy.new: FETCH => { $!a }, STORE => -> $, $v { $!a = $v }; }; }; my $a = A.new; $a.a = 4 | 07:53 | |
camelia | Cannot modify an immutable 'Any' type object in block <unit> at <tmp> line 1 |
||
ufobat_ | bisectable6_: old=2017.01 new=HEAD class A { has $!a; method a { Proxy.new: FETCH => { $!a }, STORE => -> $, $v { $!a = $v }; }; }; my $a = A.new; $a.a = 4 | 07:54 | |
bisectable6_ | ufobat_, Bisecting by exit code (old=2017.01 new=d656381). Old exit code: 0 | ||
ufobat_, bisect log: gist.github.com/6514fab899ffc19f16...5f991933c3 | |||
ufobat_, (2018-11-19) github.com/rakudo/rakudo/commit/7d...6110c43506 | |||
08:18
rindolf joined
08:38
Grauwolf left,
Grauwolf joined,
Grauwolf left,
Grauwolf joined
08:42
Xliff joined
|
|||
Xliff | m: my %a = (a => 1, b => 2, c => 3); my %b = ( d => 4, e => 5, f => 6) %a.append(%b); %a.gist.say | 08:43 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot use variable %b in declaration to initialize itself at <tmp>:1 ------> 3 = ( d => 4, e => 5, f => 6) %a.append(%7⏏5b); %a.gist.say expecting any of: argument list … |
||
Xliff | m: my %a = (a => 1, b => 2, c => 3); my %b = ( d => 4, e => 5, f => 6); %a.append(%b); %a.gist.say | ||
camelia | {a => 1, b => 2, c => 3, d => 4, e => 5, f => 6} | ||
Xliff | m: my %a = (a => 1, b => 2, c => 3); my %b = ( c => 4, e => 5, f => 6); %a.append(%b); %a.gist.say | ||
camelia | {a => 1, b => 2, c => [3 4], e => 5, f => 6} | ||
08:47
zacts left
|
|||
Xliff | m: my @a = ('A', 'B', 0, "C"); @a.grep( Int ).say | 08:47 | |
camelia | (0) | ||
Xliff | m: my @a = ('A', 'B', 42, "C"); @a.grep( Int ).say | ||
camelia | (42) | ||
Xliff | m: my @a = ('A', 'B', 42, "C"); @a.grep( Str ).say | ||
camelia | (A B C) | ||
masak | Xliff: did you know you can also privmsg with camelia? | 08:57 | |
Xliff | Yes | ||
08:58
woolfy left
09:02
w17t left
09:04
w17t joined
09:06
woolfy joined
09:13
zacts joined
09:27
avar joined,
avar left,
avar joined
10:00
sena_kun joined
10:15
dustinm` left
10:22
dustinm` joined
10:27
dominix_ joined
10:30
dominix left
10:51
kurahaupo left,
kurahaupo joined
10:52
kurahaupo left,
pecastro joined,
kurahaupo joined
11:15
kurahaupo left,
kurahaupo joined,
kurahaupo left
11:16
kurahaupo joined
11:25
mowcat joined
11:36
Kaiepi left
12:08
curan left
12:18
gregf_ left
12:25
lucasb joined
12:35
dogbert2_ left
12:37
gregf_ joined
12:40
curan joined
12:44
curan left
12:45
curan joined
12:56
kurahaupo left,
kurahaupo joined
|
|||
tbrowder | has anyone seen notice of my version 2 of Date::Names uploaded to cpan? loaded it near mid day (UTC-5) yesterday. | 12:59 | |
jkramer | m: sub foo { 'lol' }; (foo() xx 3).join.say | ||
camelia | lollollol | ||
jkramer | Shouldn't this work without the ()? | ||
m: sub foo { 'lol' }; (foo xx 3).join.say | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: xx used at line 1 |
||
timotimo | jkramer: after a sub, a term is expected, not an infix :) | ||
however | |||
m: sub term:<foo> { 'lol' }; (foo xx 3).join.say | 13:00 | ||
camelia | lollollol | ||
jkramer | Ah right, that's kinda :D | ||
timotimo | ^- in SDL2::Raw i made SDL_GetTicks a term, not only because it's a no-arguments sub, but also because it tends to be used as a term all over in maths calculations | ||
jkramer | *obvious | ||
lizmat | twitter.com/perl6_cpan_new/status/...3989143552 # tbrowder | 13:02 | |
tbrowder | lizmat: thnx. i'm used to seeing msg here but i never saw one. | 13:03 | |
lizmat | the tweet is done by a different bot | 13:04 | |
so it could well be that you didn't see it here | |||
tbrowder | lizmat: ref holapi, i found my pr is not merged, pinged josh, hopefully he is ok and will answer. | 13:05 | |
lizmat hopes so as well | |||
13:21
mowcat left
13:32
Kaiepi joined
13:36
w17t left
13:40
dogbert2_ joined
|
|||
masak | en.wikipedia.org/wiki/Safe_navigat...tor#Perl_6 -- it's odd to see `.?` being mentioned in an article which is otherwise about `?.` | 13:41 | |
it almost feels like a mistake that Perl 6's operator is mentioned there at all | |||
jnthn | Huh, it's just a spelling difference, no? | 13:42 | |
masak | (to be painfully clear: the article is about a syntax `$obj?.meth` which returns null (instead of dying) when $obj is null. Perl 6's `$obj.?meth` is about not dying when `.meth` is absent.) | 13:43 | |
jnthn | Oh | ||
masak | jnthn: so, no :) | ||
timotimo | the ? is on the side that is allowed to be missing, clearly | ||
masak | I know moritz++ is aware of this difference. he's explained it to me more than once ;) | ||
(and I keep forgetting) | |||
timotimo: just as clearly, `?.?` would be for the case when *both* the object and the method are allowed to be missing :P | 13:44 | ||
timotimo | :) | ||
more operators that look like emoji | 13:45 | ||
13:50
vike left
13:53
Kaiepi left
|
|||
jkramer | m: my regex lol { 'lol' }; say lol.WHAT | 13:54 | |
camelia | Too few positionals passed; expected 1 argument but got 0 in regex lol at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
13:54
vike joined
|
|||
jkramer | m: my regex lol { 'lol' }; | 13:54 | |
camelia | ( no output ) | ||
jkramer | m: my regex lol { 'lol' }; say lol.^name | 13:55 | |
camelia | Too few positionals passed; expected 1 argument but got 0 in regex lol at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jkramer | What? :D | ||
jnthn | It's a routine, so you're calling it | ||
jkramer | Oh | ||
jnthn | &lol | ||
jkramer | Well locally I'm getting this: Cannot find method 'match': no method cache and no .^find_method | ||
jnthn | m: my regex lol { 'lol' }; say &lol.^name | 13:56 | |
camelia | Regex | ||
14:00
abraxxa left
|
|||
jkramer | m: my regex lol { 'lol' }; say lol('lol') | 14:00 | |
camelia | No such method '!cursor_start' for invocant of type 'Str' in regex lol at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jkramer | m: my regex lol { 'lol' }; say 'lol' ~~ lol | ||
camelia | Too few positionals passed; expected 1 argument but got 0 in regex lol at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jkramer | m: my regex lol { 'lol' }; say 'lol'.match(lol) | ||
camelia | Too few positionals passed; expected 1 argument but got 0 in regex lol at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jkramer | m: my regex lol { 'lol' }; say 'lol' ~~ /<lol>/ | 14:01 | |
camelia | 「lol」 lol => 「lol」 |
||
jkramer | Is this the only way I can use it? | ||
sena_kun | ACCEPTS? | 14:02 | |
m: my regex lol { 'lol' }; say 'lol'.ACCEPTS(lol); | |||
camelia | Too few positionals passed; expected 1 argument but got 0 in regex lol at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
sena_kun | m: my regex lol { 'lol' }; say lol.ACCEPTS('lol'); | ||
camelia | Too few positionals passed; expected 1 argument but got 0 in regex lol at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
sena_kun | hmm | ||
jkramer | Ah wait, it's the same mistake as before :) | 14:03 | |
lucasb | m: my regex lol { 'lol' }; say 'lol' ~~ &lol | ||
camelia | 「lol」 | ||
jkramer | m: my regex lol { 'lol' }; say 'lol'.match(&lol) | ||
camelia | 「lol」 | ||
jkramer | m: my regex lol { 'lol' }; say 'lol' ~~ &lol | ||
camelia | 「lol」 | ||
sena_kun | yup, and ACCEPTS wants `&` too. | ||
jkramer | m: my regex lol { 'lol' }; say &lol.signature | 14:05 | |
camelia | (Mu: *%_) | ||
14:24
kylese joined
14:26
mack[m] joined
|
|||
mack[m] | /join #freenode_#smartos:matrix.org | 14:29 | |
14:31
molaf joined
14:50
w17t joined
14:51
AlexDani` is now known as AlexDaniel
14:53
ambs left
|
|||
woolfy | We have hundreds of t-shirts, jackets and hoodies, Perl- and otherwise related. See this album on Flickr: www.flickr.com/photos/wendyga/albu...7043555354 and my blog about it: wendyga.wordpress.com/2019/02/22/t...-t-shirts/ | 14:54 | |
El_Che | so many tshirts | 14:59 | |
Geth | doc: fba25f87d7 | cfa++ | doc/Type/IO/Path.pod6 IO::Path: restructure the file test operator section. Update examples, reference .path. |
15:01 | |
synopsebot | Link: doc.perl6.org/type/IO::Path | ||
15:04
choiboi joined
15:16
ambs joined
15:27
curan left
|
|||
woolfy | Claudio Ramirez: sometimes they make me crazy. Crazy shirt. | 15:28 | |
15:32
Actualeyes joined
|
|||
choiboi | I just implemented all the heart emoji in xikuuky/Avolution-Emoji | 15:36 | |
^_^ | |||
15:41
cfa joined
|
|||
lizmat | choiboi++ # any place we can see progress / try things out ? | 15:42 | |
15:43
xinming_ left
|
|||
SmokeMachine | now Im on Europe, Im sure it will be easier... how can I buy a Camelia? | 15:45 | |
lizmat | SmokeMachine: visiting any Perl event / PM meeting anytime soon ? | 15:46 | |
like GPW / Amsterdam.pm meeting / Niederrhein.pm meeting ? | 15:47 | ||
SmokeMachine | lizmat: Im going to the next London tech meeting... | ||
lizmat | when is that ? | ||
SmokeMachine | next week, I think... | ||
lizmat | sorry, won't be able to give someone a Camelia for you before that :-( | 15:48 | |
SmokeMachine | yes, next week: www.meetup.com/London-Perl-Mongers...258358558/ | ||
lizmat: no problem... Ill find a way... :) when will be that meetings you sad? | 15:49 | ||
choiboi | lizmat: the repos is github.com/XiKuuKy/Avolution-Emoji , if people want to try it out, I'll start up the bot again | ||
lizmat | SmokeMachine: GPW act.yapc.eu/gpw2019/ | 15:50 | |
Amsterdam.pm every first Tue of the month, except next month due to GPW | |||
(second Tue) | |||
Niederrhein.pm every 3rd Thursday of the month (in Cologne) | |||
15:52
Kaiepi joined
|
|||
SmokeMachine | lizmat: I think Ill have to wait to rent a property before getting it... :( but thank you! | 15:53 | |
choiboi | How long does it take zef/p6 to notice a package has upgraded? (I just released a new version so I could update, but it is still only finding version 0.1.0) | ||
lizmat | choiboi: up to 4 hours I seem to recall | 15:54 | |
choiboi | lizmat: alright, I'll try to install from the local repo so that I can speed this up (for the emojibot) | ||
lizmat | :-) | 15:55 | |
choiboi | lizmat: If you want to try the emojibot, go to #perl6bottest or /msg emojibot , I recommend before using that you read the docs so you know what codes don't work | 15:57 | |
15:57
ambs left,
zacts left
16:13
jmerelo joined
|
|||
Geth | doc: a0048653aa | cfa++ | doc/Language/numerics.pod6 Rat degradation example. |
16:13 | |
synopsebot | Link: doc.perl6.org/language/numerics | ||
choiboi | is there anyway to find all lines with a comment on them and print them without writing a regex pattern? | 16:19 | |
16:24
ravenousmoose left
|
|||
moritz | depends on which language you are parsing, and how precise you want to do that | 16:24 | |
$string.contains('#') might be enough, or it might not | |||
lizmat | my $a = "#" | 16:26 | |
^^ not a comment | |||
choiboi | thanks | 16:28 | |
16:35
zacts joined
16:43
mowcat joined
|
|||
moritz | in general, you need to parse all quote-like constructs to reliably determine comments | 16:46 | |
16:50
bobby left
16:54
kurahaupo left,
kurahaupo joined
16:55
kurahaupo left,
kurahaupo joined
|
|||
choiboi | moritz: yeah, I'm writing a program to find comments in my code right now. | 16:55 | |
17:04
reach_satori left
|
|||
lucasb | m: dd ((1,2),(3,4)).Set | 17:19 | |
camelia | Set.new(4,1,3,2) | ||
lucasb | m: dd [(1,2),(3,4)].Set | ||
camelia | Set.new((1, 2),(3, 4)) | ||
lucasb | can't get why the different behavior | 17:20 | |
with regard lists vs. arrays | |||
jmerelo | lucasb: main difference is that Arrays are not immutable. Every element of the array is an item. But I don't think that's got anything to do with it. It's probably just using different constructors. | 17:23 | |
jnthn | m: dd ((1,2),$(3,4)).Set | ||
camelia | Set.new(1,2,(3, 4)) | ||
jnthn | m: dd ($(1,2),$(3,4)).Set | ||
camelia | Set.new((1, 2),(3, 4)) | ||
jmerelo | jnthn: so I got this right. It's the item thing. | 17:24 | |
jmerelo hi-fives himself. | |||
jnthn | Yes | ||
lucasb | ok, I think I get: array elements are implicty itemized while list elements aren't. right? :) thanks | 17:26 | |
*implicit(ly) | |||
jnthn | Yes | ||
17:34
Aceeri__ joined
17:36
ferreira joined
17:54
Kaiepi left
17:56
ravenousmoose joined
17:57
mowcat left,
ravenousmoose left
18:11
reach_satori joined
18:14
natrys joined
18:20
patrickb joined
18:23
zacts left
18:25
aindilis left
18:34
aindilis joined
18:36
autark joined
18:46
netrino joined
|
|||
Xliff | \o | 18:47 | |
18:54
molaf left
18:59
ufobat__ joined
19:02
ufobat_ left
|
|||
Geth | doc: 1fda10edd7 | cfa++ | doc/Language/numerics.pod6 Extend Rat degradation example. |
19:03 | |
synopsebot | Link: doc.perl6.org/language/numerics | ||
19:05
manwar joined
|
|||
manwar | I found this in office perl6 doc, has $.destination = self.origin eq 'Orlando' ?? 'Kampala' !! 'Orlando';, can I force it die if condition is false? | 19:12 | |
jmerelo | hi, manwar | 19:14 | |
El_Che | manwar: make it 'is required' | ||
manwar | Hi | ||
El_Che | docs.perl6.org/type/Attribute.html...s_required | 19:15 | |
manwar | But I want to add constraint if self.origin is not 'Orlando' then die | ||
jmerelo | manwar: you can simply use || die "Need this thing" | ||
manwar: it's better to catch that at the signature level | |||
sena_kun | m: class A { has $.a; has $.destination = $.a eq 'Orlando' ?? 'Kampala' !! die 'Too bad'; } say A.new(a => 'Orlando'); say A.new(a => 'Orlandoe'); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Virtual method call $.a may not be used on partially constructed object (maybe you mean $!a for direct attribute access here?) at <tmp>:1 ------> 3ass A { has $.a; has $.destination = $.a7⏏5 eq… |
||
sena_kun | m: class A { has $.a; has $.destination = $!a eq 'Orlando' ?? 'Kampala' !! die 'Too bad'; } say A.new(a => 'Orlando'); say A.new(a => 'Orlandoe'); | 19:16 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3rlando' ?? 'Kampala' !! die 'Too bad'; }7⏏5 say A.new(a => 'Orlando'); say A.new(a expecting any of: … |
||
sena_kun | m: class A { has $.a; has $.destination = $!a eq 'Orlando' ?? 'Kampala' !! die 'Too bad'; }; say A.new(a => 'Orlando'); say A.new(a => 'Orlandoe'); | ||
camelia | A.new(a => "Orlando", destination => "Kampala") Too bad in method at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
sena_kun | manwar, ^? | ||
manwar | Thanks sena_hun, let me try that | 19:17 | |
jmerelo | m: class A { has $.a; has $.destination where * eq "Orlando" }; my $a = A.new(destination => "Orlando); say $a | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot use variable $a in declaration to initialize itself at <tmp>:1 ------> 3 = A.new(destination => "Orlando); say $7⏏5a expecting any of: double quotes term |
||
jmerelo | m: class A { has $.destination where * eq "Orlando"; }; my $a = A.new(destination => "Orlando); say $a | 19:18 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot use variable $a in declaration to initialize itself at <tmp>:1 ------> 3 = A.new(destination => "Orlando); say $7⏏5a expecting any of: double quotes term |
||
jmerelo | m: class A { has $.destination where * eq "Orlando"; }; my $a = A.new(destination => "Orlando"); say $a | ||
camelia | A.new(destination => "Orlando") | ||
jmerelo | m: class A { has $.destination where * eq "Orlando"; }; my $a = A.new(destination => "Someplace else"); say $a | ||
camelia | Type check failed in assignment to $!destination; expected <anon> but got Str ("Someplace else") in block <unit> at <tmp> line 1 |
||
jmerelo | manwar: ^^^that's another way | 19:19 | |
manwar: you can use "where" to qualify attributes, and also arguments in functions. | |||
manwar | Excellent, jmerelo. | ||
Can I also say "is required" with the constraint? | 19:20 | ||
sena_kun | jmerelo, I don't think it is. | ||
manwar, sure. | |||
jmerelo, see: | |||
m: class A { has $.destination where "Orlando" }; say A.new; | 19:21 | ||
camelia | A.new(destination => <anon>) | ||
sena_kun | so destination has type of a lambda, but it doesn't work as a guard. | ||
jmerelo | manwar: "is required" will say that you need to assign a value; since that balue needs to be "Orlando", that should be taken care of. | 19:22 | |
19:22
grumble is now known as `-_-`grumble
|
|||
manwar | Perfect, sena_kun. | 19:22 | |
jmerelo | m: class A { has $.destination where * eq "Orlando" is required; }; my $a = A.new(destination => "Someplace else"); say $a | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3{ has $.destination where * eq "Orlando"7⏏5 is required; }; my $a = A.new(destinati expecting any of: constraint infix … |
||
19:22
zacts joined
|
|||
jmerelo | m: class A { has $.destination is required where * eq "Orlando"; }; my $a = A.new(destination => "Someplace else"); say $a | 19:23 | |
camelia | Type check failed in assignment to $!destination; expected <anon> but got Str ("Someplace else") in block <unit> at <tmp> line 1 |
||
jmerelo | m: class A { has $.destination is required where * eq "Orlando"; }; my $a = A.new; say $a | ||
camelia | The attribute '$!destination' is required, but you did not provide a value for it. in block <unit> at <tmp> line 1 |
||
sena_kun | m: class A { has $.destination where * eq "Orlando"; }; my $a = A.new(destination => "Orlando"); say $a | ||
camelia | A.new(destination => "Orlando") | ||
jmerelo | sena_kun: ^^^ now? | ||
sena_kun | oops, nevermind me, I am too dumb, sorry. :| | ||
19:24
sauvin left
|
|||
jmerelo | m: class A { has $.destination is required where * eq "Orlando"; }; my $a = A.new( destination => "Orlando" ); say $a | 19:24 | |
camelia | A.new(destination => "Orlando") | ||
jmerelo | m: class A { has $.destination where * eq "Orlando" = ''; }; my $a = A.new( destination => "Orlando" ); say $a | 19:25 | |
camelia | A.new(destination => "Orlando") | ||
jmerelo | m: class A { has $.destination where * eq "Orlando" = ''; }; my $a = A.new; say $a | ||
camelia | Type check failed in assignment to $!destination; expected <anon> but got Str ("") in block <unit> at <tmp> line 1 |
||
cfa | r | ||
er, or* | |||
m: subset OnlyOrlando of Str where * eq "Orlando"; class A { has OnlyOrlando $.destination }; say A.new(destination => "Orlando") | |||
camelia | A.new(destination => "Orlando") | ||
cfa | vs. | ||
jmerelo | m: class A { has $.destination where * eq "Orlando" = ''; }; my $a = A.new( destination => "Someplaceelse" ); say $a | ||
camelia | Type check failed in assignment to $!destination; expected <anon> but got Str ("Someplaceelse") in block <unit> at <tmp> line 1 |
||
cfa | m: subset OnlyOrlando of Str where * eq "Orlando"; class A { has OnlyOrlando $.destination }; say A.new(destination => "Miami") | ||
camelia | Type check failed in assignment to $!destination; expected OnlyOrlando but got Str ("Miami") in block <unit> at <tmp> line 1 |
||
cfa | which might be more descriptive | ||
er, add is required as before if necessary | |||
jmerelo | TMWTDI | 19:26 | |
19:26
rindolf left
|
|||
cfa | m: subset OnlyOrlando of Str where * eq "Orlando"; { .say } given class { has OnlyOrlando $.destination }.new: destination => "Orlando" # for jmerelo | 19:27 | |
camelia | <anon|1>.new(destination => "Orlando") | ||
19:27
rindolf joined
|
|||
cfa | er, .say needn't be braced there | 19:27 | |
rindolf | Hi all | 19:28 | |
manwar: hi | |||
19:28
MasterDuke left
|
|||
manwar | hi rindolf | 19:29 | |
Harzilein | gnu time hat ein merkwuerdiges default-ausgabeformat | ||
jmerelo | cfa: great! | ||
Harzilein | ewin | ||
rindolf | manwar: what's new? | ||
19:29
irced joined
|
|||
rindolf | what? | 19:30 | |
jmerelo | rindolf: manwar has made a pull request to every single CPAN module and now needs another language ;-) | ||
rindolf | jmerelo: heh | ||
manwar | rindolf, I am simply fighting at the moment | 19:31 | |
rindolf | manwar: ah, fighting what? | ||
manwar | may be one day, I will know enough Perl6 to contribute | ||
I am trying to create a class with 2 attrbutes, where I want add constraint the second attribute should always be smaller than the first attribute | 19:33 | ||
and both attributes are required | |||
19:34
w17t left
|
|||
manwar | I am new to IRC. I find it hard to share codes here | 19:35 | |
irced | i don't know perl6 from adam but that sounds a lot like a constructor definition | 19:36 | |
19:36
`-_-`grumble is now known as grumble
|
|||
discord6 | <Rogue> manwar: you can send pastebin/github gist links if it's a long segment of code | 19:36 | |
hahainternet | i recommend gists, as they can be edited and commented upon | ||
manwar | github gist would do, good idea | 19:37 | |
irced | maybe sub f($n1 $n2 where $n2 < $n1) { } as a constructor function | ||
discord6 | <Rogue> alternatively, I run a Discord guild if you'd like to join. Discord supports multi-line messages | ||
<Rogue> Though remember to be courteous, because the channel is bridged and it will come out as one big blob on the IRC side | |||
hahainternet | also then you have to support a closed source product | 19:38 | |
manwar | irced, I am not familiar with that syntax | ||
irced | hmm | ||
hahainternet | that is attempting to obsolete open source communication platforms | ||
(don't use Slack either ;p) | |||
sena_kun | m: class A { has $.a; has $.b; method TWEAK(:$!a!, :$!b!) { die "Too bad" unless $!a.chars > $!b.chars } }; say A.new(a => "abc", b => "ab"); | ||
camelia | A.new(a => "abc", b => "ab") | ||
discord6 | <Rogue> I greatly dislike Discord, but it's part of my initiative to get some new blood involved | 19:39 | |
sena_kun | m: class A { has $.a; has $.b; method TWEAK(:$!a!, :$!b!) { die "Too bad" unless $!a.chars > $!b.chars } }; say A.new(a => "abc", b => "abab"); | ||
camelia | Too bad in method TWEAK at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
discord6 | <Rogue> Ideally I would be running a Matrix server | ||
irced scratches his chin, his skins peels exposing patches of red subepithelial tissue. | |||
hahainternet | irced needs some steroids | ||
manwar | sena_kun, you are too fast for me ;-) | ||
hahainternet | and Rogue: we need mandatory federation for chat services :( | ||
irced | i would settle for a bandaid | ||
sena_kun | manwar, well, I was just thinking out loud. :) | ||
hahainternet | irced: i've got one in my car :) | 19:40 | |
irced | m: sub f ($n1 $2 where $n2 < $n1) { put $n2 $n1 } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed parameter at <tmp>:1 ------> 3sub f ($n17⏏5 $2 where $n2 < $n1) { put $n2 $n1 } expecting any of: constraint |
||
discord6 | <Rogue> I've been considering making my own chat platform with p6 | ||
irced | m: sub f ($n1, $2 where $n2 < $n1) { put $n2 $n1 } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot declare a numeric parameter at <tmp>:1 ------> 3sub f ($n1, $27⏏5 where $n2 < $n1) { put $n2 $n1 } |
||
irced | m: sub f ($n1, $n2 where $n2 < $n1) { put $n2 $n1 } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3b f ($n1, $n2 where $n2 < $n1) { put $n27⏏5 $n1 } expecting any of: infix infix stopper postfix statement e… |
||
hahainternet | irced: you'll need to wrap the where block in a {} | 19:41 | |
i think it's normally done using a whatever, right? | |||
Rogue: would be a good project, i'm most interested in what sort of standard would be needed | |||
discord6 | <Rogue> you need a comma between $n1 and $n2 | ||
irced draws his garrote from his coat pockets, tightens it between two fists, and eyes camelia with unusual interest. | |||
19:41
w17t joined
|
|||
irced nods to hahainternet. | 19:41 | ||
irced puts the wire back in his coat pocket. | 19:42 | ||
maybe sub f($n1, $n2 where $n2 < $n1) { } as a constructor function | |||
oops | 19:43 | ||
discord6 | <Rogue> hahainternet: it would be akin to IRC in the sense that you host your own server rather than relying on a centralized service, but I would want to support some of the attractive features Discord has as well | ||
irced checks the wiring in his speech chip. | |||
irced proclaims he is not an andy, and swears on a bible. | |||
manwar | sena_kun, how about if the attributes are Int? | ||
irced proceeds to open his skull. | |||
hahainternet | Rogue: yeah, a federated service, the problem comes in that there's so many different variations, but none interoperate | ||
i'd like to force them to interoperate by law :) | 19:44 | ||
discord6 | <Rogue> I'm not a GUI guy whatsoever, so I would only make the infrastructure | ||
irced | m: sub f($n1 where $n1 >=0) { put $n1 } | ||
camelia | ( no output ) | ||
sena_kun | manwar, you need other method then. `.chars` is for getting a string length in chars. I think, for Int it'll be just your old `>` operator, no? | ||
irced | m: sub f($n1 where $n1 >=0) { put $n1 }; f(-1); f(1); | ||
camelia | Constraint type check failed in binding to parameter '$n1'; expected anonymous constraint to be met but got Int (-1) in sub f at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: sub f($n1 where $n1 >=0) { put $n1 }; f(1); | ||
camelia | 1 | ||
irced | m: sub f($n1, $n2 where $n2 >=0) { put $n1 $n2 }; f(1); | 19:45 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3sub f($n1, $n2 where $n2 >=0) { put $n17⏏5 $n2 }; f(1); expecting any of: infix infix stopper postfix state… |
||
sena_kun | class A { has Int $.a; has Int $.b; method TWEAK(Int :$!a!, Int :$!b!) { die "Too bad" unless $!a > $!b } }; say A.new(a => 5, b => 10); | ||
m: class A { has Int $.a; has Int $.b; method TWEAK(Int :$!a!, Int :$!b!) { die "Too bad" unless $!a > $!b } }; say A.new(a => 5, b => 10); | |||
camelia | Too bad in method TWEAK at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
sena_kun | m: class A { has Int $.a; has Int $.b; method TWEAK(Int :$!a!, Int :$!b!) { die "Too bad" unless $!a > $!b } }; say A.new(a => 5, b => 3); | ||
camelia | A.new(a => 5, b => 3) | ||
irced ignores sena_kun's solution and continues to work. | 19:46 | ||
manwar | sena_kun, thanks TWEAK did the job | ||
discord6 | <kawaii> Are we not reinventing the wheel for the eighth time? XMPP is all of the things you want. (OSS, federated...) | ||
<Rogue> I have a particular dislike for XML, personally | 19:47 | ||
<Rogue> Plus it's just something I want to do from the ground up, because that's how I am | |||
19:48
ferreira left
|
|||
hahainternet | XMPP is... substantial | 19:48 | |
there are improvements that can be made, but few users will be willing to adopt | |||
irced | m: sub f($n1, $n2 where $n2 >=0) { put $n1 }; f(1); | 19:49 | |
camelia | Too few positionals passed; expected 2 arguments but got 1 in sub f at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: sub f($n1, $n2 where $n2 >=0) { put $n1 }; f(1, 2); | ||
camelia | 1 | ||
hahainternet | there needs to be an encryption safe way to ephemerally map phone numbers to an ident too | ||
irced | m: sub f($n1, $n2 where $n2 >=$n1) { put $n1 }; f(1, 2); | ||
camelia | 1 | ||
irced | m: sub f($n1, $n2 where $n2 >=$n1) { put $n1 }; f(1, 0); | ||
camelia | Constraint type check failed in binding to parameter '$n2'; expected anonymous constraint to be met but got Int (0) in sub f at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced exclaims, Eureka! | |||
manwar you see that? | |||
19:50
Kaiepi joined
|
|||
irced 's arm recedes into his back. | 19:50 | ||
did you all see that? | |||
19:51
natrys left
|
|||
hahainternet didn't see anything | 19:51 | ||
you must be hallucinating | |||
irced | what's that you say? quiet, i'm trying to listen to hahainternet. | ||
manwar | irced, I am confused, is "f" class? | ||
irced | no, and I'm not a PERL6 programmer! but if you could just manage to make sub f a constructor function you'll be golden | 19:52 | |
any1? | |||
manwar | Unfortunately I don't know how to | ||
irced | help | ||
bots! | |||
discord6 | <Rogue> Chill | 19:53 | |
irced pays particular notice to discord6. | |||
irced fumbles with something in his pocket. | 19:54 | ||
irced looks around for affirmation. | 19:55 | ||
sena_kun | m: class A { has $.a is required; has $.b is required; method new($n1, $n2 where $n2 >=$n1) { self.bless(a => $n1, b => $n2); } }; say A.new(1, 5); A.new(1, 0); | ||
camelia | A.new(a => 1, b => 5) Constraint type check failed in binding to parameter '$n2'; expected anonymous constraint to be met but got Int (0) in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced ignores sena_kun's brilliant solution. | |||
manwar | irced, I can follow your code now, thanks. Let me try. | 19:56 | |
irced grins evilly as sena_kun's work is dismissed by manwar. | 19:57 | ||
m: class B { method new($n1, $n2 where $n2 >= $n1) { A.new(1,5) }; | 19:59 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 031, $n2 where $n2 >= $n1) { A.new(1,5) };7⏏5<EOL> |
||
irced | m: class B { method new($n1, $n2 where $n2 >= $n1) { A.new(1,5) }}; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: A used at line 1 |
||
irced | m: class B { method new($n1, $n2 where $n2 >= $n1) { B.new(1,5) }}; | ||
camelia | ( no output ) | ||
irced | m: class B { method new($n1, $n2 where $n2 >= $n1) { say 'good to go' } }; B.new(1,5); | 20:00 | |
camelia | good to go | ||
irced | m: class B { method new($n1, $n2 where $n2 >= $n1) { say 'good to go' } }; B.new(5,1); | ||
camelia | Constraint type check failed in binding to parameter '$n2'; expected anonymous constraint to be met but got Int (1) in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | manwar, you catch that? | ||
irced fishes out his pet man-o-war from his aquarium to throw on sena_kun's head. | 20:01 | ||
did you all see that? | 20:02 | ||
manwar | irced: Too few positionals passed; expected 3 arguments but got 1 | 20:03 | |
irced | m: class B { method new($n1, $n2 where $n2 >= $n1) { say 'good to go' } }; B.new(5,1); | ||
camelia | Constraint type check failed in binding to parameter '$n2'; expected anonymous constraint to be met but got Int (1) in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: class B { method new($n1, $n2 where $n2 >= $n1) { say 'good to go' } }; B.new(1,5); | ||
camelia | good to go | ||
irced | are you challenging camelia? | 20:04 | |
that's good, she's a strumpet anyway | |||
irced leers at camelia. | |||
manwar | I dare not | 20:05 | |
irced | i dunno, i thought i made a class and a constructor there.. but you say no. maybe sena_kun can help. | ||
sena_kun, can you give us something like a page long this time | |||
20:06
kylese left
|
|||
irced | i think he's working on it | 20:07 | |
s/he's | |||
sena_kun | you likely want to read docs.perl6.org/language/classtut | ||
irced feels schooled. | |||
right | |||
20:07
jmerelo left
|
|||
manwar | I am exactly reading the same page | 20:08 | |
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 > $n1) { return self.bless(:$n1, :$n2); } submethod BUILD(:$n1, :$n2) {} } | 20:19 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Strange text after block (missing semicolon or comma?) at <tmp>:1 ------> 3 $n1) { return self.bless(:$n1, :$n2); }7⏏5 submethod BUILD(:$n1, :$n2) {} } expecting any of: infix… |
||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$n1, :$n2); }; submethod BUILD(:$n1, :$n2) {} } | 20:21 | |
camelia | ( no output ) | ||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$n1, :$n2); }; submethod BUILD(:$n1, :$n2) {} }; my cammie = dumbCamelia.new(1,5); | 20:22 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed my (did you mean to declare a sigilless \cammie or $cammie?) at <tmp>:1 ------> 3method BUILD(:$n1, :$n2) {} }; my cammie7⏏5 = dumbCamelia.new(1,5); |
||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$n1, :$n2); }; submethod BUILD(:$n1, :$n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | ( no output ) | ||
20:22
dant joined
|
|||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$n1, :$n2); }; submethod BUILD(:$n1, :$n2) {} }; my $cammie = dumbCamelia.new(5,1); | 20:22 | |
camelia | Constraint type check failed in binding to parameter '$n2'; expected anonymous constraint to be met but got Int (1) in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced does his own special hero dance and manages to keep his pants up. | |||
manwar, you see that? | |||
did you all see that? | 20:23 | ||
irced explains to camelia that andy's don't have rights. | 20:24 | ||
vrurg | irced: are your attributes lack dot in the declaration on purpose? | ||
irced | camelia: what do I look like, the Abe Lincoln for andys????? tell it on the mountain. | ||
yeah, what's the dot for anyway? | 20:25 | ||
vrurg | irced: basically, it has to be 'has $.n1' | ||
discord6 | <Rogue> the dot twigil generates a method to access that field | ||
<Rogue> if you want it to be private, you'd use an ! | 20:26 | ||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$n1, :$n2); }; submethod BUILD(:$n1, :$n2) {} }; my $cammie = dumbCamelia.new(1,5); put "$cammie.n1" | ||
camelia | dumbCamelia<78828560>.n1 | ||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$.n1, :$.n2) {} }; my $cammie = dumbCamelia.new(1,5); put "$cammie.n1" | 20:27 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Virtual method call $.n1 may not be used on partially constructed object (maybe you mean $!n1 for direct attribute access here?) at <tmp>:1 ------> 3(:$.n1, :$.n2); }; submethod BUILD(:$.n17⏏5,… |
||
irced | m: class dumbCamelia { has Int $n1; has Int $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$.n1, :$.n2) {} }; my $cammie = dumbCamelia.new(1,5); put "$cammie.n1" | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Virtual method call $.n1 may not be used on partially constructed object (maybe you mean $!n1 for direct attribute access here?) at <tmp>:1 ------> 3(:$.n1, :$.n2); }; submethod BUILD(:$.n17⏏5,… |
||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$.n1, :$.n2) {} }; my $cammie = dumbCamelia.new(1,5); | 20:28 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Virtual method call $.n1 may not be used on partially constructed object (maybe you mean $!n1 for direct attribute access here?) at <tmp>:1 ------> 3(:$.n1, :$.n2); }; submethod BUILD(:$.n17⏏5,… |
||
vrurg | irced: because accessors are not yet available to construction submethods. use direct attribute access with $! | ||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$.n1, :$.n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Virtual method call $.n1 may not be used on partially constructed object (maybe you mean $!n1 for direct attribute access here?) at <tmp>:1 ------> 3(:$.n1, :$.n2); }; submethod BUILD(:$.n17⏏5,… |
||
lucasb | almost there :) | 20:29 | |
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($.n1, $.n2 where $.n2 >= $.n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$.n1, :$.n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Virtual method call $.n1 may not be used on partially constructed object (maybe you mean $!n1 for direct attribute access here?) at <tmp>:1 ------> 3(:$.n1, :$.n2); }; submethod BUILD(:$.n17⏏5,… |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($.n1, $.n2 where $.n2 >= $.n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$!.n1, :$!.n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed parameter at <tmp>:1 ------> 3ss(:$.n1, :$.n2); }; submethod BUILD(:$!7⏏5.n1, :$!.n2) {} }; my $cammie = dumbCame expecting any of: constraint |
||
lucasb | P6 doesn't has thrigils | 20:30 | |
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$!.n1, :$!.n2) {} }; my $cammie = dumbCamelia.new(1,5); | 20:31 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed parameter at <tmp>:1 ------> 3ss(:$.n1, :$.n2); }; submethod BUILD(:$!7⏏5.n1, :$!.n2) {} }; my $cammie = dumbCame expecting any of: constraint |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$n1, :$n2); }; submethod BUILD(:$!.n1, :$!.n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed parameter at <tmp>:1 ------> 3less(:$n1, :$n2); }; submethod BUILD(:$!7⏏5.n1, :$!.n2) {} }; my $cammie = dumbCame expecting any of: constraint |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$.n1, :$.n2); }; submethod BUILD(:$!n1, :$!n2) {} }; my $cammie = dumbCamelia.new(1,5); | 20:32 | |
camelia | Cannot look up attributes in a dumbCamelia type object in method n1 at <tmp> line 1 in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$!n1, :$!n2); }; submethod BUILD(:$!n1, :$!n2) {} }; my $cammie = dumbCamelia.new(1,5); | 20:33 | |
camelia | Cannot look up attributes in a dumbCamelia type object in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$!n1, :$!n2); }; submethod BUILD(:$.n1, :$.n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Virtual method call $.n1 may not be used on partially constructed object (maybe you mean $!n1 for direct attribute access here?) at <tmp>:1 ------> 3(:$!n1, :$!n2); }; submethod BUILD(:$.n17⏏5,… |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$!n1, :$!n2); }; submethod BUILD(:$!n1, :$!n2) {} }; my $cammie = dumbCamelia.new(1,5); | 20:34 | |
camelia | Cannot look up attributes in a dumbCamelia type object in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($.n1, $.n2 where $.n2 >= $.n1) { return self.bless(:$!n1, :$!n2); }; submethod BUILD(:$!n1, :$!n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | Cannot look up attributes in a dumbCamelia type object in method n1 at <tmp> line 1 in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: class dumbCamelia { has $.n1; has $.n2; method new($!n1, $!n2 where $!n2 >= $!n1) { return self.bless(:$!n1, :$!n2); }; submethod BUILD(:$!n1, :$!n2) {} }; my $cammie = dumbCamelia.new(1,5); | 20:35 | |
camelia | Cannot look up attributes in a dumbCamelia type object in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | m: class dumbCamelia { has $n1; has $n2; method new($n1, $n2 where $n2 >= $n1) { return self.bless(:$n1, :$n2); }; submethod BUILD(:$n1, :$n2) {} }; my $cammie = dumbCamelia.new(1,5); | ||
camelia | ( no output ) | ||
irced scratches his head. | |||
irced has decided dot notation is a bug. | |||
irced puts his hand in his coat from which a fly swatter emerges. | 20:36 | ||
dant | '"a \"b\" \"c\""' ~~ regex { ^ \" (.*) <!before \\> \" $ } | 20:37 | |
p6: '"a \"b\" \"c\""' ~~ regex { ^ \" (.*) <!before \\> \" $ } | |||
camelia | ( no output ) | ||
dant | p6: say 3; | ||
camelia | 3 | ||
irced begins swatting camelia repeatedly. | 20:39 | ||
20:40
manwar left
|
|||
irced unremittingly swats camelia, despite her plaintive protests. | 20:41 | ||
you've got bugs! i'm trying to help you! stay still! | |||
dant | Is there a canonical regex for matching quoted strings with escapes? The best I can come up with is rx { \" (.*) <!before \\> \" } . | 20:43 | |
20:46
zacts left
20:49
guifa left
20:51
kst` joined
20:52
kst left
20:54
zachk joined
20:56
zachk left,
zachk joined
21:04
Aceeri__ left
21:17
molaf joined
21:23
cfa left
|
|||
sena_kun | dant, I don't think there is a "canonical" one. | 21:27 | |
but you can look at modules.perl6.org/dist/JSON::Tiny:...mar.pm#L25 | 21:28 | ||
dant | sena_kun: thanks for the suggestion ... very helpful | 21:29 | |
irced | p6: '"a \"b\" \"c\""' ~~ regex { ^ <quoted> (.*) <!before \\> <quoted> $ } | 21:30 | |
camelia | No such method 'quoted' for invocant of type 'Match' in regex at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
irced | p6: '"a \"b\" \"c\""' ~~ regex { ^ <"(.*) <!before \\>"> $ } | 21:31 | |
camelia | 5===SORRY!5=== Unrecognized regex metacharacter < (must be quoted to match literally) at <tmp>:1 ------> 3'"a \"b\" \"c\""' ~~ regex { ^ <7⏏5"(.*) <!before \\>"> $ } Malformed regex at <tmp>:1 ------> 3'"a \"b\" \"c\""' ~~ regex… |
||
irced | p6: '"a \"b\" \"c\""' ~~ regex { <^ "(.*) <!before \\>"> $ } | 21:32 | |
camelia | 5===SORRY!5=== Unrecognized regex metacharacter < (must be quoted to match literally) at <tmp>:1 ------> 3'"a \"b\" \"c\""' ~~ regex { <7⏏5^ "(.*) <!before \\>"> $ } Unrecognized regex metacharacter ^ (must be quoted to match literal… |
||
21:35
autark left
21:51
sena_kun left
21:58
choiboi left
22:00
ferreira joined
|
|||
moritz | dant: the common approach is to parse the insides of a quote string as ``neither \ nor "`` or either \\ or \" | 22:09 | |
in code, \" ~ \" [[ <-["\\]>+ | \\ <["\\]> ]*] | 22:10 | ||
(untested) | |||
22:11
rindolf left
22:27
dominix__ joined
22:31
dominix_ left
22:39
kkielak joined
22:54
lucasb left
23:00
kkielak left
23:04
john_parr_ joined
23:05
john_parr left,
john_parr_ is now known as john_parr
23:07
Kaiepi left
23:19
kurahaupo left,
kurahaupo joined
|
|||
dant | moritz: The "~" feature is perfect. Very clever, but required RTFM. Thanks | 23:31 | |
23:32
kurahaupo left,
kurahaupo joined,
kurahaupo left
23:33
kurahaupo joined
23:39
manchicken joined
23:40
zacts joined
23:41
Gothmog_ left
23:48
manchicken left
23:51
kurahaupo left
23:52
kurahaupo joined,
manchicken joined
23:59
manchicken left
|