[00:03] *** pilne joined [00:04] *** oneeggeach joined [00:04] *** p6steve joined [00:09] *** p6steve left [00:35] *** rbt left [00:36] *** rbt joined [00:42] *** lucasb left [00:46] *** farcas1982regreg joined [00:50] *** sena_kun joined [00:51] *** mike_s left [00:52] *** Altai-man_ left [00:52] *** oneeggeach left [00:52] *** benlittle left [00:53] *** benlittle joined [00:54] p6: react { [00:54] rakudo-moar fa3c0dba9: OUTPUT: «5===SORRY!5=== Error while compiling ␤Missing block␤at :1␤------> 3react {7⏏5␤» [00:54] with Proc::Async.new: « echo "hello world" », :out { [00:54] whenever .stdout { say "stdout: ", .say } [00:54] whenever .start {} [00:54] } [00:54] } [00:55] p6: react { with Proc::Async.new: « echo "hello world" », :out { whenever .stdout { say "stdout: ", .say } whenever .start {} } } [00:55] rakudo-moar fa3c0dba9: OUTPUT: «5===SORRY!5=== Error while compiling ␤Strange text after block (missing semicolon or comma?)␤at :1␤------> 3henever .stdout { say "stdout: ", .say }7⏏5 whenever .start {} } }␤» [00:56] p6: react { with Proc::Async.new( « echo "hello world" », :out) { whenever .stdout { say "stdout: ", .say } whenever .start {} } } [00:56] rakudo-moar fa3c0dba9: OUTPUT: «5===SORRY!5=== Error while compiling ␤Strange text after block (missing semicolon or comma?)␤at :1␤------> 3henever .stdout { say "stdout: ", .say }7⏏5 whenever .start {} } }␤» [00:59] p6: react { with Proc::Async.new: « echo "hello world" », :out { whenever .stdout { .say }; whenever .start {}; } } [00:59] rakudo-moar fa3c0dba9: OUTPUT: «hello world␤␤» [01:51] *** aindilis joined [01:59] *** cognominal joined [02:02] *** cognomin_ left [02:05] *** p6steve joined [02:06] *** riatre joined [02:06] *** finsternis joined [02:06] *** cpan-raku left [02:07] *** cpan-raku joined [02:07] *** cpan-raku left [02:07] *** cpan-raku joined [02:10] *** p6steve left [02:15] *** stoned75 left [02:16] *** stoned75 joined [02:22] *** Itaipu joined [02:25] *** stoned75 left [02:31] *** stoned75 joined [02:41] *** Itaipu left [02:44] *** Itaipu joined [02:49] *** Altai-man_ joined [02:51] *** sena_kun left [02:56] is there a way to get ahold of a c++ style member function pointer in raku (a callable that needs an invocant to be called) [03:17] *** molaf joined [03:18] New module released to CPAN! Test::Async (0.0.5) by 03VRURG [03:28] *** pilne left [03:29] *** melezhik left [04:10] *** hungrydonkey joined [04:12] Demos[m]: there is I believe but I've not used enough NativeCall to tell you how [04:15] I don't want an actual c++ member fn ptr [04:15] just something that works kinda like that in raku [04:16] *** hungrydonkey left [04:16] to use instead of $obj."$methodname"() [04:17] *** aborazmeh left [04:22] *** stoned75 left [04:23] *** stoned75 joined [04:29] *** hungrydonkey joined [04:30] *** molaf left [04:50] *** sena_kun joined [04:52] *** Altai-man_ left [05:16] *** sauvin joined [05:20] *** hungrydonkey left [05:23] how do I write a Set (or SetHash) that only accepts strings as members? [06:02] *** p6steve joined [06:06] *** p6steve left [06:12] *** stoned75 left [06:13] *** stoned75 joined [06:15] *** andrzejku joined [06:18] what's the nicest way to add a parameter to all my main multi subs? [06:21] *** squashable6 left [06:23] *** squashable6 joined [06:43] *** sjm_uk joined [06:48] depends on what you need to do with it [06:48] maybe the simplest is to simply add it to all candidates [06:49] if it's just one central action, it may be possible to do it in a proto, but I have no idea if that interferes with the introspection into the multi signatures [06:49] *** Altai-man_ joined [06:52] *** sena_kun left [07:15] *** pecastro joined [07:16] *** stoned75 left [07:16] *** stoned75 joined [07:22] *** rindolf joined [07:28] *** lgtaube joined [07:33] *** abraxxa left [07:36] *** dakkar joined [07:45] *** rindolf left [07:51] *** abraxxa joined [07:55] *** abraxxa left [07:56] *** abraxxa joined [08:03] *** p6steve joined [08:08] *** p6steve left [08:09] *** rindolf joined [08:26] *** natrys joined [08:34] *** Ven`` joined [08:37] *** farcas1982regreg left [08:38] Manifest0: you could use a trait mod maybe? [08:38] my Str $x is max-len(10) [08:38] *** farcas1982regreg joined [08:39] is intlike [08:45] *** AlexDaniel left [08:47] *** Kaeipi joined [08:47] *** Kaiepi left [08:50] *** sena_kun joined [08:52] *** Altai-man_ left [09:11] *** xelxebar_ joined [09:11] *** xelxebar left [09:21] *** kensanata joined [09:22] *** kensanata left [09:23] *** kensanata joined [09:26] *** Black_Ribbon left [09:29] *** pecastro left [09:29] *** pecastro joined [10:04] *** p6steve joined [10:05] *** titsuki joined [10:08] *** p6steve left [10:09] *** aborazmeh joined [10:09] *** aborazmeh left [10:09] *** aborazmeh joined [10:31] *** rindolf left [10:31] *** wbn left [10:32] *** wbn joined [10:46] *** titsuki left [10:49] *** Altai-man_ joined [10:52] *** sena_kun left [10:56] *** natrys left [10:58] *** rindolf joined [11:09] *** natrys joined [11:10] *** ensamvarg2 joined [11:13] *** chloekek joined [11:13] Altreus: Seems like a perfect fit for a Proxy [11:14] see my accepted answer to a similar question here: https://stackoverflow.com/questions/55250700/is-there-a-clamp-method-sub-for-ranges-num-etc-in-perl6 [11:15] in fact you could make a generalized `valid` sub that acceps a validator function, and returns a Proxy that validates against that fuction in the STORE method or throws/dies [11:16] are you trying to reinvent subset types? [11:17] m: subset SmallerTen of Int where * < 10; my SmallerTen $x = 5; $x = 20; [11:17] rakudo-moar fa3c0dba9: OUTPUT: «Type check failed in assignment to $x; expected SmallerTen but got Int (20)␤ in block at line 1␤␤» [11:19] *** rindolf left [11:23] *** girafe joined [11:24] m: my %s is Set[Str] = ; dd %s # Demos[m] [11:24] rakudo-moar fa3c0dba9: OUTPUT: «Set[Str].new("b","c","a")␤» [11:25] m: my %s is Set[Str] = 1,2,3; dd %s [11:25] rakudo-moar fa3c0dba9: OUTPUT: «Type check failed in binding; expected Str but got Int (1)␤ in block at line 1␤␤» [11:25] lizmat: ah that triggers a rakudo bug in my copy of rakudo [11:25] (the latest rakudo star) [11:25] yeah, parameterization of QuantHashes is relatively recent [11:26] what does dd do? [11:26] m: my Int $x = 42; dd $x [11:26] rakudo-moar fa3c0dba9: OUTPUT: «Int $x = 42␤» [11:26] oh, found it [11:26] moritz: yeah, good point... Proxy's are mainly useful when you want to attach additional logic around STORE or FETCH [11:26] basically: note @args>>.raku [11:26] Demos[m]: it prints out stuff for debugging [11:29] but can I use it to format my hard disk? [11:33] sure, surround it with shell() :) [11:33] with enough creativity, everything is possible [11:34] *** chloekek left [11:36] so, darlings, how is the JIT support on ARM going: https://www.bloomberg.com/news/articles/2020-04-23/apple-aims-to-sell-macs-with-its-own-chips-starting-in-2021 [11:36] :) [11:45] El_Che: yeah... interesting... :-( [11:46] *** raschipi joined [11:50] releasable6, status [11:50] raschipi, Next release will happen when it's ready. 5 blockers. 166 out of 345 commits logged (⚠ 3 warnings) [11:50] raschipi, Details: https://gist.github.com/d129a05a824bd2ac317f945c3f6c68f6 [12:02] *** k-man_ left [12:05] *** p6steve joined [12:06] *** k-man_ joined [12:09] *** p6steve left [12:10] *** rbt left [12:11] *** rbt joined [12:21] lizmat: the day apple made the awfull itunes optional in windows for using its devices, the macos users were doomed :) [12:22] possibly, otoh it would appear to me that JITting should be either a simpler task on ARM equipment, or less needed ? [12:23] feasability: it's a more easier arch, but I have no idea honestly. Less needed, I wouldn't think so. The mac laptos will be underpowered. [12:24] my mac airs with macos feels a lot slower than the 4y older i7 laptop with ubuntu [12:27] *** rindolf joined [12:28] *** titsuki joined [12:31] well, they do seem to target the cheaper models (aka underpowered) models first [12:40] *** p6steve joined [12:40] *** Doc_Holliwood left [12:40] Thing is, I think, that those are the models people buy if they mac is not provided by $work [12:41] well, as jnthn pointed out, the only thing you won't get is JIT, it would still have spesh and inlining [12:41] I run Linux at work, but if I wasn't allowed I would moved to mac before using win 10. But even then I wouldn't really ask for a 2500€ laptop at work :) [12:42] now I ask for many somwhat cheaper :) [12:42] so I can run all os'es :) [12:43] although Dell Latitutes are in way cheap nor low range :) [12:43] *** molaf joined [12:44] *** molaf left [12:44] *** p6steve left [12:44] I am glad so I can test raku on more OSes [12:46] (I sadly left the windows laptop at work for the lockdown. I am having a hard time running the tests of the SuperMAIN module on Windows) [12:46] *** rbt left [12:46] shell $cmd is not really a thing in Windows it seems :( [12:47] *** rbt joined [12:50] *** sena_kun joined [12:52] *** Altai-man_ left [13:06] *** melezhik joined [13:10] *** stoned75 left [13:12] *** stoned75 joined [13:19] *** molaf joined [13:23] I have previously made the decision to use a mac instead of a windows 10 machine [13:23] I do not regret it [13:23] nor do I now have a mac or any desire to own one :P [13:24] (I have also previously installed debian on a mac, back when they used the powerbook architecture) [13:29] People, please stop, I'm already sweating just thinking about these things. 😅 [13:29] If Apple keep up making it such a nuisance to ship software to run on Mac, I wonder how many projects will just think, screw it. [13:32] Microsoft wants the same, and is already taking steps to make it so. [13:33] Windows 10 S, used on the Surface, is already this way. [13:38] *** Ven`` left [13:45] *** mowcat joined [13:47] *** aborazmeh left [13:51] *** dakkar left [13:52] *** dakkar joined [14:02] *** AlexDaniel joined [14:02] *** AlexDaniel left [14:02] *** AlexDaniel joined [14:04] *** chloekek joined [14:05] we need JIT on ARM anyway [14:05] for all SBCs out there [14:08] hm that probably means both 64-bit and 32-bit… [14:10] need is a strong word [14:10] *** chloekek left [14:10] “we” is also a strong word [14:10] *I* need JIT on ARM, please :) [14:11] diverting resources just for jit on arm - idk - if i had to pick between that and almost anything else [14:12] Probably fully switching over to the expression JIT is a pre-req for sensibly doing ARM JIT [14:15] *** gabiruh joined [14:16] sourceable6: [2, 5].max [14:16] AlexDaniel, https://github.com/rakudo/rakudo/blob/fa3c0db/src/core.c/Any-iterable-methods.pm6#L1310 [14:16] sourceable6: [2, 5].max() [14:16] AlexDaniel, https://github.com/rakudo/rakudo/blob/fa3c0db/src/core.c/Any-iterable-methods.pm6#L1311 [14:18] *** stoned75 left [14:19] sourceable6: 42 cmp ‘foo’ [14:19] AlexDaniel, https://github.com/rakudo/rakudo/blob/fa3c0db/src/core.c/Order.pm6#L15 [14:20] sourceable6: 42.5.Bridge cmp 50.5.Bridge [14:20] AlexDaniel, https://github.com/rakudo/rakudo/blob/fa3c0db/src/core.c/Int.pm6#L83 [14:20] nope sourceable6, that's wrong :) [14:21] good try though [14:21] sourceable6: (42.5.Bridge) cmp (50.5.Bridge) [14:21] AlexDaniel, https://github.com/rakudo/rakudo/blob/fa3c0db/src/core.c/Num.pm6#L415 [14:22] sourceable6: 42.5 cmp 50.5 [14:22] AlexDaniel, https://github.com/rakudo/rakudo/blob/fa3c0db/src/core.c/operators.pm6#L61 [14:23] lizmat: interesting… so cmp for Rats goes through Nums? [14:23] looks like [14:23] ah no, I'm blind again :) [14:24] sourceable6: 42.5 <=> 50.5 [14:24] AlexDaniel, https://github.com/rakudo/rakudo/blob/fa3c0db/src/core.c/Rat.pm6#L492 [14:24] that's what it does [14:24] ah, yes [14:24] but [14:24] m: NaN cmp 0e0 [14:24] rakudo-moar fa3c0dba9: OUTPUT: «WARNINGS for :␤Useless use of "cmp" in expression "NaN cmp 0e0" in sink context (line 1)␤» [14:24] m: dd NaN cmp 0e0 [14:24] rakudo-moar fa3c0dba9: OUTPUT: «Order::More␤» [14:25] m: dd 0e0 cmp NaN [14:25] rakudo-moar fa3c0dba9: OUTPUT: «Order::Less␤» [14:25] m: dd NaN cmp NaN [14:25] rakudo-moar fa3c0dba9: OUTPUT: «Order::Same␤» [14:25] *** Maylay joined [14:25] wow [14:25] I'm not sure where's any good answer for the first two... [14:25] *there's [14:25] m: say 'NaN' cmp '0e0' [14:25] rakudo-moar fa3c0dba9: OUTPUT: «More␤» [14:30] I sorta expected all of those to give NaN [14:30] or a Failure [14:30] now for something completely different: Pictures! https://twitter.com/liztormato/status/1253330094237483016 [14:31] lizmat: omg! Amazing! [14:31] so many camelias ♥ [14:32] lizmat: Failure maybe, but cmp is spec'd to return Order, and I don't think Order or Num is much good; Order with the usual Failure sneaking through rule could work I guess [14:33] *** sena_kun left [14:34] *** sena_kun joined [14:34] *** sena_kun left [14:35] *** sena_kun joined [14:41] lizmat: Could you ask Wendy for a more explicit license because sometimes it's a requirement. [14:42] Oh, now I found it. [14:44] I think the NonCommercial limitation is a problem, though. Can't be used by anyone actually involved in Raku or any of it's websites, since all of them are commercial. [14:45] Unless that's what is intended the intention. [14:46] Anyone that wrote a book about Raku also can't use it. [14:49] *** Altai-man_ joined [14:51] *** sena_kun left [14:53] *** Doc_Holliwood joined [15:04] *** kensanata left [15:14] *** aborazmeh joined [15:14] *** aborazmeh left [15:14] *** aborazmeh joined [15:26] raku's MAIN multi sub is real neat [15:45] What I think is even neater is that the whole language was shaped to make MAIN fit very well. Very well designed, the features aren't just bolted on. [15:45] *** p6steve joined [15:45] *** stoned75 joined [15:49] *** k-man__ joined [15:51] *** k-man_ left [16:04] *** ensamvarg2 left [16:04] *** ensamvarg_g6 joined [16:11] I consider bolted on features a feature of perl (and raku) [16:11] I love the live and let live attitude perl has [16:11] (and raku) [16:12] Real question though: Is there a way to instruct rakudo's build system to link additional static libraries? [16:14] i haven't really seen HyperWhatever get much love [16:14] m: say (1...10).map(*+1) [16:14] rakudo-moar fa3c0dba9: OUTPUT: «(2 3 4 5 6 7 8 9 10 11)␤» [16:14] m: say (1...10).&(**+1) [16:14] rakudo-moar fa3c0dba9: OUTPUT: «(2 3 4 5 6 7 8 9 10 11)␤» [16:14] useful for one-liners ig [16:17] didn't mean to interrupt tho, didn't see i was scrolled up when i sent the first message [16:26] also: is there a way to add a trait for every sub in a block [16:26] I wanna add "is native('...') is export without having to write it every time [16:29] Demos[m]: No, there's no way to factor that out, though it's typical to have a `constant` for the native library name so that isn't repeated. [16:29] this would be a good use case for macros (but probably not in the first macro iteration) [16:31] I mean I should be able to define a sub that just creates the native sub and adds it to the module via the MOP right? [16:31] or a YOLO slang :D [16:31] oh also, on the native call front: is there a way to override the library name? [16:32] The MOP is about OO stuff. You could define your own trait_mod that applies the two, however. [16:32] I want to be able to distribute my application as a single executable, that incluedes the interpreter, static linked to the libs I need, and my files [16:32] And that will mean there's only one thing to repeat [16:32] mmm that could be good [16:33] Well you can muck around with ModuleHOW no? [16:33] I don't see how it'd help you really; subs are lexical [16:34] So there's not a way to reach them via ModuleHOW [16:34] The language generally has a quite strict early-bound (lexical) vs late-bound (objects) split. [16:37] *** dakkar left [16:41] so I guess my own trait, or a YOLO slang [16:43] well, you could always have a list of subs [16:44] apply-traits( sub a(...) { }, sub b(...) { }); [16:44] that way apply-traits gets a list of subs as arguments [16:44] and can go wild :D [16:46] Not really because traits should be applied at BEGIN time [16:46] I guess you can try sticking a BEGIN before calling apply-traits [16:48] *** p6steve left [16:50] *** sena_kun joined [16:50] *** andrzejku left [16:51] *** Altai-man_ left [16:53] *** aborazmeh left [16:56] *** chloekek joined [17:03] *** titsuki left [17:04] ¦ doc: 27b676ce47 | (JJ Merelo)++ | doc/Type/Test.pod6 [17:04] ¦ doc: Notes on cached Seqs, refs #2632 [17:04] ¦ doc: review: https://github.com/Raku/doc/commit/27b676ce47 [17:04] ¦ doc: 5649e1b768 | (JJ Merelo)++ | doc/Language/operators.pod6 [17:04] ¦ doc: Single arg version of eqv #2632 [17:04] ¦ doc: review: https://github.com/Raku/doc/commit/5649e1b768 [17:04] ¦ doc: 195b3b4159 | (JJ Merelo)++ | doc/Language/operators.pod6 [17:04] ¦ doc: Single arg version of :=: #2632 [17:04] Link: https://docs.raku.org/type/Test [17:04] ¦ doc: review: https://github.com/Raku/doc/commit/195b3b4159 [17:04] DOC#2632 [open]: https://github.com/Raku/doc/issues/2632 [Hacktoberfest][RFE][big][docs][good first issue][help wanted][new][⚠ Top Priority ⚠] Checklist for 6.d [17:04] Link: https://docs.raku.org/language/operators [17:10] *** rbt left [17:11] *** rbt joined [17:11] *** p6steve joined [17:20] ¦ doc: 910c6efd15 | (JJ Merelo)++ | doc/Type/Grammar.pod6 [17:20] ¦ doc: Literally that #2632 [17:20] ¦ doc: [17:20] ¦ doc: OK, I should probably ellaborate on this, but that would need a lot of additional context. Let's leave that for later improvement. [17:20] ¦ doc: review: https://github.com/Raku/doc/commit/910c6efd15 [17:20] Link: https://docs.raku.org/type/Grammar [17:20] DOC#2632 [open]: https://github.com/Raku/doc/issues/2632 [Hacktoberfest][RFE][big][docs][good first issue][help wanted][new][⚠ Top Priority ⚠] Checklist for 6.d [17:23] vrurg: I just tested a new version of Test-Async on both centos/debian it fails - http://repo.westus.cloudapp.azure.com/rakudist [17:23] HTH [17:23] logs: http://repo.westus.cloudapp.azure.com/rakudist/reports/Test::Async/debian/1587662128.txt [17:23] http://repo.westus.cloudapp.azure.com/rakudist/reports/Test::Async/centos/1587661668.txt [17:24] weird enough, but now details are seen on logs [17:25] verbose mode is not enabled in rakudist, but it's rare when it is really needed [17:25] melezhik: and this is actually when verbose is needed the most, I guess. :) [17:26] yeah, but in 99% default `zef install` produces enough information ... [17:26] I can tweak rakudist harness though and rerun test [17:26] 5 minutes [17:27] have launched new build with verbose mode enabled, so let's see :-) [17:28] http://repo.westus.cloudapp.azure.com/rakudist/reports/Test::Async/debian/1587662831.txt [17:28] Aha, thanks! Meanwhile, Linux Mint – installed with no problem. [17:30] Can I make new allomorphs? [17:31] Demos[m]: p [17:31] Sorry, wrong window. :) [17:31] ummm [17:32] were you addressing me in another window? [17:32] Demos[m]: it's autocompletion. [17:32] But, anyway: look for but [17:33] Another way is to have a class coercing the way you need it. [17:33] m: class Foo { method Str { "StrFoo" }; method Bool { False } }; say ~Foo.new; say ? Foo.new' [17:33] rakudo-moar fa3c0dba9: OUTPUT: «5===SORRY!5=== Error while compiling ␤Two terms in a row␤at :1␤------> 3{ False } }; say ~Foo.new; say ? Foo.new7⏏5'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤…» [17:33] m: class Foo { method Str { "StrFoo" }; method Bool { False } }; say ~Foo.new; say ? Foo.new [17:33] rakudo-moar fa3c0dba9: OUTPUT: «StrFoo␤False␤» [17:34] m: say IntStr.^mro.map(*.^name).join(", ") [17:34] rakudo-moar fa3c0dba9: OUTPUT: «IntStr, Int, Str, Cool, Any, Mu␤» [17:35] *** kst joined [17:41] sena_kun, jnthn: on https://commaide.com/download you can only download the community release, while the changelog on the samepage is for the Complete release I think [17:42] El_Che, no? [17:42] no [17:42] I misread [17:42] it's 2019.03 changelog [17:42] El_Che, 2020.03 starts with "Add a Raku REPL with multiline commands, history, auto-completion of symbols, and the usual range of annotations and intentions". ;) [17:42] not 2020.03 [17:42] *** p6steve left [17:42] so the changelog is not for 2020.01.0 [17:43] still mismatch, but not the one I wrongly saw [17:43] El_Che, no, it is correct. [17:43] ah ok [17:43] sorry for the noise then [17:44] El_Che, it says "migrated to 2019.03", but this is because we indeed migrated (well, for community folks) in 2020.01. [17:44] yeah, I get that now [17:45] so vrurg: it's test failure - http://repo.westus.cloudapp.azure.com/rakudist/reports/Test::Async/debian/1587662831.txt [17:45] at t/150-throws-fails.t ... [17:46] please also be aware it runs on docker [17:47] *** cpan-raku left [17:48] *** cpan-raku joined [17:48] *** cpan-raku left [17:48] *** cpan-raku joined [17:48] melezhik: I can't test on docker, it doesn't support macos. Otherwise the log is still pretty much useless. The failed test is a subtest which is in turn a bunch of subtests too. :( [17:49] yeah. i can't help more, it run in verbose mode. other than run stuff from docker manually ... [17:49] I can't test on docker, it doesn't support macos" [17:49] this is why rakudist exists [17:51] *** aborazmeh joined [17:51] *** aborazmeh left [17:51] *** aborazmeh joined [17:51] *** andrzejku joined [17:53] melezhik: I think there is an env var which causes zef/prove to output all test messages [17:53] I don't know, if you tell me. so far I use "zef install --verbose" [18:02] zef --debug ? [18:02] *** p6steve joined [18:02] but I doubt it will give us more info [18:03] melezhik: Nah. zef uses prove. I can't quickly find what forces prove to output everything, not just summaries. [18:07] ¦ doc: patrickbkr++ created pull request #3347: Document `:$win-verbatim-args` argument of `run()` and related functions [18:07] ¦ doc: review: https://github.com/Raku/doc/pull/3347 [18:08] *** p6steve left [18:09] *** p6steve joined [18:11] *** patrickb joined [18:14] New module released to CPAN! BitEnum (0.4) by 03CTILMES [18:16] *** benlittle left [18:20] hoelzro: https://hub.docker.com/_/rakudo-star lists you as the contact person. Any chance we can get a rakudo star 2020.01 on dockerhub? [18:20] *** p6steve left [18:20] *** molaf left [18:22] *** xfix joined [18:24] m: class C is Hash { method m { self .= new } }; C.m [18:24] rakudo-moar fa3c0dba9: OUTPUT: «Cannot resolve caller STORE(C:U: C:D); none of these signatures match:␤ (Hash:D: \to_store, *%_)␤ (Hash:D: \keys, \values, *%_)␤ in method m at line 1␤ in block at line 1␤␤» [18:24] moritz: oh, we should change that [18:24] how can i do something like that? [18:25] jdv79: like what? [18:25] *** sauvin left [18:25] oh, i see. nm. [18:25] sorry [18:28] *** chloekek left [18:29] New module released to CPAN! BitEnum (0.5) by 03CTILMES [18:29] I'd like to find someone to take the rakudo star image off my hands - anyone interested? [18:30] if nobody else does it, maybe [18:30] though I'm usually too little around to do it justice [18:30] https://rakudostar.com/files/star/ doesn't contain the 2020.01 files -- is there a new URL for that? [18:37] *** x[LGWs4x4i]uG2N0 joined [18:38] hello, is it possible to use grammars for things that aren't strings? [18:39] not yet [18:39] ah [18:39] though signatures are pretty good at matching data structures [18:39] we have someone working on something like that [18:39] oh, cool [18:39] x[LGWs4x4i]uG2N0: and guifa2 is currently working on supporting grammars for binary data [18:40] note that you *can* right now but it's a bit clunky [18:40] *** chloekek joined [18:40] oh? how? [18:40] See http://blogs.perl.org/users/sylvain_colinet/2019/01/mis-using-perl-6-grammars-decompressing-zelda-3-gfx.html [18:41] haha, thanks [18:41] so basically you just turn your thing into a string? [18:44] i was thinking of using grammars as a quick way to implement a VM [18:45] and i guess turning the sequence of operations into a string works, except for cases where an operation also changes the sequence itself [18:46] but i guess grammars might not be the right tool for that [18:47] x[LGWs4x4i]uG2N0: basically. For old-school regex (like, in 8-bit encoding era) there wouldn't be muchof a question because there wasn't much of a distinction between a string and a blob, they were both totally arbitrary pieces of data taken in 8bit chunks [18:49] Most (all?) regex engines these days are focused on string processing, and strings today are ...more complicated today :-) [18:49] *** Altai-man_ joined [18:51] *** sena_kun left [18:53] moritz: in the interim, if you'd like to try to make the change to get the 2020.01 release out, I can clean out the cobwebs in my mind and try to walk you through it =) [18:55] hoelzro: I'd love to, but I already fail at the download URLs :/ [18:55] =( [18:57] + curl -fsSL https://rakudostar.com/files/star/rakudo-star-2020.01.tar.gz.asc -o /tmp/tmp.tuE3jMPjfJ/rakudo.tar.gz.asc [18:57] curl: (22) The requested URL returned error: 404 [19:00] *** p6steve joined [19:01] vrurg: - here is the longest log - http://repo.westus.cloudapp.azure.com/rakudist/reports/Test::Async/debian/1587668061.txt [19:02] and it shows something, , thanks ugexe: for help [19:02] ugexe: thanks [19:03] melezhik: so, what's the env for getting it? [19:03] *** Xliff joined [19:03] \o [19:03] zef install . --verbose --/prove --/tap-harness [19:03] For NativeCall, is there a way to tell if a CArray is managed or unmanaged? [19:04] managed meaning created and provisioned by Raku [19:06] *** sjm_uk left [19:06] *** k-man__ left [19:07] melezhik: ok, thanks! Especially for the log. It looks weird. [19:08] vrurg: ^^ [19:08] Or is that a better question for nine? [19:09] *** k-man__ joined [19:09] m: use NativeCall; sub malloc (uint64) returns CArray[uint8] is native; my $a = malloc(100); say $a.elems [19:09] rakudo-moar fa3c0dba9: OUTPUT: «5===SORRY!5=== Error while compiling ␤A unit-scoped sub definition is not allowed except on a MAIN sub;␤Please use the block form. If you did not mean to declare a unit-scoped sub,␤perhaps you accidentally placed a semicolon after routi…» [19:09] m: use NativeCall; sub malloc (uint64) returns CArray[uint8] is native { * }; my $a = malloc(100); say $a.elems [19:09] rakudo-moar fa3c0dba9: OUTPUT: «Don't know how many elements a C array returned from a library␤ in method elems at /home/camelia/rakudo-m-inst-1/share/perl6/core/sources/8660F65A7B3492675BB3B2058DB30E411A4C4E54 (NativeCall::Types) line 223␤ in block at line 1␤␤» [19:09] Xliff: I know almost nothing about NativeCall besides of it's purpose. [19:09] Right. So the only way I can tell is to trap something like the above. [19:10] I generally would like to avoid exception checking where I can. [19:11] *** ensamvarg_g6 left [19:11] vrurg: you are welcome [19:20] ¦ problem-solving: patrickbkr++ created pull request #178: Solution for #20: Windows process argument quoting [19:20] ¦ problem-solving: review: https://github.com/Raku/problem-solving/pull/178 [19:21] *** farcas1982regreg left [19:24] *** andrzejku left [19:27] *** Tirifto joined [19:28] *** Black_Ribbon joined [19:28] *** xfix left [19:30] *** rindolf left [19:31] *** xfix joined [19:34] -e '(a => 42, b => 666).map: -> |c { dd c }' [19:35] p6: say (a => 42, b => 666).map: -> |c { dd c } [19:35] rakudo-moar fa3c0dba9: OUTPUT: «\(:a(42))␤(Nil Nil)␤\(:b(666))␤» [19:35] melezhik: how many cpu cores your docker image is using? [19:36] why |c not \c in block signature? [19:37] p6: say (a => 42, b => 666).map: -> \c { dd c } [19:37] rakudo-moar fa3c0dba9: OUTPUT: «:a(42)␤(Nil Nil)␤:b(666)␤» [19:37] vrurg: I don't know. host system has 2 cores [19:40] melezhik: So far, I can't reproduce the error. I thought that opensuse as debian-based one would behave the same, but it's not. Core is the only thing I can think of so far. [19:42] circle-ci passes too.. Weirdier and weirdier... [19:42] * vrurg is afk& [19:42] vrurg: yeah. the same errors for alpine and centos and debian - http://repo.westus.cloudapp.azure.com/rakudist [19:42] *** aborazmeh left [19:43] it _could be_ I am prepared to believe a docker related issue [19:43] p6steve: That's a raw value. [19:43] p6: say (a => 42, b => 666).map: -> |c { dd c } [19:43] rakudo-moar fa3c0dba9: OUTPUT: «\(:a(42))␤(Nil Nil)␤\(:b(666))␤» [19:43] p6steve: ^^ [19:44] So your \c is capturing the value passed. [19:44] p6: if 2, 3 -> |c { dd c } [19:44] rakudo-moar fa3c0dba9: OUTPUT: «\((2, 3))␤» [19:44] p6: if 2, 3 -> \c { dd c } [19:44] rakudo-moar fa3c0dba9: OUTPUT: «(2, 3)␤» [19:50] *** girafe left [19:50] *** abraxxa left [19:51] *** rindolf joined [19:53] *** abraxxa joined [19:54] *** stoned75 left [19:56] *** stoned75 joined [19:57] @Xliff Inside a Signature, a Capture may be created by prefixing a sigilless parameter with a vertical bar |. This packs the remainder of the argument list into that parameter. [19:58] @Xliff thanks for the guidance - helped me to find the doc!! [19:58] *** girafe joined [20:07] Success! I now have two types of binex nodes working :-) [20:07] * guifa2 . o O ( it's only concat and literal, but hey, it's handling scouring pretty swell) [20:15] is there a fast yaml module? [20:16] i have a feeling YAMLish is slowing my stuff down [20:16] *** girafe left [20:16] have you profiled (i love that rakudo comes with one built-in)? [20:18] uh, i haven't been able to get a browser to load a real profile in a long time [20:18] i just added something with YAMLish and now its dog slow - gotta check though [20:18] *** rindolf left [20:20] timotimo's moarperf handles large profiles (you have to generate sql profiles though) [20:21] oh nice. i pulled a large chunk of code into the "script" as well - that's it [20:21] compilation speed [20:21] nevermind then [20:21] *** girafe joined [20:22] i tried a few times to do the more complicated profiling stuff but could never get it to work [20:22] be neat if it was like Devel::NYTProf - that profiler is amazing [20:22] it currently has a problem with the [20:23] index page redirect. you may have to manually to go http://localhost:20000/#/prof/home/ [20:23] *** stoned75 left [20:24] iirc they wrote the profiler and then stopped using perl, in part cause it was slow. [20:24] jdv79: I replaced YAMLish with YAML::Parser::LibYAML in one codebase doing a load of YAML and got a significant speedup [20:24] I was thinking… is there a way of creating custom types that work like Junctions? I mean: not child of Any and if passed to a function expecting that type would just run the function as usual and if it expect Any it would behave differently (eg: run multiple times (or no time at all) on parallel as Junctions do). [20:24] It does have a native dependency, however. [20:24] jdv79: huh, didn't know that history [20:25] ah, i'll try that [20:25] SmokeMachine: That's what we want macros for. [20:25] if it runs anywhere it'll be in a docker thing so no issue with a native dep [20:27] raschipi: by macro you mean the function would be a macro or the RakuAST would give us power to change it behaviour? [20:29] Well, a function isn't a macro and RakuAST isn't macros either, so I'1m a little confused about what you mean... [20:30] I was wandering about having a Junction like Maybe type, for example, and if you do `any-function($my-maybe)` and it’s Nothing, than it would not run the `any-function` and would return Nothing again... [20:31] raschipi: I meant how would you implement that with macros? [20:37] Well, have the macro expand to code that checks the type and do different things depending on it. [20:38] *** molaf joined [20:39] raschipi: so I’d have to implement the “function” as the macro… and I was thinking as a general thing to use on any function/method... [20:40] Well, then you want a Slang (NIY). [20:40] ¦ doc: Kaiepi++ created pull request #3349: Add textwidth=72 vim setting for all POD6 documentation files [20:40] ¦ doc: review: https://github.com/Raku/doc/pull/3349 [20:40] any efficient way to concat several blobs? Something like Blob.new(Blob @) ? [20:41] m: my $a = all(1,2,3); sub a($b) { say $b}; a $a [20:41] rakudo-moar fa3c0dba9: OUTPUT: «1␤2␤3␤» [20:41] guifa2: [~] ? [20:42] *** maray joined [20:42] raschipi: is Slang NYI? but there are several slangs on the ecosystem... [20:42] The interface isn't stable, so I don't think it's worth trying. [20:43] *** maray left [20:44] *** p6steve left [20:44] raschipi: I did try some time ago… it was cool… https://github.com/FCO/p6-react [20:44] Without a stable interface, they aren't more convenient than patching the compiler... [20:45] that’s why I’m waiting for custom compiler passes with RakuAST… I already have a few plans for testing with it... [20:46] Melhor esperar sentado... [20:46] Why? [20:47] Just a joke [20:47] raschipi: Are you Brazilian? [20:47] raschipi: does the compiler optimize that? [20:47] SmokeMachine: Yep [20:48] me too (as you probably know… because you spoke portuguese with me...) [20:48] Yep [20:48] se sois brasileiros então, a falarmos português em @raku-pt haha [20:48] que? [20:49] Que diabo de língua é essa? [20:49] ik snap er helemaal niets van! [20:49] sois = vós (falo europeu) [20:49] there is a #raku-br [20:49] poha [20:50] *** sena_kun joined [20:50] lizmat: my international talk got B-listed =\ [20:50] meh [20:51] maybe I should submit binex/objex for round two ? I don't know if I'll have it ready though [20:51] guifa2: I don't know it does optimize it, but I know for sure it can: [+] is sustituted by the .sum method, for example. [20:52] *** Altai-man_ left [20:52] *** rbt left [20:53] *** rbt joined [20:53] raschipi++ [20:53] ty [21:00] *** p6steve joined [21:02] SmokeMachine: It's not the first time we speak in Portuguese in this channel or it's predecessors. [21:03] raschipi: so, why aren’t you on #raku-br? :) [21:03] Pronto [21:04] brb [21:04] *** p6steve left [21:05] vrurg: just in case rakudist shuts down for a few days, as I run out of my free credits on Azure hosting [21:05] but then it will come back [21:17] *** patrickb left [21:24] *** finsternis left [21:27] *** farcas1982regreg joined [21:27] for those upgrading to ubuntu 20.04 today, there will be rakudo-pkg debs today :) [21:32] Thanks, that will be very useful two years from now. [21:33] raschipi: you're that kind of lts user :) [21:35] *** aborazmeh joined [21:35] *** aborazmeh left [21:35] *** aborazmeh joined [21:38] *** p6steve joined [21:39] .oO( If I'm still on 16.04, what kind of LTS user does that make me? ) [21:41] where does the "v1.0" syntax come from? [21:41] what's that v [21:43] Looking at the Ubuntu website now, they have extended their security support, so I should have stayed on 16.04 [21:43] Demos[m]: v = version, there's a Version type and v1.0 is syntax for a version literal [21:43] Just like 'foo' is a string literal [21:44] raschipi: Hah, and I was almost sure I was about to be told I'm a security liability... :) [21:45] *** p6steve left [21:45] I though so at first, but needed to make sure before saying it. [21:45] Debian now has a 15 year support cycle, it's amazing. [21:46] Ah, EOL at Apr 2021. That's pretty good. [21:49] 19.10 was the best release in years [21:49] en looking at 20.04 that builds on that it seems they polished the ui a lot [21:52] G'night people, take care. [21:52] *** raschipi left [21:52] bye releasable6 [21:52] oops [21:53] El_Che: O_O [22:00] *** natrys left [22:04] *** Sgeo_ joined [22:08] *** Sgeo left [22:13] *** chloekek left [22:15] weekly: Ubuntu 20.04 debs added to the mix: https://github.com/nxadm/rakudo-pkg/releases/tag/v2020.02.1-05 [22:15] El_Che, Noted! (weekly) [22:17] *** k-man__ is now known as k-man [22:29] *** guifa2 left [22:44] *** pecastro left [22:49] *** Altai-man_ joined [22:52] *** sena_kun left [23:01] *** guifa2 joined [23:09] *** raschipi joined [23:12] *** mowcat left [23:12] *** guifa2 left [23:13] *** guifa2 joined [23:28] *** Xliff left [23:42] *** pilne joined [23:45] Has anyone done a literate programming project in Raku? There's this module from 2015: https://github.com/masak/perl6-literate and https://github.com/unixtechie/Literate-Molly. [23:46] *** Doc_Holliwood left [23:48] *** Tirifto left [23:49] stu002: I haven't seen it yet because I haven't seen any applications that warrant it, but rakudoc and raku itself were designed to make it a very natural paradigm. [23:54] the main page of the pygments projects says “… and it highlights even Perl 6!” [23:54] hmm interesting way to put it [23:54] anyway, maybe it's a good idea to submit a Perl 6→Raku pull request :) [23:54] https://github.com/pygments/pygments.github.io/blob/b112eac4006c3bd715193541d7bea8617daab986/index.html#L127