[00:25] *** cognomin_ joined [00:28] *** cognominal left [01:28] *** evalable6 left [01:30] *** evalable6 joined [02:22] *** lucasb left [05:18] *** AlexDani` joined [05:20] *** AlexDaniel left [05:28] *** AlexDani` is now known as AlexDaniel [05:28] *** AlexDaniel left [05:28] *** AlexDaniel joined [05:28] *** benjif left [06:23] *** Xliff joined [06:24] All: I'd like to make a more visual installer for Perl6. I would rather not compromize zef, but rather offer users an alternative to CURI. At least one that doesn't leave them wondering what's going on while installing 500 compunits. [06:24] What would be the best way to do this. Even at a high level. [06:24] If necessary, should I start an article on problem-solving for this issue? [06:25] ^^ lizmat jnthn ugexe vrurg timotimo [07:04] Xliff: Installer for what? Raku, you meant? ;) [07:05] Xliff: seriously: if you're talking about Raku installation then it's totally pointless. Every system has own packaging with UIs. [07:05] A module installer would make a little more sense, but still I doubt it worth spending resources on it. [07:06] * vrurg is off to bed... [08:12] *** jmerelo joined [08:14] vrurg: Sorry, I meant a module installer. [08:14] ^^ lizmat jnthn ugexe vrurg timotimo [08:15] Xliff: what exactly is the issue with CURI? [08:15] *** Xliff left [08:25] *** ExtraCrispy joined [08:25] Today's Advent Calendar is all about containers: https://rakuadventcalendar.wordpress.com/2019/12/09/day-9-a-chain-or-russian-doll-of-containers/ [08:25] 2019-12-09T00:14:15Z #raku jmerelo muchas gracias for saving my "Christmas Ham!" [08:25] .tell tbrowder my pleasure. Thanks for the chance to do so. [08:25] jmerelo, I'll pass your message to tbrowder [08:26] *** ExtraCrispy left [08:52] *** ExtraCrispy joined [08:52] *** ExtraCrispy left [09:34] .tell Xliff I'd love to have more documentation in general about how modules work, and more specifically, how installing them works [09:34] tyil, I'll pass your message to Xliff [09:37] jmerelo: I wonder, if I can get a proper rakudo-star 2019.11 out, if it'd be worthwhile to have an article about that in the advent calendar [09:37] to fill up the last slot [09:38] We finally moved today's slot to the 23rd [09:38] <|Tux|> Rakudo version 2019.11-102-g382d18bda - MoarVM version 2019.07.1-403-g9442b1a7c [09:38] <|Tux|> csv-test-xs-20 0.423 - 0.428 [09:38] <|Tux|> csv-ip5xs 0.711 - 0.712 [09:38] <|Tux|> test-t --race 0.879 - 0.920 [09:38] <|Tux|> test-t 1.794 - 1.825 [09:38] <|Tux|> csv-ip5xs-20 6.396 - 6.440 [09:38] <|Tux|> test 6.794 - 7.282 [09:38] <|Tux|> test-t-20 --race 9.331 - 9.613 [09:38] <|Tux|> csv-parser 21.626 - 21.632 [09:38] <|Tux|> test-t-20 29.491 - 30.010 [09:38] but it's OK if you create another one, just in case there's some problem [09:38] If all slots are eventually filled in time, we can publish it as a bonus [09:38] tyil and I'd also like to have more documentation for the CURI stack [09:39] I think everyone wants that :) [09:39] I'm not sure if I can get a stable rakudo-star out, since I'm swamped at work, but I can spend weekend time on it [09:40] there's an -rc1, I'm looking for testers right now [09:40] I don't think I've posted it on the perl6-users ML yet, though [09:40] it will be mentioned in the weekly [09:40] oh, that will work as well to get some people on it I hope :> [09:40] thanks lizmat! [09:41] *** sena_kun joined [09:46] afk for a few hours& [09:52] tyil: what information are people missing about CURI? [09:59] what does "install" do, how does it decide what hashing to use (and does it hash contents, or filename, or does it combine does and then hash it), how does it decide which directory to install to [10:00] how can I get a list of all installed modules, and their contents [10:00] (preferably in human-readable formats) [10:01] the docs refer to `CompUnit::RepositoryRegistry.repository-for-name("site");`, is "site" a random name that you can swap out for anything? is this a de-facto standard name? [10:02] what if I install something into repository "site", and later try to install the same module into repository "other-site", does it realize I already installed it? [10:04] there's been a recent discussion on the ML about the docs being unfriendly to people that don't yet know all the details of certain topics, and I find the CompUnit::* and related pages to also have this problem [10:04] (the perl6-users ML) [10:16] *** AlexDaniel` left [10:16] *** Demos[m] left [10:16] *** EuAndreh[m] left [10:16] *** tyil[m] left [10:16] *** unclechu left [10:16] *** rba[m] left [10:25] *** Guest38485 joined [10:45] *** rba[m] joined [10:52] *** sena_kun left [11:09] *** sena_kun joined [11:13] *** AlexDaniel` joined [11:13] *** EuAndreh[m] joined [11:13] *** Demos[m] joined [11:13] *** unclechu joined [11:13] *** tyil[m] joined [11:35] tyil they are friendly if you do your homework. You can't simply explain every thing in every single entry. Due diligence is needed, here and everywhere. [11:48] yes, so not very friendly to beginners [11:49] I understand where you're coming from, but just telling people they need to do more homework is gatekeeping and isn't really helping them [12:28] *** jmerelo left [12:53] *** sena_kun left [13:08] *** sena_kun joined [13:09] ¦ nqp/truffle: 8b86024667 | (Paweł Murias)++ | 5 files [13:09] ¦ nqp/truffle: [truffle] Update truffle jars [13:09] ¦ nqp/truffle: review: https://github.com/perl6/nqp/commit/8b86024667 [13:09] *** pmurias joined [13:10] MasterDuke: I'll try to merge master changes in now that the JDK version in GraalVM has been updated [13:49] *** lucasb joined [14:00] tyil: the answer to "what does "install" do, how does it decide what hashing to use (and does it hash contents, or filename, or does it combine does and then hash it)" is simple: that's implementation defined, subject to change and shouldn't matter to the user [14:01] idk why people want to keep module management a secret [14:01] but ok [14:02] tyil: it's no secret. It's open source after all and I will answer concrete questions about the implementation. I just don't see a point in documenting internals that should not matter. Our documentation does not tell you how the ... operator is implemented either. [14:03] right [14:03] The public interface does seem to be documented: https://docs.perl6.org/type/CompUnit::Repository::Installation [14:03] I just had a couple concrete questions, which you then tell me I'm not allowed to know "as a user" [14:04] That's a misunderstanding them. If you want to know I'll gladly explain it. I read that as "this is a list of things that ought to be documented" [14:05] I explained much of the reasoning behind the design decisions in a talk: http://niner.name/talks/A%20look%20behind%20the%20curtains%20-%20module%20loading%20in%20Perl%206/Module%20loading%20in%20Perl%206.odp [14:05] the documentation can clearly be improved on many fronts, I had those questiosn from the top of my head from trying to learn how module management works earlier [14:05] just telling people that it's their fault for not having studied the source code doesn't really sound like a reasonable way to go about documentation [14:06] also, one time people tell me the hashing stuff is an implementation detail, and then another time it's not an implementation detail [14:07] if only there was some official documentation to make it clear [14:07] if I need to study the source of all classes related to module management for a week just so I can play aroudn with module management for an afternoon, it's just not worth it to me [14:08] which leads to me just not bothering at all, and not ever getting to any point to actually improve anything [14:10] .tell Xliff message me when available. [14:10] vrurg, I'll pass your message to Xliff [14:11] tyil: We hash the module's short name, the file content and the dist's long name to get the hash for the shortname lookup directory [14:12] I'm pretty sure at least I have never called this anything but an implementation detail :) Most of all because this isn't part of any specification. It's based on jnthn's ideas and evolved over time. [14:14] so why is it bad to refer to this in the docs? [14:14] tyil: once it's documented, people want to start to rely on what the documentation says and then we cannot change it anymore. [14:14] tyil: the docs are about what Raku is, not how Rakudo implements it [14:14] But we need to change it because evolution is not yet done [14:14] so you can't document the fact its an implementation detail? [14:15] not on docs, as that is intended to be implementation independent ? [14:15] I don't think having multiple people telling different things is any better [14:16] and when people ask about it in IRC they're only told "you're not cool enough for us to tell you" [14:16] tyil: sure we can. I'm actually surprised that there's no FAQ entry telling you that [14:17] tyil: and please stay with the truth. Or be prepared to point to a log were "you're not cool enough" was actually said by a developer [14:17] I'm sorry for not exactly quoting every word in every circumstance I guess [14:21] The whole reason for reluctance to document or explain these details is that we really need to be able to change them. There's for example a branch that changes how bundled resources are stored, so we retain more of the original file names, which helps with bundled DLLs on Windows [14:23] If someone's genuinely just curious or even wants to help developing, I'm more than happy to explain things. But most of the time people want to work around their actual issue (which they don't tell us) or want to create tools that circumvent the published APIs and rely on these implementation details. [14:25] I want to create a tool to see how much effort it'd be to create a minimal module installer, but I can't really see why the examples use "site" as their registry [14:25] should I also use "site" if I want to make something like that? [14:25] or should I avoid "site", since there's already one using "site" [14:26] tyil: that actually seems to be missing from the docs. CompUnit::RepositoryRegistry is not documented at all but should be, and I was unable to find anything about the standard repositories. [14:26] so we're back at the part where I posed some concrete questions, with which I had hoped I could show that the docs are most certainly lacking here [14:27] tyil: in short: there are 4 standard repositories with names: core, vendor, site and home. Core contains the modules that are bundled with rakudo (like Test and NativeCall). vendor is for distribution packages. site is where zef or other installers install to for system wide installation and home is for per-user installation [14:27] This ^^^ certainly is something that needs documenting and a PR to the docs repo would be most welcome! [14:29] that's information that I can actually use, thanks [14:30] For a minimal module installer, please have a look at https://github.com/rakudo/rakudo/blob/master/tools/install-dist.p6 as a starting point [14:31] This is also the tool of choice for packaging modules for Linux distros, hence the stuff that ends up in vendor [14:39] nine: re documenting internals, such info helps for people who want to read the code and understand it [14:42] pmurias: that's why I'm happy to explain it to everyone who's just curious [14:44] To take this conversation as an example: if you're asking about the hashes and directories because you want to write a module installer, you're asking the wrong questions and I'm glad the docs didn't keep you from asking here. [14:45] to me that means the docs aren't doing their job [14:45] clearly it doesn't tell me properly what I do need to worry about when wanting to build something like that [14:45] and now I need to consult other sources, and pray that the person I get a response from knows more than me [14:46] assuming I get a response at all [14:46] it seems very few people actually have any knowledge on how module management works in raku [14:48] Well, at least CompUnit::Repository::Installation.install is somewhat documented, which is all you actually need to install something [14:49] tyil: that's true about many of rakudo's parts unfortunately. Actually for many software projects [14:49] and it's easily solved with good documentation [14:50] Yes, so please submit that PR [14:52] *** sena_kun left [15:08] *** sena_kun joined [15:14] pmurias: AFAIR, the jars are used by both NQP and rakudo, aren't they? [15:14] I think NQP only [15:16] rakudo is using them but indirectly, through `jvm::runtime.jars` nqp config variable. [15:16] Makes sense. [15:19] pmurias: pls, open an issue. I'm loaded and easily forgetting things lately. [15:28] ¦ nqp: 29215797e8 | (Paweł Murias)++ | src/vm/js/nqp-runtime/core.js [15:28] ¦ nqp: [js] Implement '−' (U+2212) minus support in nqp::radix(_I) [15:28] ¦ nqp: review: https://github.com/perl6/nqp/commit/29215797e8 [15:29] ¦ nqp: 15efae7320 | (Paweł Murias)++ | 2 files [15:29] ¦ nqp: [jvm] Pass jars as an argument [15:29] ¦ nqp: review: https://github.com/perl6/nqp/commit/15efae7320 [15:30] vrurg: if rakudo doesn't call configure_jars passing the jars in nqp will work? [15:32] vrurg: I'll just fix the Makefile myself [15:32] planned to stay away from it but already got mixed up when updating the truffle branch [15:43] pmurias: rakudo's config calls configure_jars but never uses the result. So, yes, you can simply use it. [15:44] pmurias: The problem is that adding a new jar would require changing nqp-configure which isn't really good considering all the potential issues with submodules. [15:46] pmurias: So, it makes sense to me to make configure_jars a stub and move the actual functionality into NQP's NQP::Configure::NQP. [15:48] *** travis-ci joined [15:48] NQP build errored. Paweł Murias '[jvm] Pass jars as an argument' [15:48] https://travis-ci.org/perl6/nqp/builds/622721946 https://github.com/perl6/nqp/compare/29215797e8e5...15efae7320db [15:48] *** travis-ci left [15:51] vrurg: how does rakudo call 'configure_jars'? [15:53] ^^ the NQP build fails to some unrelated error (looks like a problem with travis) that's unrelated to my jvm changes [15:53] vrurg: feel free to refactor the code how you want, having the jar list in the nqp repo solves my problem [15:54] it's in Configure.PL for now [16:02] pmurias: I mean, rakudo's Configure.pl calls configure_jars. [16:02] anyway, afk for a while... [16:03] *** pmurias left [16:09] ¦ problem-solving: coke assigned to AlexDaniel Issue perl6-users mailing list https://github.com/perl6/problem-solving/issues/139 [16:46] *** cognominal joined [16:46] *** ExtraCrispy joined [16:47] *** ExtraCrispy left [16:47] *** ExtraCrispy joined [16:48] *** ExtraCrispy left [16:49] *** ExtraCrispy joined [16:50] *** ExtraCrispy left [16:50] *** cognomin_ left [16:50] *** ExtraCrispy joined [16:51] *** ExtraCrispy left [16:52] *** ExtraCrispy joined [16:52] *** ExtraCrispy left [16:52] *** sena_kun left [17:07] *** sena_kun joined [17:11] ¦ rakudo/travisci.roast: b2463d55ec | tonyo++ | .travis.yml [17:11] ¦ rakudo/travisci.roast: trying with base pipe status [17:11] ¦ rakudo/travisci.roast: review: https://github.com/rakudo/rakudo/commit/b2463d55ec [17:28] ¦ rakudo/travisci.roast: 023e9e5834 | tonyo++ | .travis.yml [17:28] ¦ rakudo/travisci.roast: the right way to do this [17:28] ¦ rakudo/travisci.roast: review: https://github.com/rakudo/rakudo/commit/023e9e5834 [17:28] ¦ rakudo/travisci.roast: bd4c2bdd2c | tonyo++ | .travis.yml [17:28] ¦ rakudo/travisci.roast: the right way to do this [17:28] ¦ rakudo/travisci.roast: review: https://github.com/rakudo/rakudo/commit/bd4c2bdd2c [17:28] *** travis-ci joined [17:28] Rakudo build canceled. tonyo 'the right way to do this' [17:28] https://travis-ci.org/rakudo/rakudo/builds/622778022 https://github.com/rakudo/rakudo/compare/b2463d55ec5a...023e9e583435 [17:28] *** travis-ci left [17:48] ¦ rakudo/travisci.roast: 60f7087380 | tonyo++ | .travis.yml [17:48] ¦ rakudo/travisci.roast: overflow the log cap.. [17:48] ¦ rakudo/travisci.roast: review: https://github.com/rakudo/rakudo/commit/60f7087380 [17:48] I ranted a bit at toddandmargo just now. But it seems like I'm not the only one pretty ticked off right now [17:51] *** cognomin_ joined [17:54] *** cognominal left [18:19] TreyHarris: what are you all talking about, is there a link? [18:21] AlexDaniel: maybe A positional {$i++}: ["; ? [18:21] oops [18:22] https://github.com/rakudo/star/issues/145 <- [18:22] that's like 9 days ago [18:22] indeed [18:22] sorry [18:22] I think there's something new on the mailing list… [18:22] by the way, I'm surprised how popular it is [18:22] like, there are messages there! [18:24] * AlexDaniel grabs popcorn [18:25] I think I found it [18:26] Won't be sharing a link, it's not worth anyone's nerves [18:27] ¦ nqp: vrurg self-assigned [WIP] JVM build needs a couple of fixes. https://github.com/perl6/nqp/issues/589 [18:28] * sena_kun has a horrible day and wouldn't risk anyway, better to patch Comma in the meanwhile... [18:38] TreyHarris++ # thanks for the research and the email [18:38] AlexDaniel: sorry, yes, the mailing list [18:38] lizmat: of course. [18:43] *** ZzZombo left [18:43] *** ZzZombo joined [18:44] lizmat: As a former root-holder at Amazon and Google I trained myself to never look at From lines unless it was cogent to the specific issue at hand, and old habits die hard. So for _me_ to specifically notice repetitive behavior like this says something to me. (And I still dove into my sent and comment contribs to verify this so I didn't pin others' behavior onto this individual.) [18:45] well, you did what I was planning to do after publishing this week's Weekly [18:53] .ask pmurias Could you, please, ask for review next time before changing Configure.pl and its modules? I would really appreciate it. [18:53] vrurg, I'll pass your message to pmurias [18:54] *** sena_kun left [19:04] ¦ nqp: vrurg++ created pull request #590: Make NQP::Configure::NQP take care of jars [19:04] ¦ nqp: review: https://github.com/perl6/nqp/pull/590 [19:04] In the well-known adage "lies, damned lies and statistics", I think most people today aren't aware of the understanding at the time of how a "damned lie" differed from an ordinary lie--a damned lie was formulated as one that didn't just lie about the subject, but that willfully insinuated that the truth-tellers were in fact the liars. [19:04] The claim that calling you a "dog" was neutral or even complimentary is a damned lie. [19:08] *** sena_kun joined [19:10] .ask pmurias I can't remember what exactly wrong happens when a runtime .java is getting changed. Can you leave a comment on https://github.com/perl6/nqp/issues/589? [19:10] vrurg, I'll pass your message to pmurias [19:20] *** patrickb joined [19:20] . [19:21] vrurg: since it's so integral, it might be nice to have geth announce for activity to NQP::Configure [19:23] MasterDuke: you're probably right. Who is in charge of it? [19:24] no idea actually [19:24] AlexDaniel: ^^^? [19:24] nevermind, found the repo [19:29] Oops, webhooks... Seems like some handwork is needed to install one. AlexDaniel any automation for this kind of tasks around? [19:48] *** travis-ci joined [19:48] Rakudo build failed. tonyo 'overflow the log cap..' [19:48] https://travis-ci.org/rakudo/rakudo/builds/622786488 https://github.com/rakudo/rakudo/compare/bd4c2bdd2ca9...60f708738002 [19:48] *** travis-ci left [19:56] FWIW I don't think making our docs more verbose by including more explanation and examples would remove any of its value for experienced developers. [19:57] whys is := binding used so frequently in NQP code? [19:57] Quite contrary, I'd often like to have more detailed information (e.g. what exactly a method returns) and examples [19:57] TreyHarris: because there's no assignment in NQP [19:59] nine: contra to what is said in isolation, that's not the issue in context if you look at prior complaints from this particular individual. what they would like is for signatures to be minimized and for every signature (or at least, every signature that is at all different from Perl 5 calling semantics) to be accompanied by an explanation of it with words and/or examples [19:59] nine: oh, duh, thanks [20:00] basically, the argument is that if one doesn't know Raku signatures, one should still be able to completely understand any routine's docs in isolation [20:04] I can imagine arguments for that. This would provide a very low barrier to entry [20:04] I think it's quite nice to include examples when the Signature uses uncommon features, or the signature provides for some very elegant calling syntax that might not otherwise be clear, or even when there are disjoint signatures of multis in order to show how they relatively work. [20:04] In many cases the arguments will need some more elaborate description anyway [20:05] Yes, but it isn't realistic to, for instance, explain :D vs :U vs the lack of either in every single argument of every single routine [20:05] Which is a frequent hang-up of this particular individual's complaints [20:06] "$foo needs to be a concrete value that will be frobnicated" doesn't sound too bad [20:08] Sure, but for every single routine including every multi variant? [20:10] Where it might be surprising (say, arguments that don't have :D but seem to have concrete semantics because using an undefined value results in some sort of default behavior), it's not a problem to include [20:10] And another Rakudo Weekly News hits the Net: https://rakudoweekly.blog/2019/12/09/2019-49-almost-starring/ [20:10] lizmat++ [20:22] m: dd "strong" & not "coming soon" [20:22] tobs, rakudo-moar 382d18bda: OUTPUT: «all("strong", Bool::False)␤» [20:23] ^ this implies a bug in one example of the latest "keeper" on the mailing list, but I don't have the original mail to properly reply to it :| [20:31] oho, apparently there is a way to receive old mails that's advertized on the lists landing page! [20:40] nine: Here's an example of what this person apparently expects in each routine's docs https://www.nntp.perl.org/group/perl.perl6.users/2019/12/msg7418.html -- so, in this case, 44 lines to explain just the signature of "multi method contains(Str:D: Cool:D $needle, Int(Cool:D) $pos --> Bool)" before discussing anything peculiar to contains itself [20:51] tobs: which "keeper" was this about? I don't recall one about junctions [20:51] the one about .contains. There's an example with junctions. I'm currently working on getting on this list to report it :) [20:52] but the attempt revealed a flaw in my mail setup, so... [20:53] *** sena_kun left [20:53] Oh, the one I just posted a link to, I see [20:59] TreyHarris: I honestly cannot say that the suggested text is in fact worse than our current documentation of .contains. At least it's not wrong (while our current docs are!), covers a detail that our docs don't and uses language that's easier to understand. [21:00] And I actually love that it shows how to properly do case insensitive matching! I love it because that's something that someone who's not aware of fold case will not even know to look up, so documenting the .fc method by itself just won't do. [21:02] It could certainly still be improved and doesn't have to go to excruciating lengths to explain unrelated matter, but I think, there's a lot of good to learn here [21:04] nine: specifically about the last 44 lines, though, which are the thing that this person (I sorry, I don't know their pronouns so I keep referring to them that way)... If you'd like to add that token-by-token description of every signature, you could probably write a program to generate it... and if you think it would add something to every signature, it could perhaps be displayed collapsed in [21:04] browsers [21:05] Or...maybe make the different parts of the signature clickable? [21:07] I don't think there's a way to display three links without any space characters between them in a way that makes it clear they are each linking to different places. Perhaps hovertext [21:07] Yeah, something like that [21:08] *** sena_kun joined [21:11] I'd invite you to reply to one of the two active threads ("Re: Raku, docs, help [was: Re: vulgar?]" or "A grand idea on the documentation") proposing that. [21:13] I'm not subscribed to any of our mailing lists [21:15] It isn't difficult to subscribe from https://raku.org/archive/lists/ and you can immediately suspend mail responses if you want to read it on the web only [21:16] (of course, to reply and get your reply properly threaded is a bit of a problem in that case) [21:24] *** MasterDuke left [21:33] Honestly I'd much rather debug that GC issue, so I can push my fix for the nested runloop spesh bug, so I can push my NativeCall fixes... [21:49] *** pmurias joined [21:55] vrurg: I don't see rakudos Configure.pl calling it https://github.com/rakudo/rakudo/blob/master/Configure.pl#L107-L115 [21:55] 2019-12-09T18:53:20Z #raku-dev pmurias Could you, please, ask for review next time before changing Configure.pl and its modules? I would really appreciate it. [21:55] 2019-12-09T19:10:22Z #raku-dev pmurias I can't remember what exactly wrong happens when a runtime .java is getting changed. Can you leave a comment on https://github.com/perl6/nqp/issues/589? [21:57] *** Xliff joined [21:57] vrurg: I don't plan on changing anything in Configure.PL any time soon [21:58] o [21:58] 2019-12-09T09:34:53Z #raku-dev Xliff I'd love to have more documentation in general about how modules work, and more specifically, how installing them works [21:58] 2019-12-09T14:10:15Z #raku-dev Xliff message me when available. [21:59] tyil: I'll keep that in mind as I research this. [21:59] nine: I feel the current installer doesn't give users enough feedback if a package with a high compunit count (and a long installation time) is encountered. [22:03] *** pmurias left [22:03] *** pmurias joined [22:10] Xliff there's a RAKUDO_LOG_PRECOMP ENV var for that [22:23] Is there any plan of phasing out the p6c ecosystem? [22:52] *** sena_kun left [23:41] *** Voldenet left [23:47] *** Voldenet joined [23:47] *** Voldenet left [23:47] *** Voldenet joined