[00:05] *** pecastro left [00:10] *** rbtca left [00:10] *** rbtca joined [00:14] *** poohman joined [00:16] *** leont left [00:29] *** poohmaan joined [00:33] *** poohman left [00:44] *** aborazmeh joined [00:44] *** aborazmeh left [00:44] *** aborazmeh joined [00:48] *** tejr left [00:49] *** poohmaan left [00:49] *** rbtca left [00:49] *** tejr joined [00:53] *** oddp left [00:54] *** Altai-man_ joined [00:56] *** sena_kun left [01:00] *** rbt joined [01:03] *** finanalyst left [01:05] *** vike1 left [01:12] *** vike1 joined [01:21] *** poohmaan joined [01:27] *** molaf left [01:31] *** stoned75 left [01:33] *** stoned75 joined [01:39] *** molaf joined [01:47] *** zacts joined [01:52] *** justsomeguy joined [01:55] *** poohmaan left [02:04] *** zacts left [02:06] *** Cabanossi left [02:15] *** justsomeguy left [02:18] *** Cabanossi joined [02:30] *** poohmaan joined [02:55] *** sena_kun joined [02:56] *** Altai-man_ left [03:01] *** softmoth joined [03:16] *** zacts joined [03:27] *** Cabanossi left [03:38] *** Cabanossi joined [04:17] *** pilne left [04:18] *** pilne joined [04:22] softmoth: wow! 3 weeks seems like a lot [04:33] Yeah. Request was on April 12 (https://www.nntp.perl.org/group/perl.modules/2020/04/msg100999.html) and acceptance on May 3 (https://www.nntp.perl.org/group/perl.modules/2020/05/msg101071.html). But I didn't carp (or croak), maybe you'll have better luck! [04:36] *** rindolf joined [04:54] *** Altai-man_ joined [04:55] *** poohmaan left [04:57] *** sena_kun left [05:06] *** cpan-raku left [05:08] *** cpan-raku joined [05:08] *** cpan-raku left [05:08] *** cpan-raku joined [05:23] *** poohmaan joined [05:24] *** xinming_ left [05:24] *** xinming_ joined [05:26] *** perigrin left [05:28] *** perigrin joined [05:45] *** wamba joined [06:20] hello all [06:20] *** poohmaan left [06:20] *** poohmaan joined [06:21] hello all [06:21] Will flat not work on a Seq of Seqs? [06:24] raku: my \s = Seq(, ); dd s.flat [06:24] gfldex, rakudo-moar 813447053: OUTPUT: «("a", "b", "c", "d", "e", "f").Seq␤» [06:24] poohmaan: looks like it [06:25] *** aborazmeh left [06:25] then Im still making a mistake with containers and itemisation [06:26] my example did not for arrays as well [06:26] m: my @a =[1,2,3,[4,5]]; say @a.flat; [06:26] rakudo-moar 813447053: OUTPUT: «(1 2 3 [4 5])␤» [06:27] gfldex - can you please tell me how that is normally flattened [06:28] m: my @a =[1,2,3,[4,5]]; say @a.flat.raku; [06:28] rakudo-moar 813447053: OUTPUT: «(1, 2, 3, $[4, 5]).Seq␤» [06:28] I normaly don't flatten such structures. I either slip stuff when Positionals are created or I use deepmap to maintain the structure. [06:28] I think I saw an example in the docu for this [06:29] m: my @a =[1,2,3,[4,5]]; say @a.deepmap(*+1); [06:29] rakudo-moar 813447053: OUTPUT: «[2 3 4 [5 6]]␤» [06:30] I have to flatten it to use unique on it [06:35] raku: say (gather [[1,2,3,4],[[4,5,6],6,7]].deepmap(*.take)).unique [06:35] gfldex, rakudo-moar 813447053: OUTPUT: «(1 2 3 4 5 6 7)␤» [06:35] poohmaan: ^^^ [06:37] thanks [06:39] *** wamba left [06:42] *** _dev_zero left [06:43] raku: my %seen; [[1,2,3,4],[[4,5,6],6,7]].deepmap({%seen{$_} = True}); say %seen.keys [06:43] gfldex, rakudo-moar 813447053: OUTPUT: «(3 5 7 1 6 4 2)␤» [06:44] poohmaan: for large lists of Str where order doesnt matter this might be better [06:46] *** _dev_zero joined [06:53] how do I make a slang? Is https://mouq.github.io/slangs.html up-to-date? [06:55] *** sena_kun joined [06:56] *** Altai-man_ left [07:01] *** soursBot joined [07:03] *** MilkmanDan left [07:04] *** softmoth left [07:07] moon-child: slangs are a little hairy to get your head around if you're not familiar with how the language is implemented [07:08] my recommendation would be look at modules under the 'Slang::' namespace and try to modify it [07:08] I have a couple of gists... the first on just adds 'fn' and 'var' as aliases for 'sub' and 'my' [07:08] https://gist.github.com/0racle/f4b0370a41ddad5f85e29a95ce16019d [07:09] The second is not mine, but take from Damian Conway's blog about adding an 'else' statement to a for block [07:09] the `else` is entered only if the `for` block doesn't get entered [07:09] https://gist.github.com/0racle/a9c80c5006a43ea6e57cc0e7e9eb4bf5 [07:11] I've also used simple slangs like the first one to allow different suffixes on variables and identifiers [07:11] ok [07:11] Like PRIME, ie. `my $x = 1; my $x′ = 2` [07:11] what about something like https://github.com/tony-o/perl6-slang-sql that adds a new slang instead of extending MAIN? (Is that one still current? It's a few years old) [07:13] I'm not an expert. I have used Slang::SQL and it worked ok, so whatever he's doing seems to still work. [07:23] *** soursBot left [07:30] *** soursBot joined [07:53] lolibloggedalittle: https://gfldex.wordpress.com/2020/06/14/swarms-of-exceptions/ [07:53] *** squashable6 left [07:56] *** squashable6 joined [08:14] *** kensanata joined [08:15] *** MilkmanDan joined [08:33] *** xinming_ left [08:36] *** rbt left [08:36] *** rbt joined [08:38] *** xinming_ joined [08:41] *** TeamBlast left [08:42] *** sivoais left [08:42] *** TeamBlast joined [08:44] *** sivoais joined [08:46] *** pecastro joined [08:54] *** Altai-man_ joined [08:57] *** sena_kun left [08:58] *** zacts left [08:59] *** zacts joined [09:11] *** leont joined [09:13] *** lichtkind_ joined [09:16] *** lichtkind left [09:16] *** m_athias left [09:23] *** oddp joined [09:25] *** soursBot left [09:29] *** poohmaan left [09:34] *** Sgeo left [09:41] *** soursBot joined [09:41] *** aborazmeh joined [09:41] *** aborazmeh left [09:41] *** aborazmeh joined [09:54] *** m_athias joined [10:05] *** TeamBlast left [10:05] *** TeamBlast joined [10:06] *** sivoais left [10:06] *** sivoais joined [10:14] *** wamba joined [10:15] *** Black_Ribbon left [10:18] *** chloekek joined [10:19] *** nige joined [10:19] hi [10:20] I'm working on a proposal for Perl + Raku marketing and wanted to explore how something could be done in Raku ... anyone around? [10:26] Just shoot, someone is going to answer sooner or later. [10:26] Damn, got bitten by this again, wondering why my rules wouldn't match: `G.parse(slurp "input.txt", actions => A)` [10:26] Noob me has to ask, is there a way to force a warning? [10:28] I'm guessing the "actions => A" is getting eaten up by the un-paren'd slurp call. [10:29] Yeah. [10:30] the marketing proposal is for attracting new (and old) Perl and Raku programmers [10:31] the plan takes inspiration from stackoverflow [10:31] With case of warning, you don't want false positives, and as machine can't know what do you want exacty... [10:31] *** aborazmeh left [10:32] it will be a place where people can request code for their coding problems (e.g., I need some code to parse text from HTML) [10:32] the main emphasis is solving specific coding problems - people might have [10:33] so not really a Q +A site ... and more of a Q + Coding Solution site [10:34] code can be in Perl + Raku (and other languages) [10:34] nige, I have a similar thing on mind, but with a plot twist. Can you elaborate on what resources do you have? [10:34] Maybe we can cooperate. [10:34] so a bit like Rosetta meets StackOverflow [10:34] yes - defn up for cooperating [10:35] this proposal is for a TPF sponsored site - so they have some resource to offer (altho limited) [10:36] so it would be a community effort - and any advertising revenue can go to the TPF for grants and further development [10:36] nige, I plan to write up a proposal after $dayjob today. It will require people willing to write content more than anything else, though. [10:37] OK - cool - I think some coding solutions will need some explanation too [10:37] Altai-man_: well, take the slurp method signature here: `multi method slurp(IO::Path:D: :$bin, :$enc)`. I would expect to see a warning if I pass in .slurp(foo => "baz). [10:38] so the crucial bit - as far as playing the google loop goes - is to make sure the user's search need is satisfied [10:38] At least coming from other langs with named keyword args. [10:38] so the search trails are successful from Google's perspective [10:39] m: slurp 'foo', :r; [10:39] rakudo-moar 813447053: OUTPUT: «Unexpected named argument 'r' passed␤ in block at line 1␤␤» [10:39] m: slurp 'foo', :foo; [10:39] rakudo-moar 813447053: OUTPUT: «Unexpected named argument 'foo' passed␤ in block at line 1␤␤» [10:39] oddp, I think this particular (for "slurp") case was changed on master. [10:39] So once 2020.06 is shipped, you can consider it done. :) [10:40] importantly the site needs to satisfy the users search query - ideally in one go [10:40] Oh, okay, interesting. Thanks! [10:41] so If I'm looking for 'code to parse a CSV file' - ideally I can use the code by cutting-and-pasting or with a special 'use' statement [10:41] which brings me to why I'm here ... [10:42] the META6.JSON file - provides lots of metadata etc (dependencies, versions etc, licence) [10:43] it would be cool is the 'use' statement - could source directly from the coding solutions provided on the site [10:43] use 'answer' 123; [10:44] and the code could be integrated at compile time into the program [10:45] 123 - could also be a hashcode for the META6.json file [10:47] would be interested to hear feedback on this? do you think it could work? [10:49] This calls for so many security problems and implications. Even more, it makes software not installable when there is no net available (which is not that uncommon as we can think). [10:55] *** sena_kun joined [10:57] *** Altai-man_ left [10:57] *** zacts left [10:57] yes - in the GoLang world - they often use "go get https://somecode/somewhere.go" [10:58] *** zacts joined [10:58] the hashing the meta6.json file will help with the ensuring the integrity of the downloaded thing [10:58] of course if they just found the answer then their internet connection is live [11:00] so it's a balancing act - but would like to tip it towards convenience (for the sake of the Google loop and our users) [11:03] *** aborazmeh joined [11:03] *** aborazmeh left [11:03] *** aborazmeh joined [11:04] *** kensanata left [11:20] nine, would be interested to hear your thoughts on how to - use remote 'https://somecode.site/with -reassuring/hashcode/jyhery78' - and how this could work with pre-compilation etc? [11:24] *** chloekek left [11:28] ¦ whateverable/master: 4 commits pushed by (Aleks-Daniel Jakimenko-Aleksejev)++ [11:28] ¦ whateverable/master: f0662506bc | Handle Nil in promised replies [11:28] ¦ whateverable/master: 17ec364078 | Move limited-join to Bits [11:28] ¦ whateverable/master: b5f9ad7c89 | Change sake to ake [11:28] ¦ whateverable/master: 096465c194 | Change source-url [11:28] ¦ whateverable/master: review: https://github.com/Raku/whateverable/compare/aaae90891b91...096465c19446 [11:35] ¦ whateverable: c5667c0af0 | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Whateverable/Bits.pm6 [11:35] ¦ whateverable: Use gather again in limited-join (oops) [11:35] ¦ whateverable: [11:35] ¦ whateverable: I tried to refactor it in 17ec364078322 but half way through realized [11:35] ¦ whateverable: that it's not going to make it better. Still, I somehow committed the [11:35] ¦ whateverable: half-refactored version. It should be back to normal now. [11:35] ¦ whateverable: review: https://github.com/Raku/whateverable/commit/c5667c0af0 [11:56] *** poohmaan joined [11:56] *** Manifest0 left [12:10] *** soursBot left [12:11] *** poohmaan left [12:17] *** Manifest0 joined [12:38] *** Manifest0 left [12:47] ¦ ake: 720c250c2a | (Aleks-Daniel Jakimenko-Aleksejev)++ | META6.json [12:47] ¦ ake: Fix source-url [12:47] ¦ ake: [12:47] ¦ ake: It's just `ake` now. [12:47] ¦ ake: review: https://github.com/Raku/ake/commit/720c250c2a [12:47] ¦ ecosystem: 1fb91a1c10 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list [12:47] ¦ ecosystem: Update ake url [12:47] ¦ ecosystem: review: https://github.com/Raku/ecosystem/commit/1fb91a1c10 [12:54] *** Altai-man_ joined [12:56] *** sena_kun left [13:01] *** finanalyst joined [13:04] *** soursBot joined [13:07] *** woolfy joined [13:07] Hi tadzik, thank you for your thoughtful blog! <3 [13:07] I hope you don't mind, I posted it on my Facebook: https://www.facebook.com/wgavdijk/posts/3214231288644699 [13:08] Hugz, Wendy [13:08] oops, mischan :-) [13:08] Oh sorry, I thought I pm-ed tadzik... sorry... [13:08] (blush) [13:09] nonetheless, tadzik++ https://blog.tadzik.net/first-they-came-for-the-gays.html [13:16] woolfy: no, I don't mind :) [13:17] tadzik : thank you, and good luck on your actions! [13:18] nige: in my experience it's better to advertise where your target audience is. Creating a new place where you need to pull people to, so you can sell them your product is a hard detour. [13:19] nige: Frankly, I'm not fond of golang's approach to modules, at all. It creates a dependency on that code site (i.e. Github) and if they disappear or just change their URI layout all your software will be broken. [13:20] nige: the simplicity also comes at a cost: you either depend on unstable, unversioned code when you point at a repo or on an outdated version with possible security or stability issues when you depend on a commit. [13:22] It's all fun and game when you just want to create a mass of code but it will become a mess in the much longer period where it's about maintenance. E.g. yes, there's gigatons of Javascript code out there but I wouldn't bet the company on any of it. [13:24] Precicely stated dependencies enabled by git's distributed nature are a perfect excuse to ignore backwards compatibility and break things. This certainly helps with creating and evolving fast but what if the maintainer is no longer able to keep up? [13:25] Our software at work depends on countless Perl modules. Some of them haven't seen a maintainer in a decade, but they still work and do their job. [13:26] The technical side is completely different. It should be rather simple to implement code loading from web resources including precompilation and everything. In fact I could think of a couple of different approaches. [13:28] *** soursBot left [13:30] Just look at how C++ libraries have on average given up on thinking about ABI compatibility and how annoying the fallout from that is. [13:41] hi nine [13:42] all good points -^ [13:42] and yes - I realise Go URL dependencies come with downsides [13:43] I suppose the ultimate product I'm trying to sell here is Raku - and going to where the market is means getting into the google loop as people look to solve their coding problems [13:44] so that google can discover the association between: coding problem -> solution [13:45] where solution = raku/perl code [13:45] * Altai-man_ thinks creating a really nice cookbook out of old examples repo (up to 11) will serve the same purpose without all the code by url loading tricks [13:45] yes - that's a good point too -^ [13:46] I was planning to seed the initial site with example from the PLEAC website [13:46] http://pleac.sourceforge.net/ [13:46] nine, can you wait a day for the proposal I mentioned? [13:47] *** aborazmeh left [13:49] nine - on the loading dependency problems you mention - at least Raku provides the ability to pin modules by author and version [13:51] just focussing on the technical side ... how could you load a remote module at compile time ...and have it play nicely with pre-compilation etc? [13:52] *** MilkmanDan left [13:53] it would be nice to have some hash coding - to provide some trust etc .. [13:54] *** MilkmanDan joined [13:55] *** molaf left [13:55] the code could be copied to a local repo - so that helps with the dependency on a third party site / author etc - for code maintenance [13:59] *** soursBot joined [14:00] Altai-man_: sure. I forgot to write down an important thought I had: the only thing worse than inefficient advertising (which I warned about) is no advertising. So please don't let me keep you from trying things! [14:02] nige: you could write a module that does everything in an EXPORT sub. Or you could go one step further and write a CompUnit::Repository implementation. I'd go for the latter as it gives you more control and will make adding precompilation easier. [14:03] nige: there are several specialized CompUnit::Repository implementations in rakudo. They should give you some ideas. [14:03] *** MilkmanDan left [14:04] *** woolfy left [14:04] ok cool - thanks [14:05] and for the user side of the code - where they want to 'import/use' the solution they found on the website [14:06] *** Xliff joined [14:06] \o [14:06] 2020-06-14T10:35:02Z #raku-dev Xliff: I have to admit you were right, the commit SHAs need to be links, otherwise blin output pasted as a gist kinda sucks [14:06] AlexDaniel: Hehehehe [14:06] *** MilkmanDan joined [14:07] AlexDaniel: Do you need another PR? [14:08] hmm - it's tricky - ideally I'd like the user to include the solution with a one-liner [14:10] * moritz fights a two-front war with cro and docker [14:10] *** rbt left [14:11] *** rbt joined [14:12] Xliff, commit links were addressed by mighty AlexDaniel++ already, I think. [14:13] use remote-code 'codesolvr.com/dfjgwx'; # inside module comes with complications [14:14] maybe it's better to bootstrap the solution in the users environment with a loading script [14:14] shell> codesolvr get dfjgwx [14:15] this way it can be more polyglot when it comes to install etc [14:15] *** MilkmanDan left [14:19] nige: 12:43 < nige> use 'answer' 123 <== that sounds extremely dangerous and not even because of evil intent [14:20] nige: go get intalls released libraries and modules, not ad hoc part of a solution [14:20] yeah - was just a quick example - use 'answer' 123 [14:22] nine: go fixed the problem you metioned by adding a write-once proxy. Hosted at google it isn't supposed to go down. And company project "vendor"the dependencies, meaning the code for the dependencies is in the same repo as you app so you can always build [14:22] OK - I prefer the second approach - where the site comes with an optional installer script to install the code locally and get the solution in place [14:22] *** aindilis` joined [14:23] interesting -^ [14:23] *** aindilis left [14:24] a code generator [14:27] that could work [14:27] .oO(There aren't many websites that can rely on not intending to be down) [14:28] google has a great record [14:28] (and the resources for that) [14:28] And a great record of ending services for users when they were no longer interested in them anymore [14:29] nine: oh yes, been bitten many times by that :) [14:30] "vendoring" the solutions in the application repo would solve the runtime problem though [14:32] by that I take it you mean - the solution user gets their own local copy which they maintain etc [14:33] *** chloekek joined [14:33] yes, they integrate it making sure it's safe and complete [14:33] *** zacts left [14:33] maybe the same tool could allow to upload revised solutions [14:33] that can be upvoted [14:34] yes - the tool itself could help with the upvoting stats (subject to voting limits) [14:34] *** zacts joined [14:36] and going the other way the tool could help with submissions [14:36] yes, that what I mean [14:37] you dowloand the solution, make it better, upload the proposal [14:37] extra points for good comments [14:37] nice - I like that haha [14:37] karma++ for your comments [14:38] often solutions are meant to explain stuff or offer a quick and dirty solution [14:38] e.g. for go code, error checking is omitted (a no-no) [14:38] shell> codesolver push dfjgwx friendly-solution.raku [14:38] the Stackoverflow format emcourages that, so you can qucikly skim the solution [14:39] m: use NativeCall; my $g-param-spec-types; $c-param-spec-types := cglobal('gobject-2.0', 'g_param_spec_types', CArray[GType]) [14:39] rakudo-moar 813447053: OUTPUT: «5===SORRY!5=== Error while compiling ␤Variable '$c-param-spec-types' is not declared. Did you mean '$g-param-spec-types'?␤at :1␤------> 3use NativeCall; my $g-param-spec-types; 7⏏5$c-param-spec-types := cglobal('gobject-␤» [14:39] here the better solution would be production ready, wit good comments and ideally with a leading comment that explains the solution on a higher level [14:39] m: use NativeCall; my $g-param-spec-types; $\g-param-spec-types := cglobal('gobject-2.0', 'g_param_spec_types', CArray[GType]) [14:39] rakudo-moar 813447053: OUTPUT: «5===SORRY!5=== Error while compiling ␤Confused␤at :1␤------> 3e NativeCall; my $g-param-spec-types; $\7⏏5g-param-spec-types := cglobal('gobject-2␤» [14:39] m: use NativeCall; my $g-param-spec-types; $g-param-spec-types := cglobal('gobject-2.0', 'g_param_spec_types', CArray[GType]) [14:40] rakudo-moar 813447053: OUTPUT: «5===SORRY!5=== Error while compiling ␤Undeclared name:␤ GType used at line 1␤␤» [14:40] yes - that's a good point - reading Go code can get a bit depressing the happy path is sometimes buried in code like my dad wants me to code [14:40] m: use NativeCall; my $g-param-spec-types; $g-param-spec-types := cglobal('gobject-2.0', 'g_param_spec_types', CArray[uint64]) [14:40] rakudo-moar 813447053: ( no output ) [14:41] m: use NativeCall; our $g-param-spec-types; $g-param-spec-types := cglobal('gobject-2.0', 'g_param_spec_types', CArray[uint64]) [14:41] rakudo-moar 813447053: ( no output ) [14:41] m: use NativeCall; our $g-param-spec-types is export; $g-param-spec-types := cglobal('gobject-2.0', 'g_param_spec_types', CArray[uint64]) [14:41] rakudo-moar 813447053: ( no output ) [14:41] m: use NativeCall; our $g-param-spec-types is export; $g-param-spec-types := cglobal('gobject-2.0', 'g_param_spec_types', CArray[uint64]); say $g-param-spec-types[$_] for ^23; [14:41] rakudo-moar 813447053: OUTPUT: «Cannot locate native library 'libgobject-2.0.so': libgobject-2.0.so: cannot open shared object file: No such file or directory␤ in block at /home/camelia/rakudo-m-inst-2/share/perl6/core/sources/947BDAB9F96E0E5FCCB383124F923A6BF6F8D76B (NativeCall…» [14:41] fortunately raku code is liberated from the error handling style of Go - and the happy path is clearer [14:42] more O(fun) just there [14:42] I am not sure. I am not that fond of exceptions [14:42] good that you can choose in Raku [14:43] yes - and exceptions can be handled out of band with CATCH phaser [14:43] the point of that handling errors right away make it easier to think about them [14:44] not like in java when you get exceptions fron 10 levels down [14:44] *** soursBot_ joined [14:44] *** soursBot left [14:45] *** stoned75 left [14:45] yes - not an easy one - there are tradeoffs - depends on the code etc - at least Raku let's you flexibly handle it [14:47] code for the SpaceX airlock will look different to slurping a README.txt ;-) [14:47] *** stoned75 joined [14:48] the SpaceXI code will be full of files wit ah "#genrated by rakusolves.org" comments :) [14:48] :) [14:52] *** zacts left [14:52] Systems without exceptions make "ignore it, it's fine" the default action, and I personally think that's a really lousy approach to error conditions. [14:53] *** zacts joined [14:53] ShimmerFairy: thatś not the mindset in go, rather the contrary [14:53] well, there are other options too, like erlang/OTPs processes and process supervisors [14:53] handle just after the error, verbosely :) [14:54] foo, err := doSomething() [14:54] yeah, and it's a big part of why Go is pretty much the only language I legitimately, seriously despise. (As opposed to just making jokes about a language.) [14:54] if err != nil { ... } [14:55] *** sena_kun joined [14:55] moritz: Yeah, I'm not saying exceptions are the only/best solution, just that error codes are the worst :) [14:55] it's a design decision and like nige commented, there are up and downsides [14:55] moritz: that sounds interesting [14:56] *** Altai-man_ left [14:57] El_Che: it does. I'm not too familiar with it, always wanted to learn a bit more about it, but found the Erlang syntax strangely off-putting [14:57] might try again with Elixir as the language [14:58] the ruby-flavour version :) [15:03] Hmmm.... [15:03] Getting some weird results with NativeCall and cglobal usage. [15:03] May have to bug that, later. It makes no sense. [15:04] *** chloekek left [15:06] *** chloekek joined [15:07] *** zacts left [15:07] *** rypervenche left [15:10] *** rindolf left [15:12] *** softmoth joined [15:13] *** rypervenche joined [15:16] *** chloekek left [15:16] *** chloekek joined [15:21] *** zacts joined [15:26] *** chloekek left [15:30] *** softmoth_ joined [15:31] *** softmoth left [15:33] *** zacts left [15:34] *** zacts joined [15:34] *** gfldex left [15:34] *** gfldex joined [15:36] how can i easily generate template module? [15:36] (also hello) [15:52] *** epony left [15:53] *** thowe joined [15:55] *** zacts left [15:57] Hi. You can use e.g. App::Mi6 module to help with authoring. There is also e.g. https://github.com/JJ/raku-dist-template <- this nice template if you don't want tools. [15:57] *** zacts joined [16:06] *** kensanata joined [16:10] oh, thx [16:12] *** MilkmanDan joined [16:15] *** rindolf joined [16:16] El_Che: just because exceptions make it possible to handle them further up the callstack doesn't mean that they mandate doing so. You can handle exceptions right where they occur just fine. [16:18] Go makes handling errors tedious and relies entirely on tools telling people to behave. I've no idea how they thought this was good design. [16:18] it's the mindset of old C programmers [16:18] "people forget handling errors? We'll tell them through the compiler when they forget!" [16:20] I'd guess they just avoided dealing with the hard problems of implementing exceptions in threaded programs that way. [16:22] *** epony joined [16:30] *** suman joined [16:31] Is there a command to create a file in raku? [16:31] just like mkdir to create a directory [16:31] just open and close it, if there is no "touch" method [16:34] nine: I have a feeling it's because companies like Google disallow exceptions in C++, so when you're asked to make a language, you go "exceptions are icky and we do just fine without them!" [16:34] (and Go does have a very basic kind of exception handling nowadays, because turns out it really is a nice thing to have) [16:35] orly? who wudda thought [16:35] is that about defer/rescue? [16:36] I forget what it was called, lemme see if I can find out quickly. [16:36] they had panic/recover I think? [16:36] %w? wrapping? [16:37] yeah, I think it's panic/recover [16:37] nine: of course you can use try-catch, but that's even more verbose than the "if err != nil" thing [16:37] *** suman left [16:38] OK not sure where i got rescue from, but defer is in go [16:38] Rust makes it quite nice with its ? suffix [16:39] The beauty of try/catch is that you can wrap an entire block of code in one exception handler. If five calls in a function can throw a "BadFileSystem" error, it's nice that you only have to write the check once. [16:39] quick question, do we do anything with "buildid" in our CI infrastructure and/or packaging? [16:48] Ruby is clearly superior, with throw/catch AND raise/rescue! :-P [16:48] panic / soothe [16:49] meltdown / jettison [16:51] *** aborazmeh joined [16:51] *** aborazmeh left [16:51] *** aborazmeh joined [16:51] *** suman joined [16:51] crash / burn (wait) [16:52] This is example C code [16:52] #include [16:52] please don't paste it into irc [16:53] use a pasting service like gist or nopaste or 0bin or whatever you prefer [16:54] *** Altai-man_ joined [16:54] https://stackoverflow.com/questions/41743295/elf-build-id-is-there-a-utility-to-recompute-it - interesting, looks like i had no clue what a buildid is actually meant to be [16:56] https://pastebin.com/yVZVBYLd [16:56] *** sena_kun left [16:56] Please have a look here [16:57] How to stop (Mu) from appearing in void function? [16:57] suman: you are printing the return value of your custom() call, it's a void function so it returns nothing, which in raku's NativeCall is represented as the Mu type object [16:57] so just throw out the "say" [16:57] *** zacts left [17:00] timotimo Oh I see [17:22] *** wamba left [17:25] *** Manifest0 joined [17:25] *** suman left [17:32] *** wamba joined [17:39] *** finanalyst left [17:39] *** zacts joined [17:48] *** kensanata left [17:50] *** zacts left [17:53] *** telex left [17:56] *** telex joined [17:57] *** aindilis` left [17:57] *** aindilis joined [17:58] *** lichtkind_ left [18:03] *** soursBot_ left [18:06] *** aborazmeh left [18:18] *** finsternis left [18:19] *** finsternis joined [18:20] *** nige left [18:23] *** molaf joined [18:52] *** kensanata joined [18:55] *** sena_kun joined [18:55] *** Sgeo joined [18:56] *** Altai-man_ left [19:04] New module released to CPAN! WebService::TMDB (0.1.0) by 03CIAVASH [19:17] *** xinming_ left [19:17] *** xinming_ joined [19:59] timotimo: oh, so buildid is the same as our $*PERL.compiler.id [20:04] maybe, though we probably also want to include moarvm's "identity" in it [20:04] if the idea is "grab the buildid and you can get to the exact source used to make this binary" [20:17] *** evalable6 left [20:17] *** linkable6 left [20:18] *** linkable6 joined [20:18] *** evalable6 joined [20:40] *** devmikey joined [20:45] *** rbt left [20:46] *** rbt joined [20:47] *** rindolf left [20:54] *** Altai-man_ joined [20:56] *** sena_kun left [20:57] *** softmoth__ joined [20:59] *** softmoth_ left [20:59] *** aborazmeh joined [20:59] *** aborazmeh left [20:59] *** aborazmeh joined [21:10] *** kensanata left [21:20] *** finanalyst joined [21:20] *** finanalyst left [21:28] *** Xliff left [21:33] *** wamba left [22:00] *** aborazmeh left [22:22] *** devmikey left [22:27] *** Cabanossi left [22:39] *** Cabanossi joined [22:49] *** Sgeo_ joined [22:52] *** Sgeo left [22:54] *** sena_kun joined [22:57] *** Altai-man_ left [23:30] *** pecastro left [23:31] *** softmoth__ left [23:31] *** softmoth__ joined [23:48] *** oddp left [23:53] *** oddp joined