[00:00] <[Coke]> ugexe: that still gives a broken pipe exception [00:00] <[Coke]> (but then it's not "unhandled") [00:01] *** Shaeto left [00:02] *** reportable6 left [00:03] *** reportable6 joined [00:03] *** neshpion left [00:06] *** neshpion joined [00:06] *** dogbert17 joined [00:07] *** brtastic left [00:07] *** dogbert11 left [00:14] *** Shaeto joined [00:16] *** Kaiepi left [00:17] *** Kaiepi joined [00:18] *** Kaiepi left [00:18] *** Kaiepi joined [00:19] *** Shaeto left [00:23] *** Shaeto joined [00:27] *** Shaeto left [00:32] *** Shaeto joined [00:37] *** Shaeto left [00:41] *** Shaeto joined [00:46] *** Shaeto left [00:51] *** Shaeto joined [00:51] *** pecastro left [00:55] *** Shaeto left [01:00] *** Shaeto joined [01:04] *** Shaeto left [01:06] *** vrurg joined [01:09] *** Shaeto joined [01:09] *** aindilis joined [01:11] *** vrurg left [01:11] *** vrurg joined [01:13] *** Shaeto left [01:19] *** vrurg left [01:21] *** parv joined [01:27] *** Shaeto joined [01:31] *** Shaeto left [01:36] *** Shaeto joined [01:36] *** [Sno] joined [01:39] *** sno left [01:41] *** kvw_5 joined [01:41] *** Shaeto left [01:44] *** kvw_5_ left [01:45] *** Shaeto joined [01:50] *** Shaeto left [01:54] *** Shaeto joined [01:59] *** Shaeto left [02:03] *** Shaeto joined [02:04] *** Manifest0 left [02:06] *** Manifest0 joined [02:08] *** Shaeto left [02:13] *** Shaeto joined [02:17] *** Shaeto left [02:18] Huh. Why doesn't this regex work? [02:18] https://replit.com/@Xliff/DimTrustworthyCondition#main.raku [02:21] Xliff: Not found error: This is not the page you're looking for. [02:21] If you think this is a mistake please contact us_ [02:21] Hrm,,, [02:22] *** Shaeto joined [02:26] *** Shaeto left [02:27] tusooa: Try this - https://replit.com/join/dyyhuasi-xliff [02:31] *** Shaeto joined [02:35] *** Shaeto left [02:36] *** parv left [02:40] *** Shaeto joined [02:42] *** squashable6 left [02:44] *** Shaeto left [02:44] *** squashable6 joined [02:49] *** Shaeto joined [02:52] *** aindilis` joined [02:53] *** aindilis left [02:54] *** Shaeto left [02:55] *** rindolf joined [02:58] *** aindilis` left [02:58] *** Shaeto joined [03:03] *** Shaeto left [03:07] *** Shaeto joined [03:12] *** Shaeto left [03:13] Xliff: it asked me to login [03:16] tusooa: OK, nevermind then. Thanks! [03:16] *** Shaeto joined [03:18] [Coke]: 'use NativeCall; sub signal(int32 $, int64 $) is native {}; signal(SIGPIPE, 0);' works on 64-bit linux. see https://github.com/rakudo/rakudo/issues/3004 and https://github.com/rakudo/rakudo/issues/4214 [03:21] *** Shaeto left [03:26] *** Shaeto joined [03:30] *** Shaeto left [03:35] *** Shaeto joined [03:39] 0 is SIG_IGN? [03:39] *** Shaeto left [03:53] *** Shaeto joined [03:58] *** Shaeto left [04:02] *** Shaeto joined [04:04] *** parv joined [04:06] *** Shaeto left [04:11] *** Shaeto joined [04:15] *** Shaeto left [04:20] *** Shaeto joined [04:27] *** Shaeto left [04:32] *** Shaeto joined [04:44] *** Shaeto left [04:49] *** Shaeto joined [04:53] *** Shaeto left [04:54] *** parabolize left [04:57] *** neshpion left [04:58] *** Shaeto joined [05:03] *** Shaeto left [05:16] *** Shaeto joined [05:21] *** Shaeto left [05:23] *** Geth left [05:24] c++ has reinterpret_cast for saying "no. i really know this is type X" class Animal {...}; class Dog is Animal {...}; my $animal = Dog.new; # can i ask $animal if is really a dog? [05:24] err.. my Animal $animal = Dog.new ; [05:25] kybr: say $animal ~~ Dog; [05:26] m: class Animal { }; class Dog is Animal { }; my $animal = Dog.new; say $animal ~~ Dog; say $animal ~~ Animal; [05:26] rakudo-moar 8b35fa643: OUTPUT: «True␤True␤» [05:27] m: class Animal { }; class Dog is Animal { }; my $doc = Dog.new; my Animal $animal = $dog; say $animal ~~ Dog; say $animal ~~ Animal; [05:27] rakudo-moar 8b35fa643: OUTPUT: «5===SORRY!5=== Error while compiling ␤Variable '$dog' is not declared. Did you mean any of these: '$doc',␤'Dog'?␤at :1␤------> 3 my $doc = Dog.new; my Animal $animal = 7⏏5$dog; say $animal ~~ Dog; say $animal ~~␤» [05:27] m: class Animal { }; class Dog is Animal { }; my $dog = Dog.new; my Animal $animal = $dog; say $animal ~~ Dog; say $animal ~~ Animal; [05:27] rakudo-moar 8b35fa643: OUTPUT: «True␤True␤» [05:27] So even typed as Animal, $animal still knows its a Dog [05:28] i see that, but i really want to write a method of Animal that uses introspection to give me a string that is the real (most specific) type of self. [05:28] m: class Animal { }; class Dog is Animal { }; my $dog = Dog.new; my Animal $animal = $dog; say $animal.^name [05:28] rakudo-moar 8b35fa643: OUTPUT: «Dog␤» [05:28] There you go. [05:29] Unless I am missing something. If so, please let me know. [05:29] maybe i'm missing something :) i think i need to collect my thoughts. thank you. [05:29] yw! [05:32] m: class Animal { }; class Dog is Animal { method bark { say 'Woof!' }; my $dog = Dog.new; my Animal $animal = $dog; say $animal.^name; $animal.bark [05:32] rakudo-moar 8b35fa643: OUTPUT: «5===SORRY!5=== Error while compiling ␤Missing block␤at :1␤------> 3 = $dog; say $animal.^name; $animal.bark7⏏5␤ expecting any of:␤ statement end␤ statement modifier␤ statement modifier loo…» [05:32] m: class Animal { }; class Dog is Animal { method bark { say 'Woof!' }; }; my $dog = Dog.new; my Animal $animal = $dog; say $animal.^name; $animal.bark [05:32] rakudo-moar 8b35fa643: OUTPUT: «Dog␤Woof!␤» [05:33] And on that note, I'm confused. If it's typed Animal, it should not know how to .bark() -- right? [05:33] m: class Animal {}; class Dog is Animal {}; class Cat is Animal {}; my Animal $a = Dog.new; my Dog $d = $a; my Cat $c = $a [05:33] rakudo-moar 8b35fa643: OUTPUT: «Type check failed in assignment to $c; expected Cat but got Dog (Dog.new)␤ in block at line 1␤␤» [05:34] Xliff: no, typing is gradual [05:34] moon-child: And that means? [05:34] $x ~~ Animal means $x can do _at least_ anything an Animal can, not at most [05:34] Ah. OK. That's what I suspected. Thanks! [05:34] *** Shaeto joined [05:35] ha. how about this.. from an animal method, may i call a method on my dog-self? [05:35] moon-child: So all "my Animal $a" means is that $a ~~ Animal MUST be true. Right? [05:35] sort of the opposite dirrection of callsame [05:36] kybr: I'm confused by the question. Isn't that what I just demonstrated with .bark() ? [05:36] m: class Animal { method do-stuff { self.bark } }; class Dog is Animal { method bark { say 'woo' } }; my $d = Dog.new; $d.do-stuff [05:36] rakudo-moar 8b35fa643: OUTPUT: «woo␤» [05:36] Xliff: to my understanding yes [05:37] class Animal { method do-stuff { self.bark } }; class Dog is Animal { method bark { say 'woo' } }; my $d = Dog.new; $d.do-stuff; my $emo = Animal.new; $emo.do-stuff [05:37] Xliff: well, $a ~~ Animal means Animal.ACCEPTS($a). So you could make your own ACCEPTS [05:37] m: class Animal { method do-stuff { self.bark } }; class Dog is Animal { method bark { say 'woo' } }; my $d = Dog.new; $d.do-stuff; my $emo = Animal.new; $emo.do-stuff [05:37] rakudo-moar 8b35fa643: OUTPUT: «woo␤No such method 'bark' for invocant of type 'Animal'. Did you mean any␤of these: 'Bag', 'WALK'?␤ in method do-stuff at line 1␤ in block at line 1␤␤» [05:37] moon-child: I know that. I am asking about type checking. [05:37] Not .ACCEPTS. [05:37] afaik yes [05:38] So, as demonstrated, "my Animal $a" can do Dog's methods. [05:38] This is kinda counter-intuitive to most OOP implementations. [05:38] Xliff: yes. [05:39] *** Shaeto left [05:39] And with that, I must suspend all processes for a few hours. :) [05:39] * Xliff & [05:40] night [05:42] m class Parent { method show { self.defaults.signature}} ; class Child is Parent { method defaults($a, $b = 2, :$c = 3) {}};Child.show().say; [05:42] m: class Parent { method show { self.defaults.signature}} ; class Child is Parent { method defaults($a, $b = 2, :$c = 3) {}};Child.show().say; [05:42] rakudo-moar 8b35fa643: OUTPUT: «Too few positionals passed; expected 2 or 3 arguments but got 1␤ in method defaults at line 1␤ in method show at line 1␤ in block at line 1␤␤» [05:43] it's not really that i want to call a method on the dog as inspect it's signature. [05:44] *** Shaeto joined [05:46] *** Sgeo left [05:48] *** Shaeto left [05:49] i want to refer to a method (defaults) without calling it [05:53] *** Shaeto joined [05:57] *** Shaeto left [06:01] m: class Parent { method show { self.WHAT.^methods.first(*.name eq "defaults").signature } }; class Child is Parent { method defaults ($a, $b = 2, :$c = 3) {} }; Child.show.say; [06:01] rakudo-moar 8b35fa643: OUTPUT: «(Child: $a, $b = 2, :$c = 3, *%_)␤» [06:02] *** Shaeto joined [06:02] *** reportable6 left [06:03] *** reportable6 joined [06:06] I'm not sure what you're hoping to accomplish, and I'm actually afk for now, but it kinda sounds like you might want to re-think your class heirarchy or whatever architectural choices led to this need [06:06] *** Shaeto left [06:11] *** Shaeto joined [06:15] *** Shaeto left [06:16] *** vrurg joined [06:19] *** Sgeo joined [06:20] *** Shaeto joined [06:20] *** vrurg left [06:24] *** Shaeto left [06:28] raydiak: yes! that's what i wanted. and Yes! your are almost certainly correct that i need to rethink how i'm designing things. [06:29] *** Shaeto joined [06:33] *** Shaeto left [06:38] *** Shaeto joined [06:43] *** Shaeto left [06:47] *** Shaeto joined [06:52] *** Shaeto left [06:57] *** Shaeto joined [07:01] *** Shaeto left [07:06] *** Shaeto joined [07:10] *** Shaeto left [07:11] *** frost-lab joined [07:15] *** Shaeto joined [07:15] *** ufobat_ joined [07:20] *** Shaeto left [07:30] *** domidumont joined [07:33] *** Shaeto joined [07:38] *** Shaeto left [07:40] *** ufobat_ left [07:42] kybr: glad I could help :) [07:46] *** wamba joined [07:50] *** domidumont left [07:51] *** Shaeto joined [07:56] *** Shaeto left [08:00] *** Shaeto joined [08:05] *** Shaeto left [08:09] *** Shaeto joined [08:14] *** Shaeto left [08:15] *** Shaeto joined [08:38] *** pecastro joined [08:39] *** xelxebar left [08:39] *** xelxebar joined [09:04] *** Sgeo left [09:18] *** Shaeto left [09:19] *** Shaeto joined [09:24] *** Shaeto left [09:25] *** linkable6 left [09:25] *** linkable6 joined [09:29] *** Shaeto joined [09:33] *** Shaeto left [09:36] *** DiffieHellman left [09:37] *** DiffieHellman joined [09:37] *** Geth joined [09:38] *** Shaeto joined [09:42] *** Shaeto left [09:47] *** Shaeto joined [09:51] *** Shaeto left [09:56] *** Shaeto joined [10:01] *** Shaeto left [10:05] *** Shaeto joined [10:10] *** Shaeto left [10:14] *** Shaeto joined [10:19] *** Shaeto left [10:22] *** parv left [10:32] *** Shaeto joined [10:37] that's a fun error msg: [10:37] m: my Int $a; $a.VAR.abs [10:37] rakudo-moar 8b35fa643: OUTPUT: «No such method 'abs' for invocant of type 'Int'. Did you mean 'abs'?␤ in block at line 1␤␤» [10:37] *** Shaeto left [10:42] *** Shaeto joined [10:46] *** Shaeto left [10:47] *** vrurg joined [10:51] *** Shaeto joined [10:52] *** vrurg left [10:55] *** Shaeto left [11:00] *** Shaeto joined [11:05] *** Shaeto left [11:09] *** Shaeto joined [11:13] *** Shaeto left [11:14] *** dataange` joined [11:15] *** dataangel left [11:18] *** Shaeto joined [11:23] *** Shaeto left [11:27] *** Shaeto joined [11:32] *** Shaeto left [11:36] *** Shaeto joined [11:41] *** Shaeto left [11:45] *** Shaeto joined [11:47] *** [Sno] left [11:50] *** Shaeto left [11:55] *** Shaeto joined [11:59] *** Shaeto left [12:02] *** reportable6 left [12:02] *** reportable6 joined [12:04] *** Shaeto joined [12:08] *** Shaeto left [12:09] *** mowcat joined [12:18] g'day, i have a question about unicode and first word char match. the result i want is to separate a set of words into 4 sets based on their first character. but there seem to be several <:charprop> codes that are similar. [12:21] the 4 sets should be lower-case <:Lc>, upper-case <:Uc>, number <:Nu>, and punctuation <:P> [12:22] sorry, too early [12:22] *** Shaeto joined [12:24] again: <:LI>, <:Lu>, <:N>, and <:P>. will those sets be mutually exclusive but complete? [12:25] given a match on the first char of a word? [12:26] *** Shaeto left [12:31] *** Shaeto joined [12:31] kyber: and look into roles, too [12:32] roles solved some subclass problems for me [12:32] kybr: ^^^ [12:36] *** vrurg joined [12:36] *** Shaeto left [12:40] *** vrurg left [12:49] *** Shaeto joined [12:53] *** Shaeto left [12:58] *** Shaeto joined [12:59] *** domidumont joined [13:01] *** thundergnat joined [13:03] *** Shaeto left [13:06] tbrowder: Depending on your word list, that should be fairly complete. A few words with initial characters that _won't_ fall into one of those categories: $100, +47, Džungla [13:08] *** Shaeto joined [13:12] *** rindolf left [13:12] *** Shaeto left [13:14] *** rindolf joined [13:16] *** codesect` joined [13:17] *** Shaeto joined [13:19] *** codesections left [13:21] *** Shaeto left [13:23] *** parabolize joined [13:26] *** Shaeto joined [13:29] *** domidumont left [13:31] *** Shaeto left [13:35] *** Shaeto joined [13:37] *** domidumont joined [13:39] *** Shaeto left [13:44] *** Shaeto joined [13:48] *** Shaeto left [13:53] *** Shaeto joined [13:58] *** Shaeto left [14:02] *** Shaeto joined [14:05] *** sftp left [14:07] *** Shaeto left [14:11] *** Shaeto joined [14:13] *** frost-lab left [14:15] *** rindolf left [14:16] *** Shaeto left [14:16] *** sftp joined [14:19] *** brtastic joined [14:20] *** Shaeto joined [14:25] *** Shaeto left [14:30] *** Shaeto joined [14:34] *** Shaeto left [14:39] *** Shaeto joined [14:43] *** Shaeto left [14:48] *** Shaeto joined [14:52] *** Shaeto left [14:56] *** cog joined [14:58] *** [Sno] joined [15:02] *** [Sno] left [15:06] *** Shaeto joined [15:11] *** Shaeto left [15:15] *** Shaeto joined [15:16] *** mowcat left [15:20] *** Shaeto left [15:24] *** Shaeto joined [15:25] thundergnat: i see $ won't, but why Dzugla? [15:25] *** codesect` left [15:26] is it that Dz is a combined/composed thing? [15:27] btw, i am working on my Abbreviations module to fix what i see is a problem with your auto-abbreviations [15:28] *** Shaeto left [15:30] it didn't make sense to me that the list 'A ab Abcde' came out wth 3 until i realized that i could break the analysis into subgroups by leading char type [15:30] no, the problem is not yours, the problem is my using it [15:32] um, let me check the above statement again... [15:33] *** Shaeto joined [15:38] *** Shaeto left [15:38] word set 'A ab Abcde' shows 2 but i wondered why the ab couldn't be 'a ab' as abbrevs. that's when i decided to start breaking word sets into subgroups when it is appropriate. based on your comments i may add a couple more subgroups and then have a catchall group. [15:38] thank! [15:43] *** Shaeto joined [15:47] *** Shaeto left [15:52] *** Shaeto joined [15:57] *** Shaeto left [16:00] *** Ulti_ is now known as Ulti [16:01] *** Shaeto joined [16:05] *** Shaeto left [16:06] thundergnat: i'll add <:S> for symbol and put all else into a catch-all group (unless you can tell me how to catch 'Dz' [16:10] *** Shaeto joined [16:13] *** Kaiepi left [16:13] *** Kaiepi joined [16:14] *** Shaeto left [16:19] *** Shaeto joined [16:24] *** Shaeto left [16:28] *** Shaeto joined [16:33] *** Shaeto left [16:37] *** Shaeto joined [16:38] *** codesections joined [16:39] is there a good way to wrap a fn for its next call, but then unwrap it after? e.g, a .wrap-once equivalent? [16:42] *** Shaeto left [16:47] *** Shaeto joined [16:51] *** Shaeto left [16:52] *** vrurg joined [16:54] *** vrurg left [17:05] *** Shaeto joined [17:10] *** Shaeto left [17:13] *** lucasb joined [17:14] *** Shaeto joined [17:18] *** Shaeto left [17:23] *** Shaeto joined [17:24] *** Sgeo joined [17:28] *** Shaeto left [17:28] *** neshpion joined [17:30] *** Xliff left [17:30] *** patrickb joined [17:32] *** Shaeto joined [17:32] *** vrurg joined [17:33] tbrowder: Sorry, got an emergency call in to work right after my last comment. Copy pasto, that third one should have been Džungla (Dž ligature) with a :Lt property (title case). [17:34] They are obscure but exist. [17:35] m: say .key, '=>', .value.head(5) for (^1000).map(*.chr).classify( { .substr(0,1).uniprop } ) [17:35] rakudo-moar 8b35fa643: OUTPUT: «Zs=>(  )␤Sk=>(^ ` ¨ ¯ ´)␤Cf=>(­)␤Lt=>(Dž Lj Nj Dz)␤Sm=>(+ < = > |)␤Cc=>(␀ )␤Mn=>(̀ ́ ̂ ̃ ̄)␤No=>(² ³ ¹ ¼ ½)␤Pe=>() ] })␤Sc=>($ ¢ £ ¤ ¥)␤Lu=>(A B C D E)␤Lm=>(ʰ ʱ ʲ ʳ ʴ)␤Pd=>(-)␤Lo=>(ª º ƻ …» [17:35] so probably i should add that group anyway, just for **fun** :-D [17:36] *** Shaeto left [17:36] *** neshpion left [17:36] or add them to the <:Lu> group [17:37] *** neshpion joined [17:39] i assume this regex should work /^ <:Lu>|<:Lt>/ for that [17:41] *** Shaeto joined [17:43] *** [Sno] joined [17:45] hm, maybe that's overkill. just upper/lower case and all else in another group [17:46] once i have the subgrouping, if a user requests i can easily add other groups. [17:46] *** Shaeto left [17:46] thanks so much [17:50] *** Shaeto joined [17:53] *** domidumont left [17:55] *** Shaeto left [17:59] *** Shaeto joined [18:02] *** reportable6 left [18:03] *** reportable6 joined [18:04] *** Shaeto left [18:08] *** Shaeto joined [18:10] *** brtastic left [18:13] *** Shaeto left [18:18] *** Shaeto joined [18:23] *** Shaeto left [18:24] *** vrurg left [18:27] *** Shaeto joined [18:31] *** Shaeto left [18:35] *** rindolf joined [18:35] *** maggotbrain left [18:36] *** maggotbrain joined [18:36] *** Shaeto joined [18:41] *** Shaeto left [18:45] *** Shaeto joined [18:49] *** Shaeto left [18:54] *** oddp joined [18:54] *** Shaeto joined [18:56] *** Kaiepi left [18:57] *** Kaiepi joined [18:59] *** Shaeto left [18:59] i have a pipeline like so: .comb.map(...).produce(* + *).unique; now, what's an elegant way to insert 0 into that seq before .unique since .produce doesn't allow a custom starting value? [18:59] 2021-05-07T06:43:02Z #raku oddp this migth do what you want: https://gfldex.wordpress.com/2021/01/03/internal-indirection/ [19:03] *** Shaeto joined [19:04] Might not be able to keep that one-liner with seq and instead have to collect into an array and then push 0 onto it, right? [19:04] perhaps some form of ... ? [19:06] huh? i'm converting a small dlang script that allows setting a custom seed value for cumulativeFold/produce [19:08] *** Shaeto left [19:10] *** MasterDuke joined [19:12] .map({ $++ ?? $_ !! (0,$_).Slip }) [19:15] perhaps Seq should have an .inject method :-) [19:16] interesting, thanks, will try to integrate that somehow. map has a bunch of these atm: when '>' { -1i }; when '<' { i }; ... [19:18] .map({ my $val = do given $_ { when Str { 1 }; when Int { 2 }; }; $++ ?? $val !! (0,$val).Slip }) [19:21] *** Shaeto joined [19:23] thanks for that, appreciated! [19:26] *** Shaeto left [19:29] *** aindilis joined [19:30] *** ecocode[m]1 joined [19:31] *** Shaeto joined [19:32] *** ecocode[m] left [19:32] what do you say, is this also acceptable? or not recommended because it allocates too much? my $foo = ...produce(* + *); say unique(|0, |$foo).elems; [19:35] only if $foo will be less than 65535 values [19:35] *** Shaeto left [19:36] m: my $foo = 0..65535; say unique(|0, |$foo).elems [19:36] rakudo-moar 8d37210ee: OUTPUT: «Too many arguments (65537) in flattening array, only 65535 allowed.␤ in block at line 1␤␤» [19:36] m: my $foo = 0..65535; say unique(|0, $foo.Slip).elems [19:36] rakudo-moar 8d37210ee: OUTPUT: «65536␤» [19:37] damn, good to know, thanks! [19:39] m: my $foo = 0..65535; say (|0, |$foo).unique.elems # method form is fine [19:39] rakudo-moar 8d37210ee: OUTPUT: «65536␤» [19:39] *** rindolf left [19:44] sweet, prolly sticking to that for now then. thank you! [19:49] *** Shaeto joined [19:53] *** Shaeto left [19:58] *** Shaeto joined [20:11] *** parabolize left [20:16] i can't remmeber where, but i think i've seen an impressive, succinct list of Raku language features and boasts. maybe in a presentation? was it shaped like a christmas tree? [20:18] *** MasterDuke left [20:26] *** Shaeto left [20:29] *** patrickb left [20:29] *** parv joined [20:37] *** parabolize joined [20:40] *** Sgeo_ joined [20:41] *** Sgeo left [20:42] *** ecocode_ left [20:44] *** ecocode joined [20:45] *** neshpion left [20:48] *** neshpion joined [20:49] *** aborazmeh joined [20:57] *** ecocode left [21:01] *** mowcat joined [21:02] *** wamba left [21:03] *** Anton joined [21:07] I am trying out the package Math::Matrix ( https://github.com/pierre-vigier/Perl6-Math-Matrix ). I wonder should use Math::Matrix or Math::Libgsl::LinearAlgebra. Has anyone used Math::Matrix for "serious" matrix computation workflows? [21:27] *** wingfold_ joined [21:28] *** ecocode joined [21:28] *** aborazmeh left [21:30] *** wingfold left [21:30] *** wingfold_ left [21:31] *** wingfold joined [21:39] *** Anton left [21:49] *** brtastic joined [21:52] *** parv left [21:55] *** rindolf joined [22:02] .tell kybr checkout my 2021 advent post about santa claus and raku: a christmas tree forming a raku script [22:02] tbrowder, I'll pass your message to kybr [22:03] uh, 2020, that is [22:04] i found it in a talk Larry Wall gave and i found a good list of feature in the FAQ, but i'd love to see others. [22:08] *** dogbert11 joined [22:11] *** dogbert17 left [22:11] *** ecocode left [22:16] *** ecocode joined [22:16] *** dogbert17 joined [22:18] *** dogbert11 left [22:29] *** dogbert11 joined [22:32] *** dogbert17 left [22:45] *** mowcat left [22:49] *** rindolf left [22:58] *** ecocode left [22:59] m: multi sub foo($x) { 'no' }; multi sub foo($x where *.Int) { 'ok' }; say foo $_ for ; [22:59] rakudo-moar 8d37210ee: OUTPUT: «no␤ok␤no␤» [22:59] is the last case really expected behaviour? [23:00] *** ecocode joined [23:09] *** pecastro left [23:12] hm, foo($x where /\d+/) seems to work, good enough i guess [23:19] *** b2gills joined [23:31] m: say ① ~~ /\d+/; # a friendly reminder that \d+ is not a very good integer validator [23:31] rakudo-moar 8d37210ee: OUTPUT: «「1」␤» [23:33] eh what's wrong with that [23:33] m: my Int $x = ① [23:33] rakudo-moar 8d37210ee: ( no output ) [23:34] its cute but not really what most people expect when validating things [23:35] well, '0' not getting caught by the above multi sub is even more unexpected [23:36] where False [23:36] where 0 [23:36] still [23:36] *.Int returns an Int, what do you think it does? [23:37] i.e. its not checking if * is an Int [23:39] m: multi sub foo($x) { "no" }; multi sub foo(Int $x) { "ok" }; say foo $_ for ; [23:39] rakudo-moar 8d37210ee: OUTPUT: «no␤ok␤ok␤» [23:47] *** brtastic left [23:49] alright, thanks for that. now i just have to figure out, why that's not working for my actual script [23:55] *** dogbert17 joined [23:59] seems like the above isn't working when recursive calls are involved [23:59] *** dogbert11 left